SaltStack使用总结
SaltStack介绍
系统管理员日常会进行大量的重复性操作,例如安装软件,修改配置文件,创建用户,批量执行命令等等,假设有上百台服务器(或者网络设备)需要重复维护工作,如果一台一台维护效率低下且耗费成本和人力,这时候自动化运维工具SaltStack显示出其优势了,帮助管理维护人员进行批量执行原来的重复工作,不但提高了效率而且节省了成本。
部署规划
真实IP地址 | 虚拟IP | 角色 | 角色描述 | 服务器版本 |
---|---|---|---|---|
192.168.31.11 | 192.168.31.10 | salt-master | 主salt服务器 | centos6.10 |
192.168.31.12 | - | salt-master | 备salt服务器 | centos6.10 |
192.168.31.13 | - | salt-minion | salt客户机 | centos6.10 |
tips:请关闭selinux,并做好iptables规则,基础环境配置过程本案例不体现。
# salt端口
4505 publish_port 提供远程命令发送功能
4506 ret_port 提供认证,文件服务,结果收集等功能
确保客户端可以通信服务器的此2个端口,保证防火墙允许端口通过。因此在测试环境直接关闭防火墙。
SaltStack和keepalive软件安装
主salt服务器
yum -y install epel-release #安装EPEL环境
yum -y install salt-master #安装salt控制端
yum -y install keepalived #安装keepalive
备salt服务器
yum -y install epel-release #安装EPEL环境
yum -y install salt-master #安装salt控制端
yum -y install keepalived #安装keepalive
salt客户端
yum -y install epel-release #安装EPEL环境
yum install salt-minion #安装salt控制端
SaltStack和keepalive配置
主salt服务器
# saltstack配置
vim /etc/salt/master
interface: 192.168.31.10 #绑定到本地的192.168.31.10地址
publish_port: 4505 #管理端口,命令发送
user: root #运行salt进程的用户
worker_threads: 5 #salt运行线程数,线程越多处理速度越快,不要超过cpu个数
ret_port: 4506 #执行结果返回端口
pidfile: /var/run/salt-master.pid #pid文件位置
log_file: /var/log/salt/master #日志文件地址
#自动接收minion的key
auto_accept: False
#keepalive配置
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
wang_zengyi@126.com #接收告警的邮箱
} #注意需要单独配置smtp_send邮箱
notification_email_from 647956023@qq.com #发送告警的邮箱
smtp_server 182.254.38.18 #发送邮件的服务器地址
smtp_connect_timeout 30
router_id study01
}
vrrp_script check_salt {
script "/usr/bin/killall -0 salt-master"
interval 2
}
vrrp_instance VI_1 {
state BACKUP #状态为主,默认抢占
interface eth0 #监听的服务接口
virtual_router_id 51 #主备必须一致,VRRPID
priority 80 #优先级,越大越优先
advert_int 1 #心跳报文通告间隔
authentication {
auth_type PASS #keepalive认证类型
auth_pass 1111 #keepalive认证密码
}
notify_master "/etc/keepalived/master.sh" #主状态通告脚本
notify_backup "/etc/keepalived/backup.sh" #备状态通告脚本
notify_fault "/etc/keepalived/fault.sh" #故障状态通过脚本
track_script {
check_salt #track salt的检测脚本
}
virtual_ipaddress {
192.168.31.10/24 dev eth0 table eth0:0 #虚拟IP
}
}
备salt服务器
vim /etc/salt/master
interface: 192.168.31.10 #绑定到本地的192.168.31.10地址
publish_port: 4505 #管理端口,命令发送
user: root #运行salt进程的用户
worker_threads: 5 #salt运行线程数,线程越多处理速度越快,不要超过cpu个数
ret_port: 4506 #执行结果返回端口
pidfile: /var/run/salt-master.pid #pid文件位置
log_file: /var/log/salt/master #日志文件地址
#自动接收minion的key
auto_accept: False
#keepalive配置
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
notification_email {
wang_zengyi@126.com #接收告警的邮箱
} #注意需要单独配置smtp_send邮箱
notification_email_from 647956023@qq.com #发送告警的邮箱
smtp_server 182.254.38.18 #发送邮件的服务器地址
smtp_connect_timeout 30
router_id study02
}
vrrp_script check_salt {
script "/usr/bin/killall -0 salt-master"
interval 2
}
vrrp_instance VI_1 {
state MASTER #状态为主,默认抢占
interface eth0 #监听的服务接口
virtual_router_id 51 #主备必须一致,VRRPID
priority 100 #优先级,越大越优先
advert_int 1 #心跳报文通告间隔
authentication {
auth_type PASS #keepalive认证类型
auth_pass 1111 #keepalive认证密码
}
notify_master "/etc/keepalived/master.sh" #主状态通告脚本
notify_backup "/etc/keepalived/backup.sh" #备状态通告脚本
notify_fault "/etc/keepalived/fault.sh" #故障状态通过脚本
track_script {
check_salt #track salt的检测脚本
}
virtual_ipaddress {
192.168.31.10/24 dev eth0 table eth0:0 #虚拟IP
}
}
salt客户端
vim /etc/salt/minion
master: 192.168.31.10
master_port: 4506
user: root
id: 192.168.31.13
acceptance_wait_time: 10
log_file: /var/log/salt/minion
启动salt和keepalive服务
主salt服务器
/etc/init.d/keepalived restart
chkconfig --level 35 keepalived on
/etc/init.d/salt-master restart
chkconfig --level 35 salt-master on
备salt服务器
/etc/init.d/keepalived restart
chkconfig --level 35 keepalived on
/etc/init.d/salt-master restart
chkconfig --level 35 salt-master on
salt客户端
etc/init.d/salt-minion restart
chkconfig --level 35 salt-minion on
在master上接收minion秘钥
[root@master ~]# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
192.168.31.13 #此时已经出现客户端的key列表
Rejected Keys:
[root@master ~]# salt-key -a 192.168.31.13
The following keys are going to be accepted:
Unaccepted Keys:
slave
Proceed? [n/Y] y
Key for minion slave accepted.
[root@master ~]# salt-key -L
Accepted Keys:
192.168.31.13 #此时已经出现在接受的key
Denied Keys:
Unaccepted Keys:
Rejected Keys:
tips:将keepalive切换到备机执行同样操作,完成测试环境搭建。
salt-key
[root@linux-node1 ~]# salt-key -L
Accepted Keys: #已经接受的key
Denied Keys: #拒绝的key
Unaccepted Keys:#未加入的key
Rejected Keys:#吊销的key
#常用参数
-L #查看KEY状态
-A #允许所有
-D #删除所有
-a #认证指定的key
-d #删除指定的key
-r #注销掉指定key(该状态为未被认证)
#在master端/etc/salt/master配置
auto_accept: True #如果对Minion信任,可以配置master自动接受请求
日常使用命令
# 服务端
/etc/salt/master # salt master主配置文件
/usr/bin/salt #salt master 核心操作命令
/usr/bin/salt-cp #salt 文件传输命令
/usr/bin/salt-key #salt证书管理
/usr/bin/salt-master #salt master 服务命令
/usr/bin/salt-run #salt master runner命令
# 客户端
/etc/salt/minion #minion配置文件
/usr/bin/salt-call #拉取命令
/usr/bin/salt-minion #minion服务命令
/usr/lib/systemd/system/salt-minion.service #minion启动脚本
更新中……