Saltstack学习之二:target与模块方法的运行

对象的管理

saltstack系统中我们的管理对象叫做target,在master上我们可以采用不同的target去管理不同的minion,这些target都是通过去管理和匹配minion的id来做的一些集合。

salt [options] '<target>' <function> [arguments]

target参数

Saltstack学习之二:target与模块方法的运行

1.正则匹配(PCRE)

通过正则表达式来匹配minion id的方式去管理它们:

salt -E '^min' test.ping

2.列表匹配(List)

通过列表的方式去指定minion id

salt -L minion-01,minion-02 test.ping

3.grains匹配

使用minion的grains的键值对去匹配minion id

salt -G 'os:centos' test.ping

4.组匹配(节点组,Nodegroup)

salt -N groups test.ping

groups为组名,需要在配置文件中定义/etc/salt/master

Saltstack学习之二:target与模块方法的运行

5.复合匹配

salt -C 'G@os:centos or L@minion-01' test.ping

支持使用and和or关联多个条件

6.pillar值匹配

key:value是pillar系统中定义的一组键值对,与grains

salt -I 'key:value' test.ping

7.cidr匹配

cidr匹配的ip地址是minion连接master4505端口的来源地址

salt -S '192.168.2.0/24' test.ping

模块方法的运行

指定target之后,接下来声明运行的方法(function),上面使用了test.ping方法。

方法包含两个部分,通过点来分割:

<模块名>.<方法>

在salt命令中,模块方法紧随target其后,也可以在最后给方法加任何参数:

salt <target> <模块名>.<方法> [参数...]

saltstack模块

Module是我们日常使用接触最多的一个组件,比如简单的执行命令、查看包安装情况、查看服务运行情况等工作都是通过module来实现的。

查看module列表

#salt ‘minion-01’ sys.list_modules

查看指定module的所有function

#salt ‘minion-01’ sys.list_functions cmd

查看module用法

#salt ‘minion-01’ sys.doc cmd

以下模版是salt的核心部分,每个模块中都包含一些常用方法:

test.ping

salt最基本的命令,只要求minion返回True。用于监测minion是否可响应,如果没有响应,则不一定意味着minion宕掉,也可能是由于minion响应慢,如果连续失败那就要注意了。

Saltstack学习之二:target与模块方法的运行

test.echo

让minion显示除传递给自己的字符串。

Saltstack学习之二:target与模块方法的运行

test.sleep

需要minion先sleep若干秒后再返回true,常用测试或验证任务系统。

test.version

返回每个minion的salt版本。

Saltstack学习之二:target与模块方法的运行

pkg.install

指定一个包名或一组软件包,安装软件包功能。

Saltstack学习之二:target与模块方法的运行

pkg.remove

指定卸载软件包

Saltstack学习之二:target与模块方法的运行

file.replace

查找、替换需求

还有其他文件类操作方法

Saltstack学习之二:target与模块方法的运行

用户及用户组管理

Saltstack学习之二:target与模块方法的运行

sys.doc

查看minion端的所有方法所有内容。指定模块名字就显示模块相关文档,包含该方法的用途,以及至少一个命令行实例。

上一篇:ionic 使用


下一篇:java数据同步陷阱