一、概述
1、概述
ansible本身就是自動化運維工具,如果有100台業務主機需要通過ansible管理,那么難道一台一台添加ssh key嗎?
當然不是
2、配置
vim /etc/ansible/hosts #添加需要管理的業務主機IP
[tomcat]
192.168.6.3
192.168.6.4
192.168.6.7
192.168.6.8
192.168.6.9
192.168.6.10
192.168.6.11
192.168.6.12
192.168.6.16
192.168.6.17
192.168.6.25
192.168.6.26
192.168.6.27
192.168.6.28
ansible all -m authorized_key -a "user=root key='{{ lookup('file','/root/.ssh/id_rsa.pub')}}' path='/root/.ssh/authorized_keys' manage_dir=no" --ask-pass -c paramiko
#因為密碼都一樣,所以只需要輸入一次密碼即可,如果密碼不同 需要自定義
#說明:
user=root #將秘鑰推送到遠程主機的哪個用戶下
key='{{ lookup('file','/root/.ssh/id_rsa.pub')}}' #指定要推送的秘鑰文件所在的路徑
path='/root/.ssh/authorized_keys' #將秘鑰推送到遠程主機的哪個目錄下並重命名
manage_dir=no #指定模塊是否應該管理authorized_keys文件所在的目錄,如果設置為yes,模塊會創建目錄,以及設置一個已存在目錄的擁有者和權限。如果通過 path 選項,重新指定了一個 authorized key 文件所在目錄,那么應該將該選項設置為 no
exclusive [default: no]: #是否移除 authorized_keys 文件中其它非指定 key
state (Choices: present, absent) [Default: present]: #present 添加指定 key 到 authorized_keys 文件中;absent 從 authorized_keys 文件中移除指定 key
