saltstack安装配置
安装配置(测试环境):
1.测试机:
master:
192.168.140.128
slaver: 192.168.140.129
关闭selinux
查看SELinux状态:
1、/usr/sbin/sestatus -v ##如果SELinux status参数为enabled即为开启状态
SELinux status: enabled
2、getenforce ##也可以用这个命令检查
enforcing代表开启状态
关闭SELinux:
1、临时关闭(不用重启机器):
setenforce 0 ##设置SELinux 成为permissive模式
##setenforce 1 设置SELinux 成为enforcing模式
2、修改配置文件需要重启机器:
修改/etc/selinux/config 文件
将SELINUX=enforcing改为SELINUX=disabled
重启机器即可
2.配置相关文件
编辑hosts文件
# vi /etc/
host
192.168.140.128 master
192.168.140.129 slaver
由于是测试用的,只有两台机器,因此在机器很多的情况下,建议搭建DNS,那么上述设置可忽略
设置hostname
vi /etc/sysconfig/network(这里为了区分,我设置为master、slaver)
3.install xymon
(1)服务器端安装
[root@master ~]#
yum
install
-y epel-
release
[root@master
~]#
yum
install
-y salt-master salt-minion
(2)客户端安装
[root@slaver ~]#
yum
install
-y epel-
release
[root@slaver
~]#
yum
install
-y salt-minion
4.配置
vi /etc/salt/minion
master:192.168.140.128 //取消#号,master后面有一个空格
5.启动服务
(1)服务端
[root@master ~]# /etc/init.d/salt-master start
Starting salt-master daemon: [ OK ]
[root@master ~]# /etc/init.d/salt-minion start
Starting salt-minion daemon: [ OK ]
(2)客户端
[root@slaver ~]# /etc/init.d/salt-minion start
Starting salt-minion daemon: [ OK ]
6.配置认证
[root@master ~]# salt-key -a slaver
[
root
@master ~]# salt-key -a master
[
root
@master ~]# salt-key
检测通讯是否正常:salt '*' test.ping
7.出现的问题
The key glob 'slaver' does not match any unaccepted keys.
这是因为没在/etc/salt/master目录下面设置自动接收
##vi /etc/salt/master
修改interface监听地址为本机ip:interface:
192.168.140.128
修改auto_accept 自动接收minion的key:
auto_accept: True
关于saltstack的grains和pillar:
1.
grains (客户端启动时会收集一些信息)
[root@master ~]# salt
'slaver
'
grains.
ls
//
列出所有的 grains 项目名字
[root@master ~]# salt
'slaver
'
grains.items
//
列出所有的 grains 项目名以及值
值得注意的是,grains的信息并不是实时更新的,它只会在minion启动时才会收集相关的信息。grains同样可以用作配置管理。
(1)客户端配置
[root@slaver ~]# vim /etc/salt/grains
//
添加如下,注意冒号后有空格
role: nginx
env
: test
myname: tpp
======或者是======
[root@slaver ~]# vim /etc/salt/minion //在最下面添加或更改
grains:
role:
- nginx
env:
- test
myname:
- tpp
重启客户端的服务
[root@slaver ~]# /etc/init.d/salt-minion restart
服务器端获取grains
[iyunv@master ~]# salt
'slaver
'
grains.item role
env
myname
//
列出多个
grains在远程执行命令的时候很方便。可按照grains的一些指标来操作。如把所有的web服务器grains的role设置为nginx,便可以批量的对nginx的服务器进行操作:
[root@master ~]# salt -G role:nginx cmd.run
'
hostname
'
[
root
@master
~]# salt -G os:CentOS cmd.run
'
hostname
2.接下来就是关于pillar,有差别的是pillar是在master上面定义的,且针对minion定义的一些信息。
查看指定minion的 pillar 值:
[root@master ~]# salt
'slaver
'
pillar.items
(1)服务器端自定义配置pillar
[root@master ~]# vim /etc/salt/master //找到如下内容,去掉#号
pillar_roots:
base:
- /srv/pillar
[root@master ~]# mkdir /srv/pillar
[root@master ~]# vim /srv/pillar/test.sls //自定义配置文件,内容如下
conf: /etc/123.conf
myname: tpp
[root@master ~]# vim /srv/pillar/top.sls //总入口文件,内容如下
base:
'slaver
':
- test
重启master
[root@master ~]# /etc/init.d/salt-master restart
注意:当更改完pillar配置文件之后,可刷新pillar配置来获取新的pillar状态:
[root@master ~]# salt
'
*
'
saltutil.refresh_pillar
(2)验证信息:
[root@master ~]# salt
's
laver
'
pillar.items
[
root
@master ~]# salt
'
s
laver
'
pillar.item conf
[
root
@master
~]# salt
'
s
laver
'
pillar.item myname
pillar同样可以用来作为salt的匹配对象:
[root@master ~]# salt -I
'
conf:/etc/123.conf
'
test.
ping
[
root
@master
~]# salt -I
'
conf:/etc/123.conf
'
cmd.run
'
w
'