准备工作:
1.安装EPEL: rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
2.安装salt-api yum install salt-api
salt有大量的接口函数,如果仅靠官方文档进行编程比较麻烦,可以考虑使用ipython。ipython可以通过按tab进行提示函数全名,安装ipython的方法:
yum instal ipython
安装完salt-api后便可以进行编程,看看下面的使用:
1 #!/usr/bin/python 2 import salt 3 import salt.grains.core 4 import commands 5 import os 6 conf='/etc/salt/master' 7 __opts__ = salt.config.master_config(conf) 8 salt.grains.core.__opts__=__opts__ 9 10 hostname=salt.grains.core.hostname()['fqdn'] 11 for ip in salt.grains.core.ip4()['ipv4']: 12 if not ip.startswith('127'): 13 hsot=ip 14 cpuinfo=salt.grains.core.os_data()['cpu_model'] 15 meminfo=salt.grains.core.os_data()['mem_total'] 16 pythonversion=commands.getoutput('python -V') 17 os=salt.grains.core.os_data()['osfullname']+salt.grains.core.os_data()['osrelease'] 18 kernelreleases=salt.grains.core.os_data()['kernelrelease'] 19 20 print hostname 21 print ip 22 print cpuinfo 23 print meminfo 24 print pythonversion 25 print os 26 print kernelreleases
salt.client.LocalClient().cmd : 执行远程命令,类似命令, salt '127.0.0.1' test.ping
salt.key.Key(opts).list_keys(): 显示key认证的列表,类似 salt-key -L
SaltStack提供了大量的接口可以提供查询服务器信息(例如磁盘,内存,CPU等),可以通过这些接口进行运维监控开发,同时salt也包含了大量对自身配置的接口,我们完全可以通过web操作salt的所有功能。