# master节点
# 确保master配置文件/etc/salt/master中的base环境已开启
file_roots:
base:
- /srv/salt
# 重启 systemctl restart salt-master # 本例前面已经配置过
# 切换目录
cd /srv/salt
# 创建文件夹
mkdir _modules # 名字必须是_modules,官方规定的
# 进入_modules目录
cd _modules
# 开始编写python文件,因为saltstack是python开发的,所以自定义的模块文件必须.py结尾的python文件
# 示例1 mymodules.py
def w():
shellcmd = "w"
return __salt__['cmd.run'](shellcmd)
def df():
shellcmd = "df -hT"
return __salt__['cmd.run'](shellcmd)
def top():
shellcmd = "top"
return __salt__['cmd.run'](shellcmd)
def ls():
shellcmd = "ls /"
return __salt__['cmd.run'](shellcmd)
def hostname():
shellcmd = "hostname"
return __salt__['cmd.run'](shellcmd)
def install_nginx():
shellcmd = "yum install -y nginx"
return __salt__['cmd.run'](shellcmd)
def start_nginx():
shellcmd = "nginx"
return __salt__['cmd.run'](shellcmd)
# 同步模块到所有节点,也可以同步到某个节点
salt '*' saltutil.sync_modules
####如果自定义模块文档发生变化,必须先同步然后再执行,否则执行的还是修改之前的内容####
# 调用模块
# 语法格式
# salt 命令 '*' 目标主机(这里是全部主机) mymodules上面.py文件名 w 函数名
salt '*' mymodules.w
salt 'node1' mymodules.df
salt 'node1' mymodules.hostname
salt 'node1' mymodules.install_nginx
salt 'node1' mymodules.start_nginx