序言
最近在使用salt-api做主机批量管理部署,整理一下文档。之前使用saltstack 多用于命令行管理,自己做web版的自动化管理平台时,发现命令行的些许局限性,接触到salt-api,找到了替代方式。本文使用的saltstack 版本是2018.3.0最新版本,这个版本中官方做了更多python3的支持,使用utf-8,修补了许多与文件I/O和str/bytes不匹配的问题。之前在使用salt时都是用的Python2版本,现在使用的架构是python3版本的,毕竟未来python3才是趋势。所在在此探讨下python3使用saltstack以及salt-api的一些方式方法。
系统环境:
CentOS7 + python3.6 + saltstack2018.3.0
Centos7 Python2升级Python3
# 首先安装python3 # 可以不安装Python3, 默认安装py3版本的salt,它会自己安装一个python3.4版本,所有的salt操作都是在这个python3.4版本上运行的,只不过我自己的项目需要python3,所以自己安装了一个。特此说明 1. tar zxvf Python-3.6.1.tgz 2. cd Python-3.6.1 3. ./configure 4. make 5. make install 6. mv /usr/bin/python /usr/bin/python2 # 如果是软连接,可以直接删除 7. ln -s /usr/local/bin/python3.6 /usr/bin/python 8. vim /usr/bin/yum # 修改Yum,使yum依然有效,yum依靠老版本的python 9. #!/usr/bin/python 修改为#!/usr/bin/python2 # 修改完/usr/bin/yum 依然还有问题,可以尝试修改/usr/libexec/urlgrabber-ext-down的文件python抬头 # 使用Python3直接启动salt,因为默认环境已经切换的python3, 所以直接启动即可
saltstack 安装:
# 更新yum yum update # Centos7 - Python3 - salt 安装源 yum install -y https://repo.saltstack.com/py3/redhat/salt-py3-repo-latest-2.el7.noarch.rpm yum clean expire-cache # 安装必要软件(mariadb是mysql,用于存储salt命令执行结果和jobid,可不安装) yum -y install mariadb mariadb-devel mariadb-server wget python-devel gcc c++ make openssl openssl-devel passwd libffi libffi-devel # 安装salt yum install salt-master salt-minion salt-ssh salt-syndic salt-cloud salt-api # Centos7/6 -Python2 安装源 yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el6.noarch.rpm
# yum install salt-master salt-minion salt-ssh salt-syndic salt-cloud salt-api =================== salt-api salt-cloud salt-master salt-minion salt-ssh salt-syndic ----------------------------------- libsodium libtomcrypt libtommath openpgm python34 python34-PyYAML python34-backports_abc python34-cherrypy python34-crypto python34-jinja2 python34-libcloud python34-libs python34-markupsafe python34-msgpack python34-psutil python34-pycurl python34-setuptools python34-six python34-tornado python34-zmq salt zeromq