如您需要技术咨询、解决方案定制、故障排除、运维监控等服务,可联系ericwcn#at#163.com。

SaltStack初始化安装配置

SaltStack 立杰 340℃

一、SaltStack简介

SaltStack是一个服务器基础架构集中化管理平台,salt底层采用动态的连接总线,具备配置管理、远程执行、监控等功能,她是一种全新的基础设施管理方式,部署轻松,在几分钟内可运行起来,扩展性好,速度够快,服务器之间秒级通讯。
一般可以将SaltStack理解为简化版的puppet和加强版的func。SaltStack基于Python语言实现,结合轻量级消息队列(ZeroMQ)与Python第三方模块(Pyzmq、PyCrypto、Pyjinjia2、python-msgpack和PyYAML等)构建。
通过部署SaltStack环境,我们可以在成千上万台服务器上做到批量执行命令,根据不同业务特性进行配置集中化管理、分发文件、采集服务器数据、操作系统基础及软件包管理等,SaltStack是运维人员提高工作效率、规范业务配置与操作的利器。

saltstack

二、saltstack安装

bootstrap-salt.sh是自动安装脚本,能够根据操作系统平台识别并安装相应的SaltStack版本。
https://raw.githubusercontent.com/saltstack/salt-bootstrap/stable/bootstrap-salt.sh

2.1 Ubuntu 14.04

最新版的SaltStack通过Ubuntu PPA进行发布,通过下面命令添加PPA

sudo add-apt-repository ppa:saltstack/salt

安装salt-master、salt-minion或salt-syndic。

sudo apt-get update
sudo apt-get -y install salt-master
sudo apt-get -y install salt-minion
#salt-syndic 类似于代理接口
#sudo apt-get install salt-syndic

2.2 RHEL/CENTOS 6 AND 7, SCIENTIFIC LINUX

SaltStack RPM安装包已包含在EPEL的库中,根据下面的版本下载并安装EPEL

http://download.fedoraproject.org/pub/epel/6/i386/repoview/epel-release.html
http://download.fedoraproject.org/pub/epel/6/x86_64/repoview/epel-release.html
http://download.fedoraproject.org/pub/epel/7/x86_64/repoview/epel-release.html
#CENTOS6 x86_64
rpm -ivh  http://mirrors.opencas.cn/epel/6/x86_64/epel-release-6-8.noarch.rpm
#CENTOS6 x86_32
rpm -ivh http://mirrors.opencas.cn/epel/6/i386/epel-release-6-8.noarch.rpm
#CENTOS7 x86_64
rpm -ivh http://mirrors.opencas.cn/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
#安装SaltStack
yum install salt-master salt-minion

安装完成后,默认SaltStack配置未见位于/etc/salt目录下,如下:

/etc/salt/
├── master
├── master.d
├── minion
├── minion.d
├── minion_id
└── pki
    ├── master
    │   ├── master.pem
    │   ├── master.pub
    │   ├── minions
    │   │   ├── VM-OptDevRHEL-49-35
    │   │   └── VM-Ubuntu1404-49-70
    │   ├── minions_pre
    │   └── minions_rejected
    └── minion

2.3 配置防火墙

默认SaltStack master需要开放TCP 4505,4506端口外网通讯,salt-minion不需要开放端口,它能够主动与salt-master 4505/tcp连接通讯。

#CENTOS6
iptables -A INPUT -m state --state new -m tcp -p tcp --dport 4505 -j ACCEPT
iptables -A INPUT -m state --state new -m tcp -p tcp --dport 4506 -j ACCEPT
service iptables save
#CENTOS 7
firewall-cmd --permanent --zone=public --add-port=4505-4506/tcp
firewall-cmd --reload
#Ubuntu/Debain
ufw allow 4505/tcp
ufw allow 4506/tcp

三、配置SaltStack Master、Minion

3.1 初始化salt-minion配置文件

Salt-master初始化配置基本上不需要修改什么参数。初步测试,只需要保持默认配置即可,详细配置在使用的时候在修改。
修改minion配置,使其能够连接到salt-master。

vim /etc/salt/minion
master: salt.example.com
id: 172-22-16-10-BJ-CN

注意:
1.配置文件中冒号后面需要有“空格”。
2.如果不配置minion id,将使用主机hostname。

启动SaltStack服务

sudo service salt-master start
sudo service salt-minion start

3.2 客户端密钥配置

salt-minion安装成功启动后,会在/etc/salt/pki/minions下创建RSA的公私钥,用于与Salt-Master进行通讯。我们需要在salt-master中配置并接受该机器和密钥的连接才能正常的进行管理。

salt-key 常用的命令选项 
-a [option] 确认指定的证书
-A          确认所有的证书
-d [option] 删除指定的证书
-D          删除所有的证书
-L          列出所有证书

查看所有连接到master的minion密钥。该命令显示的是minion的id或主机名

root@ubuntu:~/salt# salt-key
Accepted Keys:
Unaccepted Keys:
VM-OptDevRHEL-49-35
VM-Ubuntu1404-49-70
Rejected Keys:

查看密钥的公钥指纹

root@ubuntu:~/salt# salt-key -f VM-Ubuntu1404-49-70
Accepted Keys:
VM-Ubuntu1404-49-70:  fc:73:4d:0a:71:8a:a5:3b:b3:cd:7c:1c:d3:f3:75:ac

在Salt-minion上查看KEY公钥指纹信息

root@ubuntu:~# salt-call --local key.finger
local:
    fc:73:4d:0a:71:8a:a5:3b:b3:cd:7c:1c:d3:f3:75:ac

如果KEY公钥指纹信息匹配,可以通过下面命令接受该公钥

root@ubuntu:~# salt-call --local key.finger
local:
    fc:73:4d:0a:71:8a:a5:3b:b3:cd:7c:1c:d3:f3:75:ac

如果接受所有KEY,可以使用salt-key -A

root@ubuntu:~/salt# salt-key -a VM-Ubuntu1404-49-70
The following keys are going to be accepted:
Unaccepted Keys:
VM-Ubuntu1404-49-70
Proceed? [n/Y] Y
Key for minion myminion accepted.

注意:如果salt-minion连接的salt-master服务端密钥发生变更,这需要在/etc/salt/pki/minion/minion_master.pub处进行修改。

3.3 测试salt-minion 客户端

[root@ubuntu~]# salt '*' test.ping
localhost:
    True
Company-WIN08R2-SERV1:
    True
Company-Linux-Ubuntu-10-12-49-70:
    True
Personal-WIN2003R2-10-1-1-11:
    True
Company-Linux-Centos-10-12-49-35:
    Minion did not return. [No response]

注意:

saltstack-master在跨越防火墙部署时,有时候有因为zeroMQ问题导致通讯失败。

转载请注明:知识库 » SaltStack初始化安装配置

喜欢 (0)