一、目标
如何使用salt的script模块给所有客户端执行shell脚本
二、说明
1、master端的配置文件必须已开启salt文件服务
如下:
file_roots:
base:
- /srv/salt
dev:
- srv/salt/dev
prod:
- /srv/salt/prod
2、在base下新建一个专门存放脚本的文件夹(非必须)
mkdir /srv/salt/scripts
3、重启master让其生效
systemctl restart salt-master
三、在master端远程向客户端执行shell脚本
1、随意编写个shell脚本,并放到salt文件服务器目录下的scripts里
如:
vi /srv/salt/scripts/getip.sh
#!/usr/bin/env bash
xname=$(hostname)
xip=`ip a |grep inet |grep -v -E 'inet6|127.0.0.1|virbr' |awk '{print $2}' |awk -F"/" '{print $1}'`
xtime=`date "+%Y-%m-%d_%H:%M:%S"`
echo -e "${xtime} ${xname} ${xip}\n\n" >> /tmp/gethostinfo.txt
2、在master上执行远程脚本命令
salt '*' cmd.script salt://scripts/getHostInfo.sh
注释:为什么是salt://scripts ?因为在master端的配置文件/etc/salt/master里的file_roots里已经定义好根目录了,而本次脚本又放在了根目录的scripts里,所以这里就这样写了,跟iis的根目录一个道理。
-------------------------kahn-----ok----------2021年11月18日13:37:21