使用ansible批量更新key
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用ansible批量更新key相关的知识,希望对你有一定的参考价值。
背景:按照公司要求每半年更新一次所有物理服务器的ssh登录key。旧key:/root/.ssh/antiykey.pub
新key:/root/.ssh/antiykey190708.pub
1,确保ansible能管理所有机器
确保可以ping通所有要操作的机器。
添加新key:
[[email protected] 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‘) "
[[email protected] ansible]#
hosts: antiy-all ###这个是我的ansible分组,这个组包含所有要更换的机器
authorized_key: ###使用ansible的这个模块
state: present ###添加key
key: " lookup(‘file‘, ‘/root/.ssh/antiykey190708.pub‘) " ###新key的路径
[[email protected] ansible]# ansible-playbook addkey.xml
吗买劈的,失败了好多,等会检查下,向是网络问题,都是些需要用访问的ip。
这个时候会生成一个文件,里面记录了失败的ip
[[email protected] ansible]# ll addkey.retry
-rw-r--r-- 1 root root 1034 Jul 10 11:08 addkey.retry
[[email protected] ansible]#
查询发现是文件属性问题ansible key-fail -m shell -a "lsattr /root/.ssh/authorized_keys"
接着先删除这个属性[[email protected] ansible]# ansible key-fail -m shell -a "chattr -i /root/.ssh/authorized_keys"
再次查看已经删除这个属性
接着继续执行添加key[[email protected] ansible]# ansible-playbook addkey.xml
搞定
到这里添加就完成了。
注意:在操作删除旧key之前一定要确保你的ansible可以使用新key管理所有机器,切记切记,免得给自己找麻烦。
删除旧key:
[[email protected] 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‘) "
[[email protected] ansible]#
执行ansible-playbook addkey.xml
先这样吧。
以上是关于使用ansible批量更新key的主要内容,如果未能解决你的问题,请参考以下文章
JDBC PreparedStatement、批量更新和生成的Keys
关于使用MySQL语法ON DUPLICATE KEY UPDATE单个增加更新及批量增加更新的sql
on duplicate key update 的用法说明(解决批量操作数据,有就更新,没有就新增)mybatis批量操作数据更新和添加