一、安装master(在第一台机器上安装master)
1、 执行:
- wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
- yum install epel-release -y
- yum install salt-master -y
- 第三步骤如未出现以下错误则不用管他,出现了则依照以下方法解决,解决后再执行此操作
安装salt-master时如遇到如上图问题则执行下命令
rpm -e glibc-common-2.17-105.el7.x86_64 ##移除安装的glibc-common-2.17-105.el7.x86_64
注:移除时如出现被某包需要,则把依赖glibc-common-2.17-105.el7.x86_64的包也移除
安装salt-master时如遇到如上图问题,先执行 yum list |grep systemd-libs ##查看安装的包
保护多库版本的错是无法自动更新,则现在的解决办法就是把已安装的systemd-libs的版本移除掉(移除状态为install状态的包)
注:移除时如出现被某包需要,则把依赖glibc-common-2.17-105.el7.x86_64的包也移除
解决(此命令删除了systemd-libs的包及依赖systemd-libs 的包):
rpm -e systemd-219-19.el7_2.11.x86_64 systemd-sysv-219-19.el7_2.11.x86_64 libgudev1-219-19.el7_2.11.x86_64
5、systemctl start salt-master.service ##启动 saltstack master 服务
注释:在启动之前应该先配置master文件,添加上interface : '192.168.16.150'
6、netstat -tunlp | grep python ## 检查saltstack端口及进程的运行状态
注释:saltstack服务的master主要开启的端口是4505和4506
7、service firewalld stop ##关闭防火墙
8、修改selinux为Permissive模式,执行如下两条命令:
setenforce 0
getenforce
二、安装minion(在第二台机器上安装minion)
- wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
- yum install epel-release -y
- yum install salt-minion -y(此步骤如未出现以下错误则不用管他,出现了则依照以下方法解决,解决后再执行此操作 )
解决:
#rpm -e systemd-sysv-219-19.el7.x86_64
#rpm -e glibc-common-2.17-105.el7.x86_64 glibc-2.17-105.el7.x86_64
解决:
#rpm -e systemd-libs-219-19.el7_2.11.x86_64 systemd-219-19.el7_2.11.x86_64 libgudev1-219-19.el7_2.11.x86_64 systemd-sysv-219-19.el7_2.11.x86_64
#rpm -e nss-softokn-freebl-3.16.2.3-14.2.el7_2.x86_64 nss-softokn-3.16.2.3-14.2.el7_2.x86_64 nss-3.21.0-9.el7_2.x86_64 nss-sysinit-3.21.0-9.el7_2.x86_64 nss-tools- 3.21.0-9.el7_2.x86_64
- 在/etc/salt/minion 文件中加入master的主机ip(如果不添加默认为主机名)
master: '192.168.16.150'
- systemctl start salt-minion.service ## 启动salt-minion服务
- service firewalld stop ##关闭防火墙
- ps -ef | grep salt | grep -v grep ## 查看salt-minion进程的启动状况
三、配置saltstack(在master机器上配置):
- salt-key -L ##查看当前密钥
- salt-key -A -y ##接受所有来自客户端密钥,( --accept=example.com 接受指定的密钥)
- salt-key -L ##再次查看当前密钥
四、测试(在master机器上操控minion机器):
- salt dev002 test.ping #简单测试
- salt dev002 cmd.run 'uname -r' #运行linux命令
三、扫盲区
1、为什么选择SaltStack?
目前市场上主流的开源自动化配置管理工具有puppet、chef、ansible、saltstack等等。到底选择那个比较好?可以从以下几方面考虑:
1、语言的选择(puppet/chef vs ansible/saltstack)
Puppet、Chef基于Ruby开发,ansible、saltstack基于python开发的,运维开发语言热衷于python(后期可做二次开发),排除Puppet、Chef
2、速度的选择 (ansible vs saltstack)
ansible基于ssh协议传输数据,SaltStack使用消息队列zeroMQ传输数据。从网上数据来看,SaltStack比ansible快大约40倍。对比ansible,Saltstack缺点是需要安装客户端。为了速度建议选择Saltstack