Saltstack
实验前提
官网:http://www.saltstack.com/
设置官方YUM仓库:yum install http://repo.saltstack.com/yum/redhat/salt-repo-latest.el7.noarch.rpm
saltstack安装及相关内容
yum list salt-* 查看salt的相关安装包
server1(master端)
下载并开启以及设置开机自启动salt-master服务
yum install salt-master.noarch -y
systemctl enable --now salt-master.service
查看端口
4506端口的作用:salt Master Ret接口,支持认证、文件服务、结果收集等功能
4505端口的作用:salt Master pub接口,提供远程执行命令发送功能
在server2、3(minion端)
下载salt-minion 并修改配置文件 开启并设置开机自启动服务
yum install salt-minion.noarch
vim /etc/salt/minion
16 master: 172.25.21.1 #:号后面必须带个空格 master顶格写
systemctl enable --now salt-minion.service
注意:如果minion端更改完hostname名后 需要删除/etc/salt/minion_id
否则在master端显示的还是之前的hostname
到这,minion端则已经设置好
在server1(master端)
进行公钥的相互交换,master端执行命令允许minion连接
salt-key 密钥管理
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
测试master与minion是否连接成功
salt '*' test.ping #出现true则表示成功
lsof (list open files)是一个列出当前系统打开文件的工具
yum install -y lsof
lsof -i :4505
lsof -i :4506
可以看出server1通过4505发送给server2和3
server1通过4506收集server2和3的信息
下载python获取进程名字的工具,可以看到运行进程的名字
yum install -y python-setproctitle.x86_64
systemctl restart salt-master.service
ps ax
如下图,可以看到相关进程的名字
saltstack远程执行
远程执行shell命令
远程执行命令在matser端输入
salt [options] '<target>' <function> [arguments]
target:指定哪些minion,默认的规则是使用glob匹配minion id
如: salt '*' test.ping
salt -E 'server[1-3]' test.ping
salt -L 'server2,server3' test.ping
function是module提供的功能,Salt内置了大量有效的functions
如: salt '*' cmd.run hostname
salt '*' cmd.run 'uname -a'
arguments通过空格来界定参数
如: salt 'server2' sys.doc pkg 查看pkg模块文档
salt 'server2' sys.doc service 查看service模块文档