码迷,mamicode.com
首页 > Windows程序 > 详细

Saltstack常用模块及API(4)

时间:2016-01-06 18:27:46      阅读:855      评论:0      收藏:0      [点我收藏+]

标签:模块   saltstack   api   

    Saltstack提供了非常丰富的功能模块(用python所写),涉及操作系统的基础功能、常用工具支持等,当然也可以通过sys模块列出当前版本支持的模块

#salt ‘*‘ sys.list_modules


    接下来抽取常见的模块进行介绍,同时也会列举模块的API使用方法。API的原理是通过调用master client模块,实例化一个LocalClient对象,再调用cmda()方法来实现的。以下是API实现test.ping的示例:

import salt.client

client = salt.client.LocalClient()

ret = client.cmd(‘*‘,‘test.ping‘)

print ret


结果以一个标准的Python字典形式的字符串返回,可以通过eval()函数转换成Python的字典类型,方便后续的业务逻辑处理,程序运行结果如下:

{‘SN2013-08-022‘:True,‘SN2013-08-021‘:True}


(1)Archive模块

功能:实现系统层面的压缩包调用,支持gunzip、gzip、rar、tar、unrar、unzip等

示例:

salt ‘*‘ archive.gunzip /tmp/sourcefile.txt.gz    采用gunzip解压/tmp/sourcefile.txt.gz包

salt ‘*‘ archive.gzip /tmp/sourcefile.txt       采用gzip压缩/tmp/sourcefile.txt文件

API调用原理:

client.cmd(‘*‘,‘archive.gunzip‘,[‘/tmp/sourcefile.txt.gz‘])


(2)cmd模块

功能:实现远程的命令行执行

示例:

salt ‘*‘ cmd.run "free -m"           获取所有主机内存情况

salt ‘*‘ cmd.script salt://script/test     该命令会做两个动作:首先同步test.sh到minion的cache目录(/var/cache/salt/minion/files/base/script/test.sh);其次运行该脚本

API调用原理:

client.cmd(‘SN2013-08-021‘,‘cmd.run‘,[‘free -m‘])


(3)cp模块

功能:实现远程文件、目录复制、以及下载URL文件等操作

示例:

salt ‘*‘ cp.cache_local_file /etc/hosts     将指定minion的/etc/hosts文件复制到minion主机的本地的salt cache目录(/var/cache/salt/minion/localfiles/)

salt ‘*‘ cp.get_dir salt://path/to/dir/ /minion/dest    将master的file_roots指定位置下的目录复制到minion上

salt ‘*‘ cp.get_url http://www.slashdot.org /tmp/index.html    下载URL内容到minion的指定位置

API调用原理:

clientcmd(‘SN2013-08-021‘, ‘cp.get_file‘,[‘salt://path/to/file‘,‘/minion/dest‘])


(4)cron模块

功能:实现minion的crontab操作

示例:

salt ‘SN2013-08-022‘ cron.raw_cron root    查看指定minion、root用户的crontab清单

salt ‘SN2013-08-022‘ cron.set_job root ‘*‘ ‘*‘ ‘*‘ ‘*‘ 1 /usr/local/weekly    为指定minion、root用户添加作业任务

salt ‘SN2013-08-022‘ cron.rm_job root /usr/local/weekly    删除minion、root用户的crontab的/usr/local/weekly任务作业

API调用原理:

client.cmd(‘SN2013-08-022‘, ‘cron.set_job‘,[‘root,‘*‘,‘*‘,‘*‘,‘*‘,‘*‘,‘/usr/echo‘])


(5)dnsutil模块

功能:实现minion主机通用DNS相关操作

示例:

salt ‘*‘ dnsutil.hosts_append /etc/hosts 127.0.0.1 ad1.yuk.com,ad2.yuk.com    添加hosts主机配置项

salt ‘*‘ dnsutil.hosts_remove /etc/hosts ad1.yuk.com    删除hosts主机配置项

API调用原理:

client.cmd(‘*‘,‘dnsutil.hosts_append‘,[‘/etc/hosts‘,‘127.0.0.1‘,‘ad1.yuk.com‘])


(6)file模块

功能:实现minion主机文件常见操作,包括文件读写,权限,查找,校验等

示例:


API调用原理:


(7)Archive模块

功能:

示例:

API调用原理:


(8)Archive模块

功能:

示例:

API调用原理:


(9)Archive模块

功能:

示例:

API调用原理:


(10)Archive模块

功能:

示例:

API调用原理:



Saltstack常用模块及API(4)

标签:模块   saltstack   api   

原文地址:http://chendachen.blog.51cto.com/9250930/1732003

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