slatstack中的远程执行命令的方法

本文介绍了Salt配置管理系统中远程执行命令的使用方法,包括如何通过不同的参数指定目标Minion,以及常用的远程执行模块如test.ping、test.echo等。还详细解释了如何利用Grain和节点组特性来精确匹配目标。

之前的博客有介绍过salt的配置和搭建方法,如果需要在master端对minion进行一定的操作需要使用远程执行命令。salt的底层架构就是起源于远程执行命令的想法,以下进行命令的介绍

salt命令的target

如果需要使用salt命令需要先指定好target
用于指定的参数有如下

'*'           用于指定所有可以使用的Minion
-E或者--pcre   用于使用perl语言兼容的正则表达式来指定目标
-L            用于使用逗号分隔的方式来指定多个minion
-S或者--ipcidr 用于指定一个ipv4地址或者一个CIDRIPv4子网来指定target
-G或者--grain  使用grain的方式来进行指定target
-I或者--pillar 使用pillar数据来进行指定target
-C或者--compound 使用混合的方式来进行指定
-N或者--nodegroup  使用节点组来指定

以下进行对参数的简单使用范例

salt '*' test.ping

对所有的minion进行测试。

salt -S 172.25.254.11 test.ping
salt -S 172.25.254.0/24 test.ping

指定一个ipv4地址或者是一个ipv4的子网,但是不支持ipv6
特别的在这里说一下Grain的用法。
salt可以通过操作系统或者CPU架构来对机器的一些指定特征来进行指定Minion
比如说指定操作系统

[root@saltstack ~]# salt -G 'os:redhat' test.ping
openstack:
    True
[root@saltstack ~]# salt -G 'os:Ubuntu' test.ping
No minions matched the target. No command was sent, no jid was assigned.
ERROR: No return received

当然有些Grain是多级字典,需要用’:’(冒号)来分隔key。

如果需要使用节点组 —N参数,则需要修改好配置文件,在master文件中进行修改

1019 nodegroups:
1020   group1: 'L@foo.domain.com,bar.domain.com,baz.domain.com or bl*.domain.co     m'
1021   group2: 'G@os:Debian and foo.domain.com'
1022   group3: 'G@os:Debian and N@group1'
1023   group4:
1024     - 'G@foo:bar'
1025     - 'or'
1026     - 'G@foo:baz'

然后在命令中指定你在配置文件中写好的组名就可以了
例:

salt -N group1 test.ping

远程执行命令的模块

在salt中远程运行命令的格式如下:
salt < target > <模块名><方法>[参数…]
所以在salt中可用于执行命令的模块有

test.ping 用于测试minion是否可以响应
test.echo 用于显示字符串(后头需要传递参数)
test.sleepping类似,但是在后面可以加数字,表示多久以后返回True
test.version 用于返回minion的saltstack版本。
pkg.install 用于安装软件包,类似于远程执行yum install 
pkg.remove 用于卸载软件包,类以于远程执行yum remove
fire.replace 用于编辑文件类似的还有file.chown file.chgrp
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值