1、安装 epel 数据源
rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
2、安装 saltstack
yum install python-jinja2 -y ##安装依赖包,客户端和服务端都要装
yum install salt-master -y ##仅在服务端安装
yum install salt-minion -y ##仅在客户端安装
3、客户端配置 /etc/salt/minion
编辑 /etc/salt/minion 文件
将 master : IP 中的IP改成 服务端的IP地址
4、服务端配置,也可以用默认配置
default_include: master.d/*.conf (12)
interface: 10.1.10.117 (15)
publish_port: 4505 (22)
ret_port: 4506 (57)
pidfile: /var/run/salt-master.pid (60)
# sock_dir: /var/run/salt/master (115)
# log_file: /var/log/salt/master (666)
# key_logfile: /var/log/salt/key (671)
5、启动服务
service salt-master start ##服务端启动
service salt-minion start ##客户端启动
6、Master 对客户端的Key验证,以下只需在服务端执行
salt-key -L ## 显示客户端密钥生成情况
salt-key -A ## 接受所有客户端信任
salt-key -a 192.168.1.20 ## 接受单个客户端的信任
使用实例介绍:
1、salt命令实例说明
status 模块
salt '*' status.loadavg
salt '*' status.cpuinfo
salt '*' status.diskstats
salt '*' status.meminfo
test模块
salt '*' test.ping ## 所有minion端上执行 ping 命令
cmd 模块
salt '*' cmd.run 'date' ##在所有minion客户端上执行 date 命令
salt '*' cmd.script salt://runme.sh ## 在所有minion客户端上执行 服务端的 runme.sh 该脚本
salt `cat host.txt` cmd.run 'df -h' ##
grains模块
salt '*' grains.items #查看所有grains项
salt '*' grains.item num_cpus ##查看某个grains的值(如CPU状态)
pkg 模块
salt '*' pkg.install ftp ### 在所有Minion安装ftp, pkg模块需要yum支持
cp 模块
salt '*' cp.get_file salt://rr /etc/rr 从master端下载文件到minion的指定目录下
salt '*' cp.get_file salt://rr /etc/rr makedirs=True 后面带makedirs参数,目标主机不存在 /etc/rr,则创建该目录
salt '*' cp.get_dir salt://test_dir /tmp/test_dir ##从master端分发目录到minion的指定目录下
salt '*' cp.get_url http://xiaorui.cc/good.txt /tmp/good.txt
##从master端分发目录到minion的指定目录下
file模块
salt '*' file.append /tmp/test.txt 'this is test conten' ##向minion端的某个文件追加内容
salt '*' file.copy /tmp/test.txt /tmp/test.txt recurse=True
salt '*' file.chown /etc/passwd root root
salt '*' file.directory_exists /tmp
正则表达式说明
salt -G 'host:pc*' test.ping #对主机名称以pc开头的minion执行ping命令
salt -G 'os:CentOS*' test.ping ## 检查操作系统是Centos的客户端通信是否正常
salt -L 'web2,web3,web4' test.ping ## 匹配指定的机器
salt 'web[3-6]' test.ping ##匹配 web3 / web6 的主机
salt 'web*' test.ping ## 匹配所有web开头的机器
salt -N 'web' test.ping ## 匹配web组
salt -E 'web|db' test.ping ## 用perl 正则表达式,匹配web和 db的机器
2、salt-cp 批量复制文件到受控主机 minion(客户端),不支持目录分发,通常在master上运行。 salt-cp '*' /etc/salt/master /tmp/master.conf 将服务端/etc/salt/master文件分发到各minion 端的 /tmp/master.conf
3、salt-key 密钥管理,通常在master端执行 salt-key -L ##查看所有minion-key salt-key -a <key-name> ##接受某个minion-key salt-key -d <key-name> ##删除某个minion-key salt-key -A ##接受所有的minion-key salt-key -D ##删除所有的minion-key
4、salt-call 该命令通常在minion上执行,minion自己执行可执行模块,不是通过master下发job salt-call test.ping ##自己执行test.ping命令
5、salt-run 该命令执行runner(salt带的或者自定义的),通常在master端执行,比如经常用到的manage salt-run manage.status ##查看所有minion状态 salt-run manage.down ##查看所有没在线minion salt-run manged.up ##查看所有在线minion
salt-run 命令
salt-run manage.up 查看存活的minion
salt-run manage.down 查看死掉的minion
salt-run manage.down removekeys=True 查看down掉的minion,并将其删除
salt-run manage.status 查看minion的相关状态
salt-run manage.versions 查看slat的所有master和minion的版本信息
签名:这个人很懒,什么也没有留下!