【转载】使用ansible 批量分发ssh密钥
https://blog.csdn.net/fanren224/article/details/79693810
方法一:使用playbook
# vim /etc/ansible/hosts.bak
[xyhservers]
10.50.70.353
10.50.70.363
10.50.70.373
[xyhservers:vars]
ansible_ssh_user=root
ansible_ssh_pass="123456"
# vim xyhost.yml
- hosts: xyhservers
remote_user: root
tasks:
- name: ssh-copy
authorized_key: user=root key="{{ lookup('file','/root/.ssh/id_rsa.pub') }}"
tags:
- sshkey
方法二:命令执行
1.首先在notepad++上将ip地址及密码整理好
格式:
【xyhservers】 组名
10.0.77.0 ansible_ssh_pass="abcl" ip空格10.0.77.0 ansible_ssh_pass="密码"
10.0.77.0 ansible_ssh_pass="abcl"
10.0.77.0 ansible_ssh_pass="abcl"
10.0.77.0 ansible_ssh_pass="abcl"
保存文档
2.将保存的文档上传到ansible的路径下即可,也可以直接保存到/etc/ansible/下
# ansible xyhservers -i /tmp/new1111.txt -m authorized_key -a "user=root key='{{ lookup('file', '/root/.ssh/id_rsa.pub') }}'" -k
如上图:1.为组名
2.件上传的路径,注意:路径最好用tab键tab出来,要不然会出错(正常是直接放在/ansible/hosts下即可)
3.如果在文件里输入密码了,即可不写-k,反之-k ,会提示 SSH password:需手动输入密码
3.执行成功
10.10.77.0 UCCESS => {
"changed": false,
"comment": null,
"exclusive": false,
"key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDa+aMLyx35UMEh9OvzrGDjDzf+rZniLPNty+Qz6ADYsXZM5p/tJGjsN0zPKR41XN2itJdG2A7X8RG8kKNui6jnu9gplDZo5G8bcAR846hptUy4op1oMuEfKxrIS+ZgV4OojiCXs3ha9DTDJotkgEGAepIJLZSRdEtcGYiGt+vBGfpGp8iTE0c4R0i67VMhD8UUs2uHIvJkoXvJHgMtyLfzDo9mbbbMS50GkdpBPK7CJbbnN7lLhDQXrfS+nC9H1Oox/UX7jcu2WF9hGnt/qIAvbDvtNffuu2bg6jIja0zqdNdto/SWkJtxv1UpvEPQdFceUGtJio6sA97qIcWreQMZ root@docke3",
"key_options": null,
"keyfile": "/root/.ssh/authorized_keys",
"manage_dir": true,
"path": null,
"state": "present",
"unique": false,
"user": "root",
"validate_certs": true
}
执行成功。