SSCCGo 2020-03-26
系统管理员日常会进行大量的重复性操作,例如安装软件,修改配置文件,创建用户,批量执行命令等等,假设有上百台服务器(或者网络设备)需要重复维护工作,如果一台一台维护效率低下且耗费成本和人力,这时候自动化运维工具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个端口,保证防火墙允许端口通过。因此在测试环境直接关闭防火墙。
yum -y install epel-release #安装EPEL环境 yum -y install salt-master #安装salt控制端 yum -y install keepalived #安装keepalive
yum -y install epel-release #安装EPEL环境 yum -y install salt-master #安装salt控制端 yum -y install keepalived #安装keepalive
yum -y install epel-release #安装EPEL环境 yum install salt-minion #安装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 { #接收告警的邮箱 } #注意需要单独配置smtp_send邮箱 notification_email_from #发送告警的邮箱 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 } }
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 { #接收告警的邮箱 } #注意需要单独配置smtp_send邮箱 notification_email_from #发送告警的邮箱 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 } }
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
/etc/init.d/keepalived restart chkconfig --level 35 keepalived on /etc/init.d/salt-master restart chkconfig --level 35 salt-master on
/etc/init.d/keepalived restart chkconfig --level 35 keepalived on /etc/init.d/salt-master restart chkconfig --level 35 salt-master on
etc/init.d/salt-minion restart chkconfig --level 35 salt-minion on
[ ~]# salt-key -L Accepted Keys: Denied Keys: Unaccepted Keys: 192.168.31.13 #此时已经出现客户端的key列表 Rejected Keys:
[ ~]# 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.
[ ~]# salt-key -L Accepted Keys: 192.168.31.13 #此时已经出现在接受的key Denied Keys: Unaccepted Keys: Rejected Keys:
tips:将keepalive切换到备机执行同样操作,完成测试环境搭建。
[ ~]# 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启动脚本
更新中……