码迷,mamicode.com
首页 > 编程语言 > 详细

57. Python saltstack 二次开发(2)

时间:2018-02-05 12:47:14      阅读:211      评论:0      收藏:0      [点我收藏+]

标签: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中这样获取:

技术分享图片



57. Python saltstack 二次开发(2)

标签:local   查看   too   .com   tle   16px   ado   文件的   处理   

原文地址:http://blog.51cto.com/286577399/2068913

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!