需求产生场景:

     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. jsp提交表单数据乱码,内置对象,以及过滤器

    jsp提交表单数据乱码解决方案 通过form表单给服务器提交数据的时候,如果提交的是中文数据,那么可能会出现乱码,如果表单的请求方式是post请求,那么可以使用如下方案解决乱码: 在调用getPara ...

  2. CGBitmapContextCreate函数参数详解

    函数原型: CGContextRef CGBitmapContextCreate ( void *data, size_t width, size_t height, size_t bitsPerCo ...

  3. Easyui简单布局

    1.创建布局 创建布局只需要添加 'easyui-layout' class 到 <div> 标记或者 在整个页面创建布局,即<body class="easyui-lay ...

  4. understand equal and gethashcode

    Supposed we have a class below public class TestHash { public int x; int y; public TestHash(int x, i ...

  5. linux命令:xargs

    1.命令介绍: xargs用来配合find命令查找的结果然后执行相应的命令 2.命令格式: find -type f -print | xargs file

  6. 字符数组和string判断是否为空行 NULL和0 namespace变量需要自己进行初始化

    string 可以这样判断空行input !="" 字符数组可以通过判断第一个元素是否为空字符'\0',是的话为空行arrar[0]=='\0':或者用长度strlen(char ...

  7. Caffe.proto使用

    参考 http://blog.csdn.net/qq_16055159/article/details/45115359 书写.proto文件 作用:编写一个 proto 文件,定义我们程序中需要处理 ...

  8. RoR简单的应用程序

    在dos环境下执行找到需要新建的项目路径 输入命令rails -v #查看版本号

  9. iOS 线性滚动

    在这里,给大家带来简单的滚动实现,首先看一下实现效果. 通过观察不难发现,有很多地方并不是那么容易想出来的,对于篇随笔,感兴趣可以查查相关资料,我就不尽行过多说明,(主要是开考文字,不好说明

  10. Linux标准出错重定向导出

    ~$ ls han >1.txt 2>&1