2017-06-22 11 views
0

私のSSH公開鍵をAnatileを使って多くのホストにコピーする方法を知りました。できるだけ一度だけパスワードを尋ねるパブリックSSHキーを展開できますか?

初の試み:

ansible all -i inventory -m local_action -a "ssh-copy-id {{ inventory_hostname }}" --ask-pass 

しかし、私はエラーThe module local_action was not found in configured module pathsを持っています。脚本を使用して

第二の試み:多くのホストへのSSH公開鍵を展開しながら、一度だけパスワードを記入する方法

ansible all -i inventory --list-hosts | while read h ; do ssh-copy-id "$h" ; done 

- hosts: all 
    become: no 
    tasks: 
    - local_action: command ssh-copy-id {{ inventory_hostname }} 

最後に、私は、各ホストを管理するためのパスワードを入力しました?



編集:私はKonstantin Suvorov's answerから次の脚本を使用して複数のリモートホストに私のSSH公開鍵をコピーすることに成功した  。

- hosts: all 
    tasks: 
    - authorized_key: 
     key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}" 

フィールドuserdocumentationに従って必須でなければなりませんが、せずに動作するようです。あなたがauthorized_keyモジュールを使用していないのはなぜ

ansible-playbook -i inventory authorized_key.yml -u "$USER" -k 

答えて

3

:このコマンドラインで使用した場合そのため上記の一般的な脚本は、任意のユーザのために使用することができますか?

- hosts: all 
    tasks: 
    - authorized_key: 
     user: remote_user_name 
     state: present 
     key: "{{ lookup('file', '/local/path/.ssh/id_rsa.pub') }}" 

-u remote_user_name -k

で脚本を実行します
関連する問題