需求产生场景:

     1、python的virtualenv虚拟环境非常的好用。
     2、saltstack作为运维自动化的一个重要组件也挺好用的。

但是:

     1、saltsatck最简便的是使用yum安装,结合的是linux-centos自带的python2.6版本。
     2、即便使用编译安装,也是在编译安装的python环境下

so,需求产生了:

     我想要在virtualenv环境下使用saltstack的api,发现非常蛋疼。两者无法整合到一起。
     为了解决这个痛点,用了半个下午的时间,参考saltstack的官方文档,整理了一个解决方案
 
 
废话不多说,直接上干货:
 

实现过程:

1、前置条件:

          操作系统:centos6.4 预备安装saltmaster
                          已经安装完毕的salt-minion服务器
          编译python:2.7.8 (安装了pip以及virtualenv)
          为了操作简便,默认在root用户下。
       ps:如果编译的python没有搞定的话,先整好环境。这里不多说,默认ok
 

2、操作步骤:

2.1:创建python虚拟环境:
               virtualenv /path/to/your/virtualenv
               source /path/to/your/virtualenv/bin/activate
          
2.2:安装salt
               #编译时将salt配置加入
               pip install --global-option='--salt-root-dir=/path/to/your/virtualenv/salt/' salt
               mkdir -p /path/to/your/virtualenv/salt/etc/salt
               #将原有配置文件cp过来
               cp ./salt/conf/master ./salt/conf/minion /path/to/your/virtualenv/salt/etc/salt/
               修改master配置文件的"publish_port","ret_port",区别与现网运行的端口。
               publish_port: 5505
               ret_port: 5506
               
2.3:修改salt-minion客户端端口配置
               “master_port: 5506”
 
2.4:补充说明:
               如果你的salt-minion是之前存在的客户端,那么为了避免与之前的缓存冲突,需要删除之前的
            缓存文件:/etc/salt/pki    备份删除。
               如果master报错,也是这么策略,删除pki,重启即可。
 
2.5:启动-测试:
               salt-key -L
               salt-key -A
               salt  '*' test.ping
         
2.6:api测试demo:
               import salt.client
               client = salt.client.LocalClient()
               ret = client.cmd('*','test.ping')
               print ret
 
      以上。
      ps:基本上看着官方文档就能搞定。稍微麻烦点的是与之前的环境配合,不过跟着log也能随便解决。

python virtualenv 安装运行saltstack的更多相关文章

  1. python virtualenv环境运行django

    python virtualenv环境运行django 安装前准备 检查pip版本与python版本是否一致 [root@localhost bin]# whereis pip pip: /usr/b ...

  2. Python virtualenv安装库报错SSL: CERTIFICATE_VERIFY_FAILED

    Python virtualenv安装库报错SSL: CERTIFICATE_VERIFY_FAILED 问题描述 使用pip按照virtualenv报错,如下: pip install virtua ...

  3. python virtualenv安装说明

    环境说明: virtualenv安装: 第一步,创建目录code: 第二步,创建一个独立的Python运行环境,命名为venv: 新建的Python环境被放到当前目录下的venv目录. 第三步,有了v ...

  4. Python基础——安装运行

    Python是如何运行的? 像绝大多数编程语言一样,要在计算机上能够运行python程序,至少需要安装一个最小的Python包:一个Python解释器和支持的库. 安装Python 安装包下载:htt ...

  5. [Mac][Python][Virtualenv]安装配置和使用

    安装帮助文档安装VirtualEnv报错如下 tekiMacBook-Air:workspaces hbai$ source /usr/local/bin/virtualenvwrapper.sh / ...

  6. [bug] Python Virtualenv 安装失败:ERROR: Cannot uninstall 'filelock'.

    参考 https://my.oschina.net/gain/blog/4333100

  7. Python Virtualenv运行Django环境配置

    系统: RHEL6.5 版本说明: Python-3.5.0 Django-1.10.4 virtualenv:为每个项目建立不同的/独立的Python环境,你将为每个项目安装所有需要的软件包到它们各 ...

  8. python虚拟环境virtualenv、virtualenv下运行IDLE、powershell 运行脚本由执行策略引起的问题

    一.为什么要创建虚拟环境: 应为在开发中会有同时对一个包不同版本的需求,创建多个开发环境就能解决这个问题.或许也会有对python不同版本的需求,这就需要使用程序来管理不同的版本,virtualenv ...

  9. Ubuntu环境下非root用户指定版本Python的安装及虚拟环境virtualenv的使用

    Ubuntu环境下非root用户指定版本Python的安装及虚拟环境virtualenv的使用 参考博客: https://blog.csdn.net/leviopku/article/details ...

随机推荐

  1. [Python学习笔记1]Python语言基础 数学运算符 字符串 列表

    这个系列是我在学习Python语言的过程中记录的笔记,主要是一些知识点汇总,而非学习教程,可供有一定编程基础者参考.文中偏见和不足难以避免,仅供参考,欢迎批评指正. 本系列笔记主要参考文献是官网文档: ...

  2. jquery.hover()函数使用

    <script> $(document).ready(function (t) { $(".wadver li").hover(function(event) { $( ...

  3. Qt5 主窗口组成

    1. 菜单栏 菜单是一系列命令的列表.为了实现菜单.工具栏按钮.键盘快捷键等命令的一致性,Qt使用动作(Action)来表示这些命令.Qt的菜单就是由一系列的QAction动作对象构成的列表,而菜单栏 ...

  4. java集合类的学习(二)

    ArrayList,LinkedList,Vector都是List的实现类,前两都没有实现同步机制,Vector实现了同步机制.他们代码类似. ArrayList代表大小可变的数组,允许对元素进行快速 ...

  5. 重写ajax方法实现异步请求session过期时跳转登录页面

    jQuery(function($){ // 备份jquery的ajax方法 var _ajax=$.ajax; // 重写ajax方法, $.ajax=function(opt){ var _suc ...

  6. linux命令:gzip

    1.命令介绍: gzip用来压缩或解压文件,对文本文件的压缩率有60~70%. 2.命令格式: gzip [选项] 文件/目录 3.命令参数: -a或--ascii  使用ASCII文字模式. -c或 ...

  7. php 使用 curl 发送 post 数据

    作为第三方开发商,经常会需要调用平台接口,远程调用,就要用到curl,其实质就是叫调用的方法与用到的参数以http post的方式发送至平台服务器. 简单的例子: $url = 'http://'; ...

  8. 一款基于bootstrap的datetimepicker

    <!DOCTYPE HTML> <html> <head> <link href="http://netdna.bootstrapcdn.com/t ...

  9. ajax的status为201依然触发jquery的error事件的问题

    昨天在调试一个ajax的时候发现,即使status是201,仍然会触发jquery的error事件.statusText是"parseerror". 通过在stackoverflo ...

  10. IC卡复位应答ATR解析

    输入的是ATR,通过解析输出TA.TB.TC.TD的信息. 似乎没有容错处理,~~~~(>_<)~~~~ #include <stdio.h> #define TA_BIT ( ...