查看 ansible 配置文件下的 hosts 的文件
- [root@ansible-server scripts]# cat /etc/ansible/hosts
- [test]
- 172.16.16.7
- 172.16.16.8
- [root@ansible-server scripts]#
1. 生成秘钥对
SSH-keygen -t rsa -f ~/.SSH/id_dsa -P ''" -q #生产密钥对, 免交互, 并安静输出
这个命令会产生一个公钥 (~/.SSH/id_dsa.pub) 和密钥(~/.SSH/id_dsa),
-t dsa: 表示使用密钥的加密类型, 可以为'rsa'和'dsa'
-P '': 表示不需要密码登录
-f ~/.SSH/id_dsa: 表示密钥存放的路径为 ${USER}/.SSH/id_dsa
SSH-copy-id -i ~/.SSH/id_dsa.pub username@ip,hostname #如果你是单台机器的话, 可以使用这种方式把公钥文件传递到对方主机
// 被控主机下的文件信息
2. 使用 ansible-playbook 来生成推送 ymal 文件
这里使用到了 authoried_keys 模块
- # Using alternate directory locations:
- - hosts: test // 可以是组也可以是全部
- user: root // 推送所使用的用户
- tasks:
- - name: SSH-copy
- authorized_key:
- user=root
- key="{{ lookup('file','/root/.ssh/id_dsa.pub') }}"
3. 测试
- [root@ansible-server scripts]# ansible all -m command -a date
- 172.16.16.8 | SUCCESS | rc=0>>
- Mon Mar 4 22:24:56 EST 2019
- 172.16.16.7 | SUCCESS | rc=0>>
- Mon Mar 4 22:24:56 EST 2019
- [root@ansible-server scripts]#
来源: http://www.bubuko.com/infodetail-2976382.html