首页 > 其他 > 详细

使用ansible批量更新key

时间:2019-07-10 21:57:39      阅读:139      评论:0      收藏:0      [点我收藏+]
背景:按照公司要求每半年更新一次所有物理服务器的ssh登录key。

旧key:/root/.ssh/antiykey.pub
新key:/root/.ssh/antiykey190708.pub

1,确保ansible能管理所有机器
技术分享图片

确保可以ping通所有要操作的机器。

添加新key:

[root@xiaoxuan ansible]# cat addkey.xml 
---
- hosts: antiy-all
  remote_user: root
  tasks:
  - name: add key
    authorized_key:
      user: root
      state: present
      key: "{{ lookup(‘file‘, ‘/root/.ssh/antiykey190708.pub‘) }}"
[root@xiaoxuan ansible]#

hosts: antiy-all ###这个是我的ansible分组,这个组包含所有要更换的机器
authorized_key: ###使用ansible的这个模块
state: present ###添加key
key: "{{ lookup(‘file‘, ‘/root/.ssh/antiykey190708.pub‘) }}" ###新key的路径

[root@xiaoxuan ansible]# ansible-playbook addkey.xml
技术分享图片
技术分享图片

吗买劈的,失败了好多,等会检查下,向是网络问题,都是些需要用访问的ip。
这个时候会生成一个文件,里面记录了失败的ip

[root@xiaoxuan ansible]# ll addkey.retry 
-rw-r--r-- 1 root root 1034 Jul 10 11:08 addkey.retry
[root@xiaoxuan ansible]# 

查询发现是文件属性问题
ansible key-fail -m shell -a "lsattr /root/.ssh/authorized_keys"
技术分享图片

接着先删除这个属性
[root@xiaoxuan ansible]# ansible key-fail -m shell -a "chattr -i /root/.ssh/authorized_keys"
技术分享图片

再次查看已经删除这个属性
技术分享图片

接着继续执行添加key
[root@xiaoxuan ansible]# ansible-playbook addkey.xml

搞定
技术分享图片

到这里添加就完成了。
注意:在操作删除旧key之前一定要确保你的ansible可以使用新key管理所有机器,切记切记,免得给自己找麻烦。

删除旧key:

[root@xiaoxuan ansible]# cat delkey.xml 
---
- hosts: antiy-test
  remote_user: root
  tasks:
  - name: add key
    authorized_key:
      user: root
      state: absent
      key: "{{ lookup(‘file‘, ‘/root/.ssh/antiykey.pub‘) }}"
[root@xiaoxuan ansible]# 

执行
ansible-playbook addkey.xml

先这样吧。

使用ansible批量更新key

原文:https://blog.51cto.com/7585527/2418828

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!