Slatstack 介绍
官方源:http://repo.saltstack.com/ (介绍各操作系统安装方法)
yum install https://repo.saltstack.com/yum/redhat/salt-repo-latest-2.el7.noarch.rpm #cenyos7官方yum源
saltstack功能介绍
三大功能:
1.远程执行
2.配置管理(配置某个服务状态)
3.云管理 (对接openstack)
saltstack的优点
(1)、部署简单,方便
(2)、支持大部分UNIX/Linux及Windows环境;
(3)、主从集中化管理;
(4)、配置简单、功能强大、扩展性强;
(5)、主控端(master)和被控端(minion)基于证书认证,安全可靠;
(6)、支持API及自定义模块,可通过Python轻松扩展。
staltstack的四种运行方式:
1.Local
2. Minion/Master C/S
3.Syndic - 类似于zabbix proxy
4. Salt SSH
一.安装saltstack
服务端
yum install salt-master salt-minion -y
客户端
yum install salt-minion -y
启动服务端
systemctl start salt-master systemctl enable salt-master
配置客户端
vim /etc/salt/minion
master: 10.0.0.11 #可以是主机名需要解析(指定服务端的IP地址),冒号有空格
id: # 每台主机的唯一标识,不配置默认为主机名
启动客户端
systemctl start salt-minion systemctl enable salt-minion
注意事项
minion配置中有一个id配置,默认是hostname,如果id配置和hostname不一致会导致无法进行通信,那么当hostname做了修改,或者错误的时候该怎么配置呢? ①关闭salt-minion ②salt-key -d id 在master上删除minion的id ③minion上删除pki目录 ④minion上删除minion_id文件 ⑤修改完成,启动minion #此处必须先停掉minion修改,并删除相应的文件,否则会默认地去查找原先的配置,已踩坑 #以下是刚装完查看minion_id变成了www.test123.com。进行修改成linux-node2.example.com [root@linux-node2 salt]# cat minion_id www.test123.com [root@linux-node2 salt]# systemctl stop salt-minion [root@linux-node2 salt]# rm -rf pki [root@linux-node2 salt]# rm -rf minion_id [root@linux-node2 salt]# systemctl start salt-minion [root@linux-node2 salt]# cat minion_id linux-node2.example.com
- master和minion启动后pki介绍
第一次启动minion在/etc/salt下生成pki文件目录
包含minion的公钥minion.pub和私钥minion.pem
第一次启动master在/etc/salt下生成pki文件目录,因为之前在配置文件/etc/salt/
包含master的公钥master.pub和私钥master.pem
linux-node1.example.com和linux-node2.example.com为minion的公钥,名称为id名minions_pre为预认证目录
通过查看MD5之可知,minions_pre目录下的文件就是客户端上的公钥
- 认证过程
salt-key
salt-key命令介绍:
-L 列出所有
-d 删除指定的支持通配符
-D 删除所有
-A 添加所有
-a 指定添加
Accepted Keys 已同意的key
Denied Keys 拒绝的key
Unaccepted Keys 未认证的key
[root@7mini-node1 ~] salt-key -a 7mini-node2 #指定认证某台机器 [root@7mini-node1 ~] salt-key -a 7mini* # 通配符
说明:-a :accept ,-A:accept-all,-d:delete,-D:delete-all
验证是否认证
两台minion已认证成功,此时再次查看master pki文件目录,minion的公钥文件放入了minions目录下
再次查看minion pki文件目录,存在minion_master.pub公钥文件
- 远程执行
语法: 命令 目标 模块.方法 方法参数
检查所有主机状态
salt '*' test.ping #常用
检查指定主机状态
[root@7mini-node1 salt]# salt "7mini-node2" test.ping 7mini-node2: True
指定主机,远程执行shell命令
salt "7mini-node2" cmd.run "ls -lrt /root"