zoukankan      html  css  js  c++  java
  • python virtualenv 安装运行saltstack

    需求产生场景:

         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也能随便解决。
  • 相关阅读:
    java编译错误No enclosing instance of type TestFrame is accessible. Must qualify the allocation with an enclosing instance of type TestFrame (e.g. x.new A(
    java 2中创建线程方法
    动态规划基本思想
    关于eclipse编译一个工程多个main函数
    java Gui初识
    Eclipse中java项目的打包
    java 播放声音
    把资源文件夹导入到eclipse中
    Java建立JProgressBar
    How to grant permissions to a custom assembly that is referenced in a report in Reporting Services
  • 原文地址:https://www.cnblogs.com/liujian001/p/6127042.html
Copyright © 2011-2022 走看看