标签:nio 特性 软件包 去掉 命令执行 启动 软件包管理 集中管理 服务器
Saltstack 介绍通过部署 Saltstack环境,可以在成千上万台服务器上批量执行命令。对于不同的业务进行集中管理、分发文件、采集数据、软件包管理等,有利于运维人员提高工作效率,规范业务配置和操作。
Saltstack由 Master和 Minion构成, Master是服务端,表示一台服务器; Minion
是客户服务端,表示多台服务器。在 Master上发送命令给符合条件的 Minion, Minion
就会执行相应的命令, Master和 Minion之间是通过 Zeromq(消息队列)进行通信的。
Saltstack的 Master端监听4505与4506端口,4505为 Master和 Minion认证通信端口,4506为 Master用来发送命令或者接收 Minion的命令执行返回信息。
当客户端启动后,会主动连接Master端注册,然后一直保持该TCP连接,而Master通过这条TCP连接对客户端进行控制。如果连接断开, Master对客户端将不能进行控制。但是,当客户端检查到连接断开后,会定期向 Master端请求注册连接。
本篇安装一台master服务器 (192.168.100.101)
以及两台 minion服务器 (192.168.100.102 192.168.100.103)
分别修改各自的主机名
vim /etc/hostname
master服务器: master.saltstack.com
minion服务器: web01.saltstack.com
web02.saltstack.com
并配置主机文件 (三台都需要配置)
vim /etc/hosts
192.168.100.101 master.saltstack.com
192.168.100.102 web01.saltstack.com
192.168.100.103 web02.saltstack.com
配置完成 重启生效
------------在 master服务器上-----------
yum install epel-release -y ##配置epel源
yum install salt-master -y 安装主服务器
vim /etc/salt/master
interface: 192.168.100.101 ##第15行,修改监听地址为本机地址
auto_accept: True ##第215行,主服务器会自动认证被控端的认证,只要被控端在设置完主服务器的IP地址后启动服务,主服务器就会允许被控端自动认证,以避免以后每次都要运行salt-key来确认认证书信任。
file_roots:
base:
- /srv/sale
##第416行,去掉注释。开启saltstack文件根目录位置,注意这个目录默认没有创建,需要自己手动创建。
nodegroups:
group1: ‘web01.saltstack.com‘
group2: ‘web02.saltstack.com‘
##第710行,配置组分类
pillar_opts: True ##第552行,开启pillar功能,同步文件功能
pillar_roots:
base:
- /srv/pillar
##第529行,去掉注释,pillar的主目录,需要自己创建
接下来就是创建salt与pillar文件根目录
mkdir /srv/salt
mkdir /srv/pillar
systemctl start salt-master
systemctl enabled salt-master
-------------在 minion服务器上(两台一样) ------------------
yum install epel-release -y ##配置epel源
yum install salt-minion -y
vim /etc/salt/minion
master: 192.168.100.101 ##第16行,指定主服务器的IP
id: web01.saltstack.com ##第78行,指定被控端主机名
systemctl start salt-minion
-----------安装完成----------------------
在主服务器端进行操作
salt ‘*‘ test.ping ##测试连接
web01.saltstack.com:
True
web02.saltstack.com:
True
## 说明配置成功
* 代表所有服务器,如需指定某一台,换成该服务器的主机名
salt ‘*‘ cmd.run ‘xxx‘ ##远程执行命令
salt-key ##查看在主服务器上已经被接受过的客户端
salt ‘*‘ grains.items ##查看被控端上grains所有值(静态数据)
salt ‘*‘ pillar.items ##查看被控端上pillar所有值(动态数据)
grains和 pillar都是采集被控端数据的,但是 grains的特性在每次启动后汇报,没有pillar灵活,要知道 pillar是随时可变的,只要在master端修改了,一般都会立刻生效。所以 grains更适合做一些静态的属性值的采集,例如设备的角色、磁盘个数等诸如此类非常固定的属性。那么我们就可以得到一个大致的判断,如果你想定义的属性值是经常变化的,就采用pillar:如果很固定、不易变,就采用 grains。
通过saltstack远程安装apache
mkdir /srv/salt ##配置文件中需要开启
vim /srv/salt/top.sls ##创建入口文件,入口文件的作用是定义pillar 的数据覆盖被控主机的有效范围
base:
‘*‘:
- apache
vim /srv/salt/apache.sls
apache: ##这里是自定义的名称
pkg.installed: ##安装包
- names:
- httpd
- httpd-devel
service.running:
- name: httpd
- enable: True
systemctl restart salt-master
salt ‘*‘ state.highstate ##执行并刷新state配置命令
这样就可远程安装apache服务了
标签:nio 特性 软件包 去掉 命令执行 启动 软件包管理 集中管理 服务器
原文地址:http://blog.51cto.com/13625924/2155001