ansible批量推送ssh key的方法,这里记录一下。
假设有以下主机列表
$ cat /opt/list [new] 172.20.121.109 172.20.114.69 172.20.114.57 172.20.114.58 172.20.114.59
1,使用ansible命令来推送Key
命令比较简单,一行即可搞定
$ ansible -i /opt/list new -m authorized_key -a "user=admin key='{{ lookup('file','/home/admin/.ssh/id_rsa.pub') }}'" -k
这里解释一下命令:
-i表示指定IP列表文件位置,后面的new表示文件里的分组
-k表示询问目标IP的密码
2,使用playbook来推送key
$ vim key.ymal - hosts: new user: admin tasks: - name: Set authorized key took from file authorized_key: user=admin state=present key="{{ lookup('file', '/home/admin/.ssh/id_rsa.pub') }}"
$ ansible-playbook -i /opt/list key.ymal -k