2016-06-30 12 views
1

他のすべてのノードのすべてのノードにパスワードなしでアクセスする。ノード間のパスワードなしアクセス

For each node: 
    Get public ssh key 
    Add that key to authorized_keys files of all other nodes 

以下は私が試したものですが、期待どおりに機能していません。

- name: Get ssh public key from all the nodes for some_user user 
    shell: cat ~/.ssh/id_rsa.pub 
    register: ssh_pub_key 
    become: yes 
    become_user: some_user 
    changed_when: "ssh_pub_key.rc != 0" 
    always_run: yes 

- set_fact: 
    auth_keys: "{{ ssh_pub_key.stdout | join() }}" 

- debug: var=auth_keys 

- name: Add public key to all other nodes for some_user user 
    authorized_key: 
    user: some_user 
    key: "{{ ssh_pub_key.stdout }}" 
+0

公開キーと各ノードの 'set_fact'を収集してから、[magic variables]を使ってテンプレートを適用してみてください(http://docs.ansible.com/ansible/playbooks_variables.html#magic-variables-and-他のホストへの情報アクセス方法など)が含まれています。 –

答えて

1

すべてのノードからすべてのsshキーを収集し、すべてのノードに配布する必要はありませんが、これは悪い習慣です。

代わりにsshエージェント転送を使用してください。

鍵は1つの鍵(中央サーバに作成するか既存の鍵を使用する)だけで、ノードにパブを(パッシブで)プッシュするだけです。

関連する問題