集中式管理工具saltstack是兼容Linux、Windows、Unix平台,能实现服务器的批量管理,命令或脚本下发,软件部署,环境搭建,配置管理,是运维人员的提高管理效率的工具。至于更详细的功能与优势这里不再介绍,网络上有很多前辈有介绍,这里只介绍部署方法。

部署环境

saltstack版本:2015.8.7

服务端master:CentOS6.7   master

被控段minion:CentOS5.11   minion01

              CentOS6.7    minion02

              CentOS7.2    minion03

              SLES11 SP3   minion04

              Ubuntu 14.04.4    minion05

              Windows Server 2008 R2 SP1 64bit    minion06

部署过程

master的部署:

CentOS/RHEL6 yum源的添加,除了os基本yum源(参阅前面文章)外,还添加saltstack官方yum源后。

cat > /etc/yum.repos.d/saltstack.repo << EOF

[saltstack]

name=SaltStack repo for RHEL/CentOS \$releasever

baseurl=https://repo.saltstack.com/yum/redhat/\$releasever/\$basearch/latest

enabled=1

gpgcheck=1

gpgkey=https://repo.saltstack.com/yum/redhat/\$releasever/\$basearch/latest/SALTSTACK-GPG-KEY.pub

EOF

更新yum缓存执行如下命令

yum clean all && yum makecache

安装master端 yum install salt-master -y

修改配置文件/etc/salt/master,指定监听的网络接口。

这里网络接口指的是,如果一个网卡就是网卡上配置的IP地址。如果多个网卡,则规划监听来自某个网卡的数据。

启动salt-master服务并配置开机自启动

/etc/init.d/salt-master start

chkconfig salt-master on

minion的部署:

CentOS/RHEL5.11添加如下saltstack的yum源

cat > /etc/yum.repos.d/saltstack.repo << EOF

[saltstack]

name=SaltStack repo for RHEL/CentOS \$releasever

baseurl=https://repo.saltstack.com/yum/redhat/\$releasever/\$basearch/latest

enabled=1

gpgcheck=1

gpgkey=https://repo.saltstack.com/yum/redhat/\$releasever/\$basearch/latest/SALTSTACK-EL5-GPG-KEY.pub

EOF

目前saltstack软件支持的Python以及其组件需要2.6及其以上的版本,但在CentOS/RHEL5平台默认Python版本为2.4,所以需要升级Python版本,那么除了os基本的yum源和saltstack的yum源外,还需要添加epel的yum源。

cat > /etc/yum.repos.d/epel.repo << EOF

[epel]

name=Extra Packages for Enterprise Linux 5 - \$basearch

baseurl=http://mirrors.yun-idc.com/epel/\$releasever/\$basearch

enabled=1

gpgcheck=1

gpgkey=http://mirrors.yun-idc.com/epel/RPM-GPG-KEY-EPEL-5

EOF

重建yum缓存 yum clean all && yum makecache

安装minion软件包 yum install salt-minion -y

修改配置文件/etc/salt/minion,指定master服务器,这里可以是域名,但要能成功解析,也可以是IP地址。

和minion的唯一标识ID,这里建议是主机名或主机应用名来区分主机。

保存并退出,启动salt-minion服务并配置开机自启动。

/etc/init.d/salt-minion start

chkconfig salt-minion on

在master端禁用防火墙与selinux服务

/etc/init.d/iptables stop

setenforce 0

执行命令 salt-key -a minion01 并键入y来接受来自minion01的密钥。

使用 salt 'minion01' test.ping 测试minion01的连通性良好,正常纳管。

CentOS/RHEL6.7 除了os基本的yum源外,saltstack的yum源添加

cat > /etc/yum.repos.d/saltstack.repo << EOF

[saltstack]

name=SaltStack repo for RHEL/CentOS \$releasever

baseurl=https://repo.saltstack.com/yum/redhat/\$releasever/\$basearch/latest

enabled=1

gpgcheck=1

gpgkey=https://repo.saltstack.com/yum/redhat/\$releasever/\$basearch/latest/SALTSTACK-GPG-KEY.pub

EOF

更新yum的缓存 yum clean all && yum makecache

安装minion软件包 yum install salt-minion -y

修改配置文件/etc/salt/minion,指定master服务器与ID。

启动服务,配置开机自启动。

/etc/init.d/salt-minion start

chkconfig salt-minion on

在master上接受来自minion02的密钥 salt-key -a minion02 -y

使用test.ping测试连通性 salt 'minion02' test.ping

CentOS/RHEL7.2平台添加os基本yum源,注意如果是RHEL基本yum找不到依赖的软件包,可能需要添加同版本的CentOS的基本yum源。

cat > /etc/yum.repos.d/CentOS-7.2-x86_64 << EOF

[base]

name=CentOS-\$releasever - Base

baseurl=http://mirrors.yun-idc.com/centos/\$releasever/os/\$basearch/

enabled=1

gpgcheck=0

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

EOF

再添加saltsack的yum源

cat > /etc/yum.repos.d/saltstack.repo << EOF

[saltstack-repo]

name=SaltStack repo for RHEL/CentOS \$releasever

baseurl=https://repo.saltstack.com/yum/redhat/\$releasever/\$basearch/latest

enabled=1

gpgcheck=1

gpgkey=https://repo.saltstack.com/yum/redhat/\$releasever/\$basearch/latest/SALTSTACK-GPG-KEY.pub

EOF

更新yum缓存 yum clean all && yum makecache

安装salt-minion软件包 yum install salt-minion -y

修改配置文件/etc/salt/minion指定master服务器与ID

启动服务并配置开机自启动

systemctl start salt-minion.service

systemctl enable salt-minion.service

master端接受来自minion03的密钥,测试连通性。

salt-key -a minion03 -y

salt 'minion03' test.ping

SUSE 11 SP3的配置,除了添加os基本的zypper源外,还要添加saltstack的zypper源

zypper addrepo http://download.opensuse.org/repositories/devel:languages:python/SLE_11_SP3/devel:languages:python.repo

刷新zypper缓存 zypper refresh

安装salt-minion软件包 zypper install salt-minion ,如果遇到因为网络原因下载不了软件包的请多次重试。

编辑配置文件 /etc/salt/minion 指定master与ID

启动salt-minion服务并配置开机自启动

/etc/init.d/salt-minion start

chkconfig salt-minion on

master端接受来自minion04的密钥 salt-key -a minion04 -y

测试连通性 salt 'minion04' test.ping

Ubuntu14.04的配置,导入SaltStack repository的key。

wget -O - https://repo.saltstack.com/apt/ubuntu/14.04/amd64/latest/SALTSTACK-GPG-KEY.pub | sudo apt-key add -

添加sources.list源,编辑文件/etc/apt/sources.list添加如下

deb http://repo.saltstack.com/apt/ubuntu/14.04/amd64/latest trusty main

更新 sudo apt-get update

安装salt-minion软件包 sudo apt-get install salt-minion -y

修改配置/etc/salt/minion,指定master与ID。

启动服务并配置开机自启动

sudo /etc/init.d/salt-minion start

sudo ln -s /etc/init.d/salt-minion /etc/rc3.d/S98salt-minion

sudo ln -s /etc/init.d/salt-minion /etc/rc5.d/S98salt-minion

master端接受来自minion05的key,测试连通性。

Windows平台到这里下载最新版salt-minion软件来安装 

这里Windows Server 2008 R2 SP1 64bit 我们使用版本 Salt-Minion-2015.8.7-AMD64-Setup.exe

需要.netframework3.5及其以上版本的支持,在功能里安装。

打开软件next下一步进行安装

同意协议

指定master服务器与minion ID

自动安装

安装完成

点击开始菜单旁边的服务器管理器

在服务里找到salt-minion服务

右键菜单启动服务

关闭Windows系统防火墙

在master端接受来自minion06的密钥后测试连通性。

由此可实现不同平台主机的管理。