Saltstack入门到精通教程(九):key管理和id修改

新机器的添加,旧机器的迭代使用,坏机器的替换,这些都是生产环境的常规操作。而为了保证通信的保密性,master和minion会互相交换public key,机器的加减换都涉及到对应的key操作,不然可能会影响通信。这一节我们就一起来看看key相关的一些操作。

我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。

key管理

由于是双向加密,master会把自己的public key传递给minion,minion也会把自己的public key传递给master。

key存储的位置可以分别在master和minion的配置文件中的pki_dir配置项来指定,默认情况下master端存储在/etc/salt/pki/master目录,minion端存储在/etc/salt/pki/minion目录。

master端

master端的目录/etc/salt/pki/master结构如下

root@saltmaster:/etc/salt/pki/master# ll
total 36
drwx------ 7 root    root    4096 Feb  1 11:49 ./
drwx------ 3 root    root    4096 Feb  1 11:48 ../
-r-------- 1 vagrant vagrant 1700 Feb  1 11:46 master.pem
-rw-rw-r-- 1 vagrant vagrant  458 Feb  1 11:46 master.pub
drwx------ 2 root    root    4096 Feb  1 11:48 minions/
drwxr-xr-x 2 root    root    4096 Feb  1 11:49 minions_autosign/
drwxr-xr-x 2 root    root    4096 Feb  1 11:49 minions_denied/
drwxr-xr-x 2 root    root    4096 Feb  1 11:49 minions_pre/
drwxr-xr-x 2 root    root    4096 Feb  1 11:49 minions_rejected/

其中主要是下面两个要注意

  • master.pub - master的public key,会传递到minion端
  • minions - 已经接受的minion的key存放在这

进入minions目录,发现以minion的id为名字每个minion对应一个文件,这些文件就是minion的public key

root@saltmaster:/etc/salt/pki/master/minions# ll
total 16
drwx------ 2 root root 4096 Feb  1 11:48 ./
drwx------ 7 root root 4096 Feb  1 11:49 ../
-rw-rw-r-- 1 root root  458 Feb  1 11:46 minion1
-rw-rw-r-- 1 root root  458 Feb  1 11:46 minion2

这里分别把我这个演示环境的master的public key和minion1的public key的md5显示出来用来在下面minion1端的key进行对比验证

root@saltmaster:/etc/salt/pki/master# md5sum master.pub
12ce6a661a39b3f6d27f92112fc300db  master.pub
root@saltmaster:/etc/salt/pki/master/minions# md5sum minion1
b2edc7a44e80b677edb8455dab44f3f2  minion1

minion端

minion端的目录/etc/salt/pki/minion结构如下

root@minion1:/etc/salt/pki/minion# ll
total 20
drwx------ 2 root    root    4096 Feb  1 11:55 ./
drwx------ 3 root    root    4096 Feb  1 11:54 ../
-rw-r--r-- 1 root    root     458 Feb  1 11:55 minion_master.pub
-r-------- 1 vagrant vagrant 1704 Feb  1 11:51 minion.pem
-rw-rw-r-- 1 vagrant vagrant  458 Feb  1 11:51 minion.pub

其中

  • minion_master.pub - master端传递过来的public key
  • minion.pub - minion的public key

这里也分别把这两个文件的md5显示出来和上面master端的对比

root@minion1:/etc/salt/pki/minion# md5sum minion_master.pub
12ce6a661a39b3f6d27f92112fc300db  minion_master.pub
root@minion1:/etc/salt/pki/minion# md5sum minion.pub
b2edc7a44e80b677edb8455dab44f3f2  minion.pub

发现和上面master端的md5可以对的上。

如果涉及到修改minion id之类的操作后,出现执行命令minion端没有响应的现象,但是key已经被成功接受,可以通过检查key的md5来验证。

salt-key常用指令

和key相关的操作都由salt-key命令来实现

salt-key -h 查看帮助文档
salt-key -L 列出所有的key
salt-key -A 接受所有的key
salt-key -a id 接受单个key
salt-key -d id 删除单个key
salt-key -D 删除所有的key

每个新的salt-minion服务起来的时候都会自动去搜寻master,在master端会看到一个新的未接受的key,例如我添加一个新的minion2以后

root@saltmaster:/etc/salt/pki/master# salt-key -L
Accepted Keys:
minion1
Denied Keys:
Unaccepted Keys:
minion2
Rejected Keys:

接受新的key

root@saltmaster:/etc/salt/pki/master# salt-key -A
The following keys are going to be accepted:
Unaccepted Keys:
minion2
Proceed? [n/Y] y
Key for minion minion2 accepted.
root@saltmaster:/etc/salt/pki/master# salt-key -L
Accepted Keys:
minion1
minion2
Denied Keys:
Unaccepted Keys:
Rejected Keys:

如果一不小心删除了某个minion的key,可以通过重启该minion的salt-minion服务去重新添加key

修改minion id

在部署初期的时候,设置合理辨识度高的机器hostname就是非常重要的事情。minion会自动采用机器的hostname去做为默认id,这样就省略了后续修改id的必要。

但是,有可能一台机器被复用做不同功能的服务,那么这时候修改该机器的id就必不可少。

我这边以修改minion1的id为例进行操作

1. 停掉minion端salt-minion服务

root@minion1:/home/vagrant# systemctl stop salt-minion

2. master端删除minion的key

root@saltmaster:/home/vagrant# salt-key -d minion1
The following keys are going to be deleted:
Accepted Keys:
minion1
Proceed? [N/y] y
Key for minion minion1 deleted.

3. 修改minion的id

root@minion1:/etc/salt# cat minion | grep ^id
id: minion1_new

4. 启动minion端salt-minion服务

root@minion1:/etc/salt# systemctl start salt-minion

5. master端重新接受key

root@saltmaster:/home/vagrant# salt-key -L
Accepted Keys:
minion2
Denied Keys:
Unaccepted Keys:
minion1_new
Rejected Keys:
root@saltmaster:/home/vagrant# salt-key -A
The following keys are going to be accepted:
Unaccepted Keys:
minion1_new
Proceed? [n/Y] y
Key for minion minion1_new accepted.

需要说明的是这里修改前后minion的public key的md5是一致的。

机器替换

如果一台机器坏掉了,要替换新的机器,步骤和上面修改id的一致,只不过修改前后minion的public key的md5会变化,需要额外注意

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值