私のプレイブックでは、ユーザー名(排他的に「ubuntu」のみ)を参照しています。
「コマンドラインで渡された値から取得する」と言う組み込みの方法はありますか?
私はできることを知っています
ansible-playbook <task> -u <user> -K --extra-vars "user=<user>"
そして、私は{{user}}
はプレイブックで使用していますが、ユーザーを2回定義するのは奇妙に感じられます。
Woodhamが述べたように、接続ユーザーを表すansible変数は
{{ ansible_user }} (Ansible < 2.0 was {{ ansible_ssh_user }} )
ただし、インベントリファイル自体で定義する必要はありません。
次の場所で定義できます。
1。 ansible-playbookを使用している場合のプレイ:Playbooksのマニュアルを参照
- name: Some play
hosts: all
remote_user: ubuntu
2。インベントリファイル:インベントリのマニュアルを参照
[all]
other1.example.com ansible_user=ubuntu (Ansible < 2.0 was ansible_ssh_user)
3。あなたが述べたように、コマンドラインで:
ansible-playbook -i inventory -u ubuntu playbook.yml
4。 remote_user
ディレクティブとしてのansible設定ファイル。設定ファイルのマニュアルを参照
Ansible設定ファイルは、現在のフォルダーansible.cfg
、ホームディレクトリ.ansible.cfg
または/etc/ansible/ansbile.cfg
に配置できます。
[defaults]
remote_user=ubuntu
これを行うための標準的な方法は、インベントリファイルでansible_ssh_userを定義することであり、プレイブックでそれを{{ansible_ssh_user}}として参照できます。