ansible SSH公開鍵の一括配置を実現

2637 ワード

学習覚書、コードブロック付き、今後の作業に便利ssh公開鍵の一括配置
ansible’s module: authorized_key ansibleインストール方式無視authorized_を直接使用keysモジュールはssh-copy-id xx->yes->パスワードの入力の煩雑な流れを減らすことができ、みんなの仕事量を大幅に簡素化します.
AD-Hocの配置はまず管理クラスタに対して統一アカウントを創立して、本文はrootを例にして、企業の安全に基づいて、他のsudo可能なユーザーを設定することができて、大同小異:username:root passwd:root port:22次の例は1本のデータだけを例にして、実際の中で下のデータは百本以上で、早めにフォーマットに従って配置を書く必要があります:
#cat >> /etc/ansible/hosts [test]
>192.168.240.20 ansible_ssh_user="root" ansible_ssh_pass="root" ansible_ssh_port=22
>EOF

ansibleのhost_を閉じるkey_checking:
#sed -ri '/^#host_key/c\host_key_checking=false/' /etc/ansible/ansible.cfg

管理対象機器がsshプロトコルで接続できるかどうかをテストします.
#ansible test -m ping
192.168.240.20 | SUCCESS => {
    "changed": false, 
    "ping": "pong"
}

問題がないことがわかりますauthorized_keyモジュールは一括プッシュタスクを完了します.
#ansible test -m authorized_key -a "user=root key='{{ lookup('file','/root/.ssh/id_rsa.pub') }}'"
192.168.240.20 | CHANGED => {
    "changed": true, 
    "comment": null, 
    "exclusive": false, 
    "follow": false, 
    "key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQA…………
    "key_options": null, 
    "keyfile": "/root/.ssh/authorized_keys", 
    "manage_dir": true, 
    "path": null, 
    "state": "present", 
    "unique": false, 
    "user": "root", 
    "validate_certs": true
}

テスト結果:ssh 192.168.240.220はパスワードを入力する必要がないことを発見しました.
PlayBookはansible test-m pingまで配備され、現在のディレクトリの下でssh_を編集します.push.yamlファイル:
#         ,     
#script_name:ssh_push.yaml
 - hosts: test
   user: root
   tasks:
    - name: ssh-copy
      authorized_key:
        user: root
        key: "{{ lookup('file','/root/.ssh/id_rsa.pub') }}"
...

実行結果は次のとおりです.
# ansible-playbook ssh_push.yaml 

PLAY [test] ********************************************************************************

TASK [Gathering Facts] *********************************************************************
ok: [192.168.240.20]

TASK [ssh-copy] ****************************************************************************
changed: [192.168.240.20]

PLAY RECAP *********************************************************************************
192.168.240.20             : ok=2    changed=1    unreachable=0    failed=0   


テスト結果:ssh 192.168.240.220はパスワードを入力する必要がないことを発見しました.