saltstack快速入门
1、saltstack快速入门
1.1实验环境说明
[root@linux-node1 ~]# cat /etc/redhat-release CentOS release 6.7 (Final)
主机列表
主机名 |
ip地址 |
说明 |
linux-node1.example.com |
192.168.1.83 |
模式:master |
linux-node2.example.com |
192.168.1.84 |
模式:minion |
linux-node3.example.com |
192.168.1.93 |
模式:minion |
linux-node4.example.com |
192.168.1.94 |
模式:minion |
实验前先保证每台机器ping主机名互通,每台机器都在host中添加主机解析
#每台机器都host解析下
[root@linux-node1 ~]# tail -4 /etc/hosts 192.168.1.83 linux-node1.example.com linux-node1 192.168.1.84 linux-node2.example.com linux-node2 192.168.1.93 linux-node3.example.com linux-node3 192.168.1.94 linux-node4.example.com linux-node4
1.2 saltstack安装
1.2.1 master节点安装
#node1机器安装 [root@linux-node1 ~]# yum -y install salt-master
1.2.2 minion节点安装
#node2 node3 node3机器安装 [root@linux-node2 ~]# yum -y install salt-minion
1.3 加入开机自启动
#master节点机器加入开机自启动node1 [root@linux-node1 ~]# chkconfig salt-master on #查看 [root@linux-node1 ~]# chkconfig salt-master --list salt-master 0:off 1:off 2:on 3:on 4:on 5:on 6:off #minion节点机器node2、node3、node4加入开机自启动,这里只显示node2 [root@linux-node2 salt]# chkconfig salt-minion on #查看 [root@linux-node2 salt]# chkconfig salt-minion --list salt-minion 0:off 1:off 2:on 3:on 4:on 5:on 6:off
1.4 saltstack 接收minion的key
#所有minion节点服务器上操作,这里只示例配置node2机器 [root@linux-node2 ~]# vim /etc/salt/minion 16 master: 192.168.1.83 #<==指定master可以是主机名(需要解析) 78 #id: #<==唯一标示符,可以不配默认就是主机名
启动minion(所有节点机器操作)
[root@linux-node2 ~]# /etc/init.d/salt-minion start Starting salt-minion daemon: [ OK ]
到这里saltstack 已经安装完毕!!!
saltstack的使用是需要认证的,master有个认证选项,是否管理minion,使用key认证
minion启动后会生成一个公钥,一个私钥
[root@linux-node2 ~]# cd /etc/salt/pki/minion/ [root@linux-node2 minion]# ll total 8 -r-------- 1 root root 1679 May 16 16:15 minion.pem #<==私钥 -rw-r--r-- 1 root root 451 May 16 16:15 minion.pub #<==公钥
master启动也会生成key
[root@linux-node1 ~]# cd /etc/salt/pki/master/ [root@linux-node1 master]# ls master.pem master.pub minions minions_autosign minions_denied minions_pre minions_rejected
tree查看下
[root@linux-node1 ~]# cd /etc/salt/pki/master/ [root@linux-node1 master]# tree . ├── master.pem #<==私钥 ├── master.pub #<==公钥 ├── minions ├── minions_autosign ├── minions_denied ├── minions_pre #<==接收到minion的公钥等待master的同意 │ ├── linux-node2.example.com #<==使用id作为公钥的名称 │ ├── linux-node3.example.com │ └── linux-node4.example.com └── minions_rejected 5 directories, 5 files
认证查看
[root@linux-node1 master]# salt-key Accepted Keys: #<==同意的 Denied Keys: #<==拒绝的 Unaccepted Keys: #<==等待同意的 linux-node2.example.com linux-node3.example.com linux-node4.example.com Rejected Keys:
同意认证方式分为三种:
[root@linux-node1 master]# salt-key -A #<==同意所有minion节点 [root@linux-node1 master]# salt-key -a id(minion配置文件设置的,默认主机名) #<==同意指定的id [root@linux-node1 master]# salt-key -a linux* #<==支持通配符
这里我们使用通配符
[root@linux-node1 master]# salt-key -a linux* The following keys are going to be accepted: Unaccepted Keys: linux-node2.example.com linux-node3.example.com linux-node4.example.com Proceed? [n/Y] y Key for minion linux-node2.example.com accepted. Key for minion linux-node3.example.com accepted. Key for minion linux-node4.example.com accepted. [root@linux-node1 master]# salt-key Accepted Keys: linux-node2.example.com linux-node3.example.com linux-node4.example.com Denied Keys: Unaccepted Keys: Rejected Keys:
salt-key命令参数介绍
-L 列出所有
-d 删除指定的支持通配符
-D 删除所有
-A 添加所有
-a 指定添加
同意后查看
[root@linux-node1 master]# tree . ├── master.pem ├── master.pub ├── minions │ ├── linux-node2.example.com │ ├── linux-node3.example.com │ └── linux-node4.example.com ├── minions_autosign ├── minions_denied ├── minions_pre └── minions_rejected 5 directories, 5 files
2、远程执行
远程执行第一条命令
[root@linux-node1 minions]# salt '*' test.ping linux-node2.example.com: True linux-node3.example.com: True linux-node4.example.com: True
2.1 分组远程执行minion端
#master端配置
[root@linux-node1 ~]# vim /etc/salt/master
706 ##### Node Groups #####
707 ##########################################
708 # Node groups allow for logical groupings of minion nodes. A group consists of a group
709 # name and a compound target.
710 #nodegroups:
711 # group1: 'L@foo.domain.com,bar.domain.com,baz.domain.com and bl*.domain.com'
712 # group2: 'G@os:Debian and foo.domain.com'
###在下面添加组
713 nodegroups:
714 group1: 'L@linux-node2.example.com,linux-node3.example.com' #将你希望的minion节点机器放入组里面,这里不能写ip只能写主机名
测试
[root@linux-node1 ~]# salt -N group1 test.ping linux-node2.example.com: True linux-node3.example.com: True #这里我只讲node2,node3加入了,测试成功