ansible は、SSH キーを複数のユーザーのホームディレクトリにコピーします。

ansible は、SSH キーを複数のユーザーのホームディレクトリにコピーします。

私のansible_hostにSSHキーペアがあり、それをターゲットホストの複数のユーザーの認証済みキーにコピーしたいと思います。

with-itemを設定しようとしていますが、.pubキーが無効なキーではないと文句を言うので、そうしようとしています。

- authorized_key:
    user: "{{ item.user }}"
    key: "{{ item.key }}"
  with_items:
        - { user: "user1", key: "~/.ssh/id_rsa.pub" }
        - { user: "user2", key: "~/.ssh/id_rsa.pub" }

間違い:"msg": "invalid key specified: ~/.ssh/id_rsa.pub"}

答え1

これは、キーをキーフィールドに文字列として挿入するためです。

使用する必要がありますファイル検索プラグイン

あなたの場合:

- authorized_key:
    user: "{{ item.user }}"
    key: "{{ item.key }}"
  with_items:
        - { user: "user1", key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}" }
        - { user: "user2", key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}" }

答え2

複数のユーザーにキーをコピーする必要がある場合は、次のことができます。

- authorized_key:
    user: "{{ item.user }}"
    key: "{{ lookup('file', lookup('env','HOME') + '/.ssh/id_rsa.pub') }}"
  with_items:
        - { user: "user1" }
        - { user: "user2" }

関連情報