一、salt简介
saltstack是一个基于C/S架构的集中化管理平台,具备配置管理、远程执行、监控等功能。使用saltstack可以一键批量部署服务、远程执行命令,在大规模的服务集群中大大提高了运维人员的工作效率。
saltstack基于python语言开发,使用轻量级消息队列(ZeroMQ)pub/sub进行通信。
minion在首次时,会在/etc/salt/pki/minion/(该路径可在/etc/salt/minion中设置)下自动生成minion.pem(私钥)和minion.pub(公钥),然后将minion.pub发送给master。master通过salt-key -A命令接收minion的公钥时,在master的/etc/salt/pki/master/minions/目录下就会产生保存minion公钥的文件,之后master就能对minion发送指令了。
二、salt安装
salt运用了YAML语言、Jinja模版语言、ZeroMQ,这些都不需要安装。需要做的就是配置一个epel源,然后执行yum -y install salt-master,就会发现这些依赖包已经在这个过程中全部被安装了。
在要被管理的机器上配置epel源,执行yum -y install salt-minion完成客户端的安装。
三、salt配置
默认的配置文件都存放在/etc/salt/目录下。
master文件配置:
1
2
3
4
5
6
7
8
| [iyunv@zhen ~]# sed -e '/^#/d;/^$/d'/etc/salt/master
default_include:master.d/*.conf
timeout: 60
file_roots: #指定文件路径
base:
- /etc/salt/states/base #base环境路径
prod:
- /etc/salt/states/prod #prod环境路径
|
因为是刚开始学习salt,使用这些配置就足够完成很多操作了。定义的两个文件路径需要手动生成。
minion文件配置:
1
2
3
| [iyunv@zhen ~]# sed -e '/^#/d;/^$/d'/etc/salt/minion
master: 192.168.199.79
id: saltstack.test.com #id可以自定义,最好有一定的规律
|
salt在配置上是非常简单的,但是它实现的功能就远不止这么简单了!
四、启动测试
1、启动:
在CentOS系列系统上使用yum安装的软件启动方式都是一样的:
1
2
3
4
5
6
| [iyunv@zhen ~]# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
saltstack.test.com
Rejected Keys:
|
2、测试:
(1)查看key列表:
1
2
3
4
5
6
| [iyunv@zhen ~]# salt-key -L
Accepted Keys:
Denied Keys:
Unaccepted Keys:
saltstack.test.com
Rejected Keys:
|
从上面可以看出来saltstack.test.com的key还没有接收,用下面的命令接收所有没有接收的key: 1
2
3
4
5
6
| [iyunv@zhen ~]#salt-key -A
The followingkeys are going to be accepted:
Unaccepted Keys:
saltstack.test.com
Proceed? [n/Y] Y
Key for minionsaltstack.test.com accepted
|
(2)key接收之后就可以对minion远程执行命令了: 1
2
3
| [iyunv@zhen ~]#salt 'saltstack.test.com' test.ping
saltstack.test.com:
True #使用test.ping测试用minion的连通性
|
1
2
3
| [iyunv@zhen ~]#salt 'saltstack.test.com' cmd.run 'date'
saltstack.test.com:
WedJul 13 18:51:00 EDT 2016 #使用cmd.run执行date命令
|
注意:执行命令时,如果针对所有节点,可以用salt ‘*’加上命令即可。但是对所有节点进行操作时,最好在命令后面加上 test=True 查看下执行的操作都有哪些,再执行命令。
|