24.5 saltstack远程执行命令
24.6 grains
24.7 pillar
24.8 安装配置httpd
24.9 配置管理文件
24.5 saltstack远程执行命令
测试机器网络
格式:salt '主机名' testping
1
2
3
4
5[root@kun01 ~]# salt '*' test.ping
kun02:
True
kun01:
True
让机器运行命令
格式:satl '主机名' cmd.run "命令"
1
2
3
4
5[root@kun01 ~]# salt '*' cmd.run "hostname"
kun02:
kun02
kun01:
kun01
*
必须是在master上已经被接受过认证的客户端,可以通过salt-key
查到。关于这部分内容,它支持通配、列表以及正则。1
2
3
4
5[root@kun01 ~]# salt 'kun*' cmd.run "hostname"
kun02:
kun02
kun01:
kun01
-E
表示使用正则1
2
3
4
5[root@kun01 ~]# salt -E 'kun0\d' cmd.run "hostname" ##\d等于[0-9]
kun02:
kun02
kun01:
kun01
-L
使用列表 多个机器用逗号分隔1
2
3
4
5[root@kun01 ~]# salt -L 'kun01,kun02' test.ping
kun02:
True
kun01:
True
用grains匹配主机
格式:salt -G 键:值
1
2
3[root@kun01 pillar]# salt -G role:web test.ping
kun02:
True
用pillar匹配主机
格式:salt -I '键:值'
1
2
3[root@kun01 pillar]# salt -I 'conf:/etc/123.conf' test.ping
kun01:
True
24.6 grains
grains
是在minion
启动时收集到的一些信息
,比如操作系统类型、网卡ip、内核版本、cpu架构等。
grains的信息并不是动态的,并不会实时变更,它是在minion启动时收集到的。
列出所有的grains项目名字
格式:salt '主机名' grains.ls
1
2
3
4
5[root@kun01 ~]# salt '*' grains.ls
kun02:
- SSDs
- biosreleasedate
- biosversion
列出所有grains项目以及值
格式:salt '主机名' grains.items
1
2
3
4
5
6
7
8[root@kun01 ~]# salt '*' grains.items
kun02:
----------
SSDs:
biosreleasedate:
07/31/2013
biosversion:
6.00
grains支持自定义信息,等于给主机打标签
步骤
1.在kun02上添加自定义grains信息
1 | [root@kun02 ~]# vim /etc/salt/grains |
2.重启minion服务
1 | [root@kun02 ~]# systemctl restart salt-minion |
3.在kun01上根据grains信息执行命令
1 | [root@kun01 ~]# salt '*' grains.item role env ##列出所有grains是role env的值 |
24.7 pillar
pillar和grains不一样,是在master上定义的,并且是针对minion定义的一些信息。像一些比较重要的数据(密码)可以存在pillar里,还可以定义变量等。在master上给客户机打标签
,更加安全。
配置自定义pillar
步骤
1.配置master配置文件
1 | [root@kun01 ~]# vim /etc/salt/master |
把下面参数#去掉1
2
3pillar_roots:
base: ##空两格
- /srv/pillar ##空四格
2.创建/srv/pillar目录
1 | [root@kun01 ~]# mkdir /srv/pillar |
/srv/pillar
目录存放pillar文件
3.创建子和主配置文件
1 | [root@kun01 ~]# cd /srv/pillar/ |
3.重启salt-master服务
1 | [root@kun01 pillar]# systemctl restart salt-master |
刷新pillar配置
格式:salt '主机名' saltutil.refresh_pillar
1
2
3
4
5[root@kun01 pillar]# salt '*' saltutil.refresh_pillar
kun02:
True
kun01:
True
查看特定pillar的值
格式:salt '主机名' pillar.item 键
1
2
3
4
5
6
7
8
9[root@kun01 pillar]# salt '*' pillar.item conf
kun01:
----------
conf:
/etc/123.conf
kun02:
----------
conf:
/etc/123aa.conf
24.8 安装配置httpd
使用saltstack来安装软件包 centOS默认使用yum安装
步骤
1.配置master配置文件
1 | [root@kun01 ~]# vim /etc/salt/master |
把下面参数#去掉1
2
3file_roots:
base:
- /srv/salt/
2.重启salt-master服务
1 | [root@kun01 ~]# systemctl restart salt-master |
3.创建/srv/salt目录
1 | [root@kun01 ~]# mkdir /srv/salt |
4.创建子和主配置文件
1 | [root@kun01 ~]# cd /srv/salt/ |
让所有的客户端机器执行httpd.sls1
2
3
4
5
6
7
8
9
10[root@kun01 salt]# vim httpd.sls
httpd-service:
pkg.installed:
- names:
- httpd
- httpd-devel
service.running:
- name: httpd
- enable: True
httpd-service
是id的名字,自定义的。pkg.installed
为包安装函数,下面是要安装的包的名字。service.running
也是一个函数,来保证指定的服务启动,enable
表示开机启动。
5.执行安装httpd包
格式:salt '主机名' state.highstate
1
2
3
4
5
6
7
8
9
10[root@kun01 salt]# salt 'kun02' state.highstate
kun02:
----------
ID: httpd-service
Function: pkg.installed
Name: httpd
Result: True
Comment: The following packages were installed/updated: httpd
Started: 21:25:04.019004
Duration: 106613.517 ms
查看kun02上是否安装http服务
1 | [root@kun02 ~]# ps aux |grep httpd |
在centOS7中/lib/systemd/system/
是存放服务的1
2[root@kun02 ~]# ls /lib/systemd/system/httpd.service
/lib/systemd/system/httpd.service
24.9 配置管理文件
在服务端使用saltstack存放模板文件再分发到其他客户机上
步骤
1.配置master配置文件
1 | [root@kun01 ~]# vim /etc/salt/master |
把下面参数#去掉1
2
3file_roots:
base:
- /srv/salt/
2.重启salt-master服务
1 | [root@kun01 ~]# systemctl restart salt-master |
3.创建/srv/salt目录
1 | [root@kun01 ~]# mkdir /srv/salt |
4.创建子和主配置文件
1 | [root@kun01 ~]# cd /srv/salt/ |
让所有的客户端机器执行file.sls1
2
3
4
5
6
7
8
9[root@kun01 salt]# vim file.sls
file_test:
file.managed:
- name: /tmp/kun.txt
- source: salt://test/1.txt
- user: root
- group: root
- mode: 600
第一行的file_test
为自定的名字,表示该配置段的名字,managed
文件管理模块 name
指定客户机的文件路径 source指定文件从哪里拷贝,salt://test/1.txt
相当于是/srv/salt/test/1.txt file
5.创建1.txt文件
1 | [root@kun01 salt]# mkdir test |
6.传输文件
1 | [root@kun01 salt]# salt 'kun02' state.highstate |