質問は簡単です:Ansibleのansible_user
(以前のansible_ssh_user
)とremote_user
の違いは何ですか?それに加えて、設定ファイルと最初の設定ファイルがplaysで設定されている場合/役割?それらは-u
/--user
コマンドラインオプションとどのように関連していますか?
どちらも同じようです。ここを見てください:
https://github.com/ansible/ansible/blob/c600ab81ee/lib/ansible/playbook/play_context.py#L46-L55
# the magic variable mapping dictionary below is used to translate
# Host/inventory variables to fields in the PlayContext
# object. The dictionary values are tuples, to account for aliases
# in variable names.
MAGIC_VARIABLE_MAPPING = dict(
connection = ('ansible_connection',),
remote_addr = ('ansible_ssh_Host', 'ansible_Host'),
remote_user = ('ansible_ssh_user', 'ansible_user'),
port = ('ansible_ssh_port', 'ansible_port'),
また、ansible_user
は、playbookコンテキストでremote_user
が使用されるansibleホストファイルでデフォルトSSHユーザーを指定する場合に使用されます。
から https://github.com/ansible/ansible/blob/c600ab81ee/docsite/rst/intro_inventory.rst
ansible_user使用するデフォルトのsshユーザー名。
そして、これはansible_user
ファイルでansible hosts
を使用する例です:
[targets]
localhost ansible_connection=local
other1.example.com ansible_connection=ssh ansible_user=mpdehaan
other2.example.com ansible_connection=ssh ansible_user=mdehaan
Remote_userとansible_userの違い:
プレイブックのさまざまなユーザーでロールを実行する場合:
- name: Apply user configuration to user root
hosts: all
remote_user: root
- name: Apply user configuration to user murphy
hosts: all
remote_user: murphy
次に、「when:ansible_user == ..」を使用して、「when:remote_user == ..」ではなく、個別のユーザーに対して条件付きタスクを実行できます。例えば。:
- name: Add user murphy to wheel group
user:
name: murphy
groups: wheel
append: yes
when: ansible_user == "root"