salt-api也用了一段时间了,现在从安装、配置、使用三个方面梳理下知识。
1、安装 采用pip安装方便快捷,当然编译安装也很nice。
安装pip采用的编译安装的方式,版本当前最新1.5.6,下载、解压、编译、安装是不变的法则。
1 | $ wget https://pypi.python.org/packages/source/p/pip/pip-1.5.6.tar.gz#md5=01026f87978932060cc86c1dc527903e --no-check-certificate |
安装CherryPy,版本3.2.3
1 | $ pip install cherrypy==3.2.3 |
安装salt-api,版本0.8.3
1 | $ pip install salt-api==0.8.3 |
2、配置
1 | $ cd /etc/pki/tls/certs |
如果遇到这样的错误
1 | $ make testcert |
删掉文件/etc/pki/tls/private/localhost.key文件,然后再make testcert。
为salt-api创建用户并设定密码,用户名没有特别要求,我就用saltapi好了。
1 | $ useradd -M -s /sbin/nologin saltapi |
新增加配置文件/etc/salt/master.d/api.conf和/etc/salt/master.d/eauth.conf
1 | #该配置文件给予saltapi用户所有模块使用权限,出于安全考虑一般只给予特定模块使用权限 |
寻找salt-api的启动脚本,我比较懒就不自己写了,在页面https://github.com/saltstack/salt-api/releases下载salt-api的tar.gz包,启动脚本在解压包的这个位置./pkg/rpm/salt-api。
不过提供的脚本貌似有个小的bug,就是使用restart参数时,salt-api能够stop但是不能start,如下:
1 | $ /etc/init.d/salt-api restart |
我估计可能是有些相关资源在下次启动前没有来得及释放造成的,解决方法很简单在脚本的restart函数的stop和start之间加上sleep语句。
1 | restart() { |
然后重启就没有问题了
1 | $ /etc/init.d/salt-api restart |
最后重启salt-master在启动salt-api并将salt-api加入开机启动,安装就完成了。
1 | $ chkconfig salt-api on |
3、使用(基本的使用方法)
登录获取token
1 | $ curl -k https://192.168.186.134:8888/login \ |
获取token后就可以使用token通信
1 | #相当于在salt-master本地执行salt \* test.ping |
测试效果
1 | $ python salt-api.py |
以上只是一些基本的实例,salt-api还可以实现更多功能。