私は簡単なタスクをプログラミングしてユーザーを作成し、既存のRSA公開鍵を追加することができます。これは私が書いたコードです:Anabilitiesとユーザーモジュールを使用してauthorized_keysファイルに既存の公開鍵を追加する方法はありますか?
- name: SYSTEM - Create test user
tags: system-user
user:
name: "{{ test_user }}"
state: present
createhome: yes
- name: SYSTEM - Add existing pub key for test user
tags: system-user
copy:
content: "{{ test_user_pubkey }}"
dest: "/tmp/test_user_id_rsa.pub"
force: no
owner: "{{ test_user }}"
group: "{{ test_user }}"
mode: 0600
- name: SYSTEM - Set authorized key for test_user took from file
tags: system-user
authorized_key:
user: "{{ test_user }}"
state: present
key: "{{ lookup('file', '/tmp/test_user_id_rsa.pub') }}"
私が書いたコードはエレガントではないと私は最良の選択肢は、作成するために、ユーザー作成のブロックと、既存のRSA公開鍵を追加することになると思いといっぱいauthorized_keys
ファイル。
authorized_keys
のファイルへの既存のパブのキーの値をエコーする可能性が含まれていません
Ansible user moduleが、ssh_key_fileがメソッドを読んだ
(最終目的は、リモートユーザとプライベートを使用してSSHで接続することができることですキー)。
ssh_key_file =オプションで、SSHキーファイル名を指定します。これが の相対ファイル名である場合、それはユーザの家庭 ディレクトリからの相対パスになります。
このプロセスをユーザーモジュール内で管理することは可能ですか?
あなたはいくつかのコードを書いていて、StackOverflowに投稿する前にそれを試しても気にしませんでしたか?実行時に失敗するためです。 '/ tmp/test_user_id_rsa.pub'は存在しません(あなたのローカルコンピュータに混乱がない限り)。 – techraf
あなたはエラーメッセージのために私はテスト中にそれを持っていましたが、私はその投稿に言及するのを忘れていました。私はそれを明確にするために編集するつもりです、そして、私の将来の投稿にもっと注意するでしょう。さらに、コピーが実行された後にファイルが存在するため、なぜコードを取得するのかがあまりにもわかりません。 –