集中式管理工具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

wKiom1bkIELhchtfAACarQbPCS0905.png

安装master端 yum install salt-master -y

wKiom1bkJZbDDVKeAABFFhUPWXY057.png

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

wKiom1bkJg7hNuGFAAA7HOaSINA880.png

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

wKiom1bkJqWTrNgbAAA-v0U6vNU435.png

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

/etc/init.d/salt-master start

chkconfig salt-master on

wKiom1bkJwDxo-aWAAASAPzqVwc792.png

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

wKioL1boGZ_AlyjQAABXkNW7UvY046.png

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

wKioL1boHHXgXNC7AABVKNO_WwI645.png

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

wKioL1boHP6wt0PoAABCsTzBqXY828.png

wKiom1boHJ-R8FFnAABDlE3pB4E372.png

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

wKioL1boHYew4MLCAAA6UMREG0E522.png

wKioL1boHbKR5QZuAAA_9gGK6Ck592.png

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

/etc/init.d/salt-minion start

chkconfig salt-minion on

wKiom1boHYSRg9P1AAAeuTcBq3Y954.png

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

/etc/init.d/iptables stop

setenforce 0

wKioL1boHmryuKp3AAAlRPGia_I921.png

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

wKioL1boHt7T2p0mAAAbPQhD5v4931.png

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

wKiom1boHqjRaK-iAAAPNtBF2HQ319.png

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

wKioL1bsDwyAn6UUAABJZlBrIaU019.png

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

wKiom1bsDzfiwKB2AABGQ_yXSi4618.png

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

wKioL1bsEHez9LNbAABGnCzWZY0702.png

wKiom1bsEBrREMfhAABT_GLA4UY570.png

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

/etc/init.d/salt-minion start

chkconfig salt-minion on

wKioL1bsEPGQkzo0AAARWSzoMjU238.png

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

wKiom1bsENOTOwxPAAAYo1fv1hY193.png

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

wKiom1bsERHDrwQpAAAPmXPCOBM751.png

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

wKiom1bsMKKAKpbTAABGEaRHYSs431.png

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

wKioL1bsMsLyGHMcAABOj0RT6do523.png

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

wKioL1bsM9vAPj-RAABn8oE_qCg589.png

wKioL1bsNCqzdjqWAAA3ijXCR8I866.png

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

systemctl start salt-minion.service

systemctl enable salt-minion.service

wKiom1bsMp7zycl4AAAqiYepkTA233.png

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

salt-key -a minion03 -y

salt 'minion03' test.ping

wKioL1bsNI7TcDOmAAAh0GWM6Ec563.png

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

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

wKiom1bsG9fDCx9ZAAAxtww9MvE668.png

刷新zypper缓存 zypper refresh

wKiom1bsHJWwDP91AABqBdKAeeQ431.png

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

wKioL1btKYHwmCJiAAEtdUspb5I744.png

wKiom1btKPOj0nwYAAEpl-xYv3M598.png

wKioL1btKYWziyiCAABtZpURGnc074.png

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

wKiom1bsH57jUjZbAABH9v76pyk571.png

wKiom1bsH9ewKV3iAABBAelITTc029.png

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

/etc/init.d/salt-minion start

chkconfig salt-minion on

wKioL1bsIMTBC0ScAAAehpRBbqQ289.png

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

wKioL1bsI×××oOyzAAAY4y1DPJg272.png

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

wKioL1bsIWbQwlHXAAAQgqIiDoM357.png

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 -

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

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

wKiom1bsI1aw9WLbAADdxVVlonY994.png

更新 sudo apt-get update

wKioL1bsJOLDVR-pAADMRxeHCWc866.png

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

wKiom1bsJbaRo66jAABVDuO4JII521.png

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

wKiom1bsJtmA1hjwAABeN3h1gFg706.png

wKioL1bsJ6CBDfrnAABIm0sLcxQ198.png

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

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

wKiom1bsKL6zLqbhAAAmUUe6j0c504.png

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

wKiom1bsKpSgWrp2AAAiemEDMzU754.png

Windows平台到这里下载最新版salt-minion软件来安装 https://repo.saltstack.com/windows/

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

wKiom1bs7PCyTGE4AAAHALRo9mw740.png

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

wKioL1btGt2D-eB6AAC6-ZhF_wk022.png

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

wKiom1bs7STDUybTAABiUuUHip0981.png

同意协议

wKiom1bs7UqxOLcwAABQ0dYpx58930.png

指定master服务器与minion ID

wKiom1bs7YazkrgHAABGMhlbRm0547.png

自动安装

wKioL1bs7jTj1erkAABMmeHpgGw762.png

安装完成

wKiom1bs7dGgvn2XAABdKlzL5uA068.png

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

wKiom1bs7nbQruWBAAANzoD8Ulk618.png

在服务里找到salt-minion服务

wKiom1bs7tDglvqXAABxROLks34762.png

右键菜单启动服务

wKiom1bs7w2S7dyzAAArlr8nZDA868.png

关闭Windows系统防火墙

wKioL1btG02w0r8JAADAUXPBaJk237.png

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

wKiom1btGyGjoankAAAkbrLXnVM780.png

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