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加入了,测试成功

  

原文地址:https://www.cnblogs.com/junxun/p/7295441.html