标签:local 查看 too .com tle 16px ado 文件的 处理
回顾上一节:grains 和 pillar 都是定义他们的属性的
grains 定义在minion端(定义完必须重启minion,才能生效)
pillar 定义在master端(无需重启即可生效)
saltstack的api
Salt-api有两种方式:
第一种:是函数的形式,有人家定义好的函数,我们可以直接调用,直接写python代码调用函数或者类就可以了。
第二种:形式是salt-api有封装好的http协议的,我们需要启动一个服务端。
登录官网查看文档:

文档内容,如下:

安装salt-api:
yum install –y salt-api
1.加载master的配置文件
import salt.config
master_opts = salt.config.client_config('/etc/salt/master')
print('master_opts')master端,如果想查看配置文件的参数属性:

2. 加载minion的配置文件
import salt.config
minion_opts = salt.config.minion_config('/etc/salt/minion')
print ('minion_opts')minion端,想看配置文件内的参数属性:

3. 在master上执行各种模块:
>>> import salt.client
>>> local = salt.client.LocalClient('/etc/salt/minion')
>>> local.cmd('*', "test.ping")返回:
{'192.168.48.129': True}执行命令:
>> local.cmd('*', "cmd.run", "w")【返回的是一个字典形式,很容易后期处理数据用】
{'192.168.48.129': ' 12:17:38 up 5:58, 1 user, load average: 0.00, 0.01, 0.05\nUSER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT\nroot pts/0 192.168.48.1 11:14 2:50 0.89s 0.89s python'}如果一次要执行多个模块:
一种方式:
>>> local.cmd('*', ['test.ping', 'cmd.run'], [[], ['whoami']])结果:
{'192.168.48.129': {'test.ping': True, 'cmd.run': 'root'}}【test.ping 对应 [](空列表),cmd.run 对应 whoami 命令】
另一种方式:(不推荐这样用,还不如调两次,这样逻辑性不好)
>>> local.cmd('*', ['test.ping', 'cmd.run'], [[], ['w; df -h']])自定义的模块:
模块目录必须创建:
mkdir -p /srv/salt/_modules cd /srv/salt/_modules
创建 jd.py 文件:
vim jd.py
#!/usr/bin/python
#coding:utf-8
def hello(name):
return {"name": name}写完所有module要记得同步一下:
salt '*' saltutil.sync_all #同步所有
或者
salt '*' saltutil.sync_modules #只同步modules

执行命令获取结果:
# salt '*' jd.hello ajing
结果输出,如图:

python中这样获取:

标签:local 查看 too .com tle 16px ado 文件的 处理
原文地址:http://blog.51cto.com/286577399/2068913