Saltstack常用模块及API(4)

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调用原理:

时间: 2024-10-19 16:27:39

Saltstack常用模块及API(4)的相关文章

Saltstack系列3:Saltstack常用模块及API

说明 salt '*' sys.list_modules #列出当前版本支持的模块 API原理是通过调用master client模块,实例化一个LocalClient对象,再调用cmd()方法来实现的.以下API实现test.ping的示例:(其他API调用只需要改变cmd即可) import salt.client client = salt.client.LocalClient() ret = client.cmd('*','test.ping) #cmd内格式:'<操作目标>','&l

Saltstack常用模块及API之查看主机支持的模块清单

查看主机minion001支持的模块清单 sys.list_modules [[email protected] ~]# salt 'minion001' sys.list_modules minion001:     - acl     - aliases     - alternatives     - apache     - archive     - at     - blockdev     - bridge     - buildout     - cloud     - cmd

saltstack常用模块及组件备忘

Saltstack分为主控端和被控端.主控端的salt服务启动:systemctl start salt-master,被控端的服务启动:systemctl start salt-minion1.Saltstack的防火墙配置主控端防火墙允许TCP4505和4506端口,被控端不需要配置.原理是被控端直接与主控端的zeromq建立长链接,接受广播到的任务信息并执行. iptables -I INPUT -m state --state new -m tcp -p tcp --dport 4506

Func系列2:常用模块及API

简介 Func提供了非常丰富的功能模块,包括CommandModule(执行命令).CopyFileModule(拷贝文件).CPUModule(CPU信息).DiskModule(磁盘信息).FileTrackerModule(文件跟踪).IPtablesModule(iptables管理).MountModule(Mount挂载).NagiosServerModule(Nagios管理).NetworkTest(网络测试).ProcessModule(进程管理).SysctlModule(s

Ansible常用模块及API

Ansible安装 安装EPEL作为安装Ansible的yum源(CentOS6.4): rpm -Uvh http://ftp.linux.ncsu.edu/pub/epel/6/i386/epel-release-6-8.noarch.rpm 安装Ansible: yum install ansible -y 配置文件: 路径:/etc/ansible/hosts配置说明:webservers为组名,下面的ip或域名则是属于该组的主机. [webservers] 192.168.1.111

saltstack一些常用模块和api调用方法

研究可执行模块的时候,发现很多自带的模块已经很完善,可以帮助我们完成日常工作了,这里写入自己的记录操作: 1.使用salt.clien调用接口操作举例: >>> import salt.client>>> client = salt.client.LocalClient()>>> ret = client.cmd('*','test.ping')>>> ret{'monitor': True} 我们看到调用了LocalClient()

salt常用模块及API

saltstack提供了非常丰富的功能模块,涉及操作系统的基础功能,常用工具支持等,更多模块信息见官网模块介绍:https://docs.saltstack.com/en/latest/ref/modules/all/index.html 当然,也可以通过sys模块列出当前版本支持的模块.命令如下: #salt '*' sys.list_modules API的原理是通过调用master client模块,实例化一个LocalClient对象,再调用cmd()方法来实现的,以下是API实现tes

Saltstack-Salt常用模块及API

Salt提供了非常丰富的功能模块,涉及操作系统的基础功能.常用工具支持等,可以通过sys模块列出当前版本支持的模块. salt '*' sys.list_modules 781915e2:  - acl  - aliases  - alternatives  - apache  - archive  - artifactory  - at  - blockdev  - btrfs  - buildout  - cloud  - cmd ...... API的原理是通过调用master clien

saltstack 常用模块

cp模块 功能:实现远程文件.目录的复制,以及下载URL文件等操作 使用cp模块配置管理之前,要首先指定saltstack所有状态文件的根目录,在master上做如下操作: 指定根目录(确定指定的目录是否存在,如果不存在,需要手动来创建目录) 修改之后重启master服务 [[email protected]_master ~]# cat /etc/salt/master |grep -v "^#\|^$" auto_accept: True file_roots: base: - /