如何分析Saltstack常用模块及API

84次阅读
没有评论

共计 1857 个字符,预计需要花费 5 分钟才能阅读完成。

这篇文章主要为大家分析了如何分析 Saltstack 常用模块及 API 的相关知识点,内容详细易懂,操作细节合理,具有一定参考价值。如果感兴趣的话,不妨跟着跟随丸趣 TV 小编一起来看看,下面跟着丸趣 TV 小编一起深入学习“如何分析 Saltstack 常用模块及 API”的知识吧。

说明

salt  *  sys.list_modules # 列出当前版本支持的模块 

API 原理是通过调用 master client 模块,实例化一个 LocalClient 对象,再调用 cmd() 方法来实现的。
以下 API 实现 test.ping 的示例:(其他 API 调用只需要改变 cmd 即可)

# 采用 gunzip 解压 sourcefile.txt.gz 包
salt  *  archive.gunzip sourcefile.txt.gz
#采用 gzip 压缩 sourcefile.txt 文件
salt  *  archive.gzip sourcefile.txt

API 调用:

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

cmd 模块

功能:实现远程的命令行调用执行(默认具备 root 操作权限,使用时需评估风险)

示例:

# 获取所欲被控主机的内存使用情况
salt  *  cmd.run  free -m 
#在 wx 主机上运行 test.py 脚本,其中 script/test.py 存放在 file_roots 指定的目录(默认是在 /srv/salt, 自定义在 /etc/salt/master 文件中定义),#该命令会做 2 个动作:首先同步 test.py 到 minion 的 cache 目录;起床运行该脚本
salt  wx  cmd.script salt://script/test.py

API 调用:

client.cmd(* , cmd.run ,[ free -m])

cp 模块

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

示例:

client.cmd(* , cp.get_file ,[ salt://script/test.py , /minion/test.py])

cron 模块

功能:实现被控主机的 crontab 操作

示例:

client.cmd(wx , cron.set_job ,[ root , * , * , * , * ,1, /usr/local/weekly])

dnsutil 模块

功能:实现被控主机通用 DNS 操作

示例:

# 添加指定被控主机 hosts 的主机配置项
salt  wx  dnsutil.hosts_append /etc/hosts 127.0.0.1 adl.yuk.com,ad2.yuk.com
#删除指定被控主机的 hosts 的主机配置项
salt  wx  dnsutil.hosts_remove /etc/hosts ad1.yuk.com

API 调用:

clietn.cmd(wx , dnsutil.hosts_append ,[ /etc/hosts , 127.0.0.1 , ad1.yuk.com , ad2.yuk.com])

file 模块

功能:被控主机常见的文件操作,包括文件读写、权限、查找、校验

示例:

client.cmd(* , file.remove ,[ /tmp/foo])

iptables 模块

功能:被控主机的 iptables 支持

示例:

client.cmd(* , iptables.append ,[ filter , INPUT , rule=\ -p tcp --sport 80 -j ACCEPT\])

network 模块

功能:返回被控主机的网络信息

示例:

client.cmd(wx , network.ip_addrs)

pkg 包管理模块

功能:被控主机程序包管理,如:yum、apt-getdegn

示例:

client.cmd(* , pkg.remove ,[ php])

service 服务模块

功能:被控主机程序包服务管理

示例:

client.cmd(* , service.stop ,[ nginx])

其他模块

除了上述模块外,saltstack 还提供了 user(系统用户模块)、group(系统组模块)、partition(系统分区模块)、puppet(puppet 管理模块)、system(系统重启、关机模块)、timezone(时区管理模块)、nginx(nginx 管理模块)、mount(文件系统挂载模块)等等。当然我们也可以通过 Python 扩展模块来满足需求。

关于“如何分析 Saltstack 常用模块及 API”就介绍到这了, 更多相关内容可以搜索丸趣 TV 以前的文章,希望能够帮助大家答疑解惑,请多多支持丸趣 TV 网站!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-03发表,共计1857字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)