前言
利用ansible 自動化運維工具實作批量推送公鑰。
1、安裝Ansible服務端
- yum安裝
# yum install epel-release #確定有擴充源
# yum install ansible -y
- 檢視安裝版本
# ansible --version
ansible 2.9.6
配置檔案路徑config file = /etc/ansible/ansible.cfg
查詢子產品路徑configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.5 (default, Aug 7 2019, 00:51:29) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)]
二、playbook 批量推送
- 首先配置不檢測對方主機公鑰
# vim ansible.cfg
[defaults]
host_key_checking = False #取消注釋
- 執行指令生成公鑰
- 編寫playbook檔案
# cat send-pubkey.yml
- hosts: all
remote_user: root # 連接配接遠端主機的使用者,密碼就是檔案中設定好的 ansible_ssh_pass 的值
vars_files:
- foo.yml # 設定使用者名密碼 由于我是root使用者且密碼全為 1 ansible_ssh_pass: 1
tasks:
- name: Set authorized key taken from file
authorized_key: # 發送公鑰的子產品
user: root # 給這個使用者發送公鑰
state: present
key: "{{ lookup('file', '/root/.ssh/id_rsa.pub') }}" # 發送本地使用者的公鑰路徑
- 編輯foo.yml檔案 設定密碼
# vim foo.yml
ansible_ssh_pass: 1
#這裡我是密碼全為1 ,如果不是 請自行百度: 多主機且密碼不一樣時如何書寫yml檔案
- 編輯資産檔案hosts
# vim hosts
[webserver]
...
[dbserver]
...
- 執行
- 驗證
*#注意以上配置檔案放在同一個目錄下執行