第十二篇把web开发先写了,貌似偷跑了,还是需要先看看这篇再回去看第十二篇。



SaltStack的提供了完善的API接口给开发者进行二次开发,先执行下面语句安装salt-api:

#yum install salt-api 


salt有大量的接口函数,如果仅靠官方文档进行编程比较麻烦,可以考虑使用ipython。ipython可以通过按tab进行提示函数全名,安装ipython的方法:

#yum install ipython


安装完ipython后便可以进行编程,看看下面的使用ipython进行测试

In [1]: import salt                    

In [2]: conf='/etc/salt/master'        

In [3]: opts = salt.config.master_config(conf)

In [4]: client=salt.client.LocalClient()

In [5]: salt.client.LocalClient().cmd('127.0.0.1','test.ping')                  
Out[5]: {'127.0.0.1': True}

In [6]: salt.
salt.Master            salt.__dict__          salt.__package__       salt.__version__       salt.crypt             salt.os                salt.transport
salt.MasterExit        salt.__doc__           salt.__path__          salt._compat           salt.exceptions        salt.parsers           salt.utils
salt.Minion            salt.__file__          salt.__reduce__        salt._syspaths         salt.fileclient        salt.payload           salt.verify_env
salt.ProxyMinion       salt.__format__        salt.__reduce_ex__     salt._version          salt.ip_bracket        salt.pillar            salt.verify_files
salt.SaltSystemExit    salt.__getattribute__  salt.__repr__          salt.auth              salt.loader            salt.salt              salt.verify_socket
salt.Syndic            salt.__hash__          salt.__setattr__       salt.check_user        salt.log               salt.state             salt.version
salt.__builtins__      salt.__init__          salt.__sizeof__        salt.client            salt.logger            salt.sys               salt.warnings
salt.__class__         salt.__name__          salt.__str__           salt.cloud             salt.migrations        salt.syspaths          
salt.__delattr__       salt.__new__           salt.__subclasshook__  salt.config            salt.minion            salt.template          

In [6]: salt.key.Key(opts).list_keys()
Out[6]: 
{'minions': ['127.0.0.1'],
 'minions_pre': [],
 'minions_rejected': []}




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的所有功能。