需求产生场景:

     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. Eclipse使用指定JDK,无需配置Path变量

    修改Eclipse安装目录下的eclipse.ini配置文件 将下面内容添加到文件的首部 -vmF:/Lunatic/IDE/JDK/jdk1.7.0_67/jdk1.7.0_67/bin/javaw ...

  2. JS截取字符串常用方法详细整理

    使用 substring()或者slice() 函数:split() 功能:使用一个指定的分隔符把一个字符串分割存储到数组 例子: str="jpg|bmp|gif|ico|png" ...

  3. opnet学习过程

    学习opnet有一段时间了,走了 不少弯路,现在,想总结一下,推荐给大家一个比较好的学习过程. 因为英语不太好,所以在开始学opnet时用了很多心思去找中文资料,比如说,一些文档.书.视频等.看文档和 ...

  4. UE4 代码编写细节:静态变量

    Note:因为在切换关切时,会GC掉所有GameThread线程下的Object类,如果Static是UOBject 请调用AddToRoot函数  当然如果你的UObject子类Object是在自己 ...

  5. linux命令:文件属性

    Linux 文件的属性主要包括:节点.种类.权限模式.链接数量.所归属的用户和用户组.文件大小.最近访问或修改的时间等内容. 命令: ls -lih 输出: [root@localhost test] ...

  6. Linux服务器之间的目录共享

    1.在Redhat Linux中查看是否已安装NFS及portmap的命令如下:rpm -qa |grep portmaprpm -qa |grep nfs2.如果没有安装这两个软件包,安装命令如下: ...

  7. Bool 类型变量的使用

    定义一个bool类型的变量,默认为FALSE的 private bool BHaveBeenTip=false; private void label5_Click(object sender, Ev ...

  8. Web Form 和asp.net mvc 差别

    Asp.net MVC 和web Form的基本区别 Web Form ASP.NET MVC 视图和逻辑紧密耦合 视图和逻辑分离 页面(给予文件的URL) 控制器(基于路由的URL) 状态管理(视图 ...

  9. 使用RelativeLayout控制WebView以及Bottom按钮的位置

    使用RelativeLayout控制WebView以及Bottom按钮的位置 (地址) 在Design View中加入控件RelativeLayout, WebView, LinearLayout(H ...

  10. mvc4 部署http错误403.14 forbidden

    1. 检查服务器上是否安装了“HTTP重定向”功能和“静态内容压缩”功能(在添加/删除程序或增加角色处安装).这是我所遇到的问题:2. 应用程序池要被配置为“集成”3. 把.net 4.0安装在iis ...