需求产生场景:

     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. Oracle中的MD5加密详解

    一.技术点 1. DBMS_OBFUSCATION_TOOLKIT.MD5 DBMS_OBFUSCATION_TOOLKIT.MD5是MD5编码的数据包函数,但偶在使用select DBMS_OBFU ...

  2. cocos2dx-3.9 集成admob

    Part 1: 安装GoogleMobileAds framework (即admob) 1. 安装Cocoapods,否则解决依赖关系和配置真的会把人不累死也得烦死 sudo gem install ...

  3. flask SQLAlchemy中一对多的关系实现

    SQLAlchemy是Python中比较优秀的orm框架,在SQLAlchemy中定义了多种数据库表的对应关系, 其中一对多是一种比较常见的关系.利用flask sqlalchemy实现一对多的关系如 ...

  4. linux下解压war文件命令

    jar -xvf project.war -->解压到当前目录下. -f  指定 JAR 文件名,通常这个参数是必须的 -v  显示过程信息

  5. PHP基于websocket实时通信的实现—GoEasy

    PHP websocket实时消息推送 在这里我记录一下之前如何实现服务器端与客户端实时通信: 实现步骤如下: 1.        获取GoEasy appkey. 在goeasy官网上注册一个账号, ...

  6. SFTP交互式文件传输

    sftp 是一个交互式文件传输程式.它类似于 ftp, 但它进行加密传输,比FTP有更高的安全性.下边就简单介绍一下如何远程连接主机,进行文件的上传和下载,以及一些相关操作. 举例,如远程主机的 IP ...

  7. spring HandlerInterceptorAdapter拦截ajax异步请求,报错ERR_INCOMPLETE_CHUNKED_ENCODING

    话不多说,直接上正文. 异常信息: Failed to load resource: net::ERR_INCOMPLETE_CHUNKED_ENCODING 问题描述: 该异常是在页面发送ajax请 ...

  8. Struts2学习笔记

    一.struts2的工作原理 上图为struts整体结构. 1.客户端初始化一个指向servlet的请求: 2.请求通过一系列过滤器(其中的ActionContextCleanUp为可选过滤器,对st ...

  9. event.stopPropagation()与event.preventDefault()

    <div id='div0'> <div id='div1'> <a href="#" id='div2'>2222</a> < ...

  10. web安全之sql注入报错型注入

    前提: echo mysql_error(),输出错误信息. 熟悉的函数: floor()向下取整 concat()返回的字符串参数连接的结果 count()函数返回匹配指定条件的行数 rand()函 ...