Ansibleのすべてのホストにデフォルトのsshユーザーを設定するにはどうすればよいですか?


11

Ansibleバージョン2.1

インベントリファイルがあります hosts

[nodes]
host1
host2
...

そして簡単なプレイブック site.yml

---
- hosts: all
  tasks:
    - include: tasks/main.yml

プレイを始めるだけなら

ansible-playbook -i hosts site.yml -vvvv

すべてのホストでこのエラーが発生します。

ESTABLISH SSH CONNECTION FOR USER: None
fatal: [host1]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh.", "unreachable": true}
...

ただし、Ansible Inventoryドキュメントを読んでansible_userhostsファイルに追加しました。

[nodes]
host1    ansible_user=root
host2    ansible_user=root
...

これはSSH CONNECTION UNREACHABLEエラーを解決します。ただし、ansible_user=rootすべてのホストの隣に追加する必要がありますか?またはこれを行う簡単な方法はありますか?

回答:


11

example / default ansible.cfgファイルを確認すると、次の場所にあります[defaults]

# default user to use for playbooks if user is not specified
# (/usr/bin/ansible will use current user as default)
#remote_user = root

コメントを外しremote_userて、ユーザーをログインしたいユーザーに設定します。

Ansibleはどこで入手できansible.cfgますか?同じファイルが説明します:

# nearly all parameters can be overridden in ansible-playbook 
# or with command line flags. ansible will read ANSIBLE_CONFIG,
# ansible.cfg in the current working directory, .ansible.cfg in
# the home directory or /etc/ansible/ansible.cfg, whichever it
# finds first

@Deltikに感謝します。これにも回答できますか?
ハワードリー

@HowardLee:他の質問は主に意見に基づくものであり、スーパーユーザーには適していません。
Deltik、2016年

4

別の方法は、を使用--userしてリモートsshユーザーを定義することです。入力ansible-playbook --helpして詳細をご覧ください。これは私の典型的なコマンドです:

ansible-playbook -i hosts site.yml --user <user> --ask-pass -vvvv

--ask-pass のパスワードを入力するように求められます --user


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.