标签:ant book mic 查看 elk play 文件属性 res add
背景:按照公司要求每半年更新一次所有物理服务器的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
先这样吧。
标签:ant book mic 查看 elk play 文件属性 res add
原文地址:https://blog.51cto.com/7585527/2418828