Ansible入門篇(二):SSH配置免密互信
Ansible是用來處理大批量重複性操作的工具,只需要在一臺機器上就可以遠端控制所有機器,但前提是必須保證每臺機器之間SSH可以相互免密登入。關於Ansible的安裝和環境準備請參考Ansible環境的準備。
注: 有關Ansible的所有操作只需在第一臺機器上修改和執行,其它機器只需知道IP地址即可。
免密安裝機器
172.18.18.120
172.18.18.121
172.18.18.122
配置所有免密機器使用者名稱及密碼
編輯/etc/ansible/hosts 檔案增加配置如下:
[ssh]
172.18.18.120 ansible_ssh_user=root ansible_ssh_pass=123456
172.18.18.121 ansible_ssh_user=root ansible_ssh_pass=123456
172.18.18.122 ansible_ssh_user=root ansible_ssh_pass=123456
編寫yml執行檔案
編輯/opt/ansible/sshKey.yml檔案如下:
- hosts: ssh
shell: ssh-keygen -t rsa -b 2048 -N '' -f /root/.ssh/id_rsa - name: delete /tmp/ssh/ dir file: path=/tmp/ssh/ state=absent run_once: true - name: fetch copy #從各宿主機將公鑰拷貝到本機 fetch: src=/root/.ssh/id_rsa.pub dest=/tmp/ssh/ - name: append file authorized_keys.log #將各個公鑰合併成一個檔案 shell: find /tmp/ssh/* -type f -exec sh -c 'cat {}>>/tmp/ssh/authorized_keys.log' \; run_once: true - name: copy authorized_keys #將合成的公鑰進行分發 copy: src=/tmp/ssh/authorized_keys.log dest=/root/.ssh/authorized_keys mode=0600 tags: - install ssh |
執行免密安裝
ansible-playbook /opt/ansible/sshKey.yml