2017-11-12 4 views
0

私は簡単なタスクをプログラミングしてユーザーを作成し、既存の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キーファイル名を指定します。これが の相対ファイル名である場合、それはユーザの家庭 ディレクトリからの相対パスになります。

このプロセスをユーザーモジュール内で管理することは可能ですか?

+0

あなたはいくつかのコードを書いていて、StackOverflowに投稿する前にそれを試しても気にしませんでしたか?実行時に失敗するためです。 '/ tmp/test_user_id_rsa.pub'は存在しません(あなたのローカルコンピュータに混乱がない限り)。 – techraf

+0

あなたはエラーメッセージのために私はテスト中にそれを持っていましたが、私はその投稿に言及するのを忘れていました。私はそれを明確にするために編集するつもりです、そして、私の将来の投稿にもっと注意するでしょう。さらに、コピーが実行された後にファイルが存在するため、なぜコードを取得するのかがあまりにもわかりません。 –

答えて

1

あなたの問題の答えは次のとおりです。必要とされているすべてです

- name: SYSTEM - Create test user 
    tags: system-user 
    user: 
    name: "{{ test_user }}" 
    state: present 
    createhome: yes 

- name: SYSTEM - Set authorized key for test_user took from file 
    tags: system-user 
    authorized_key: 
    user: "{{ test_user }}" 
    state: present 
    key: "{{ test_user_pubkey }}" 


ドキュメントのあなたの読書について、ssh_key_fileはあなたが望むものではありませんSSH鍵ペアを生成することに関する。

+0

それは魅力のように動作します!助けてくれてありがとう。 –

関連する問題