web-dev-qa-db-ja.com

Ansible remote_userとansible_user

質問は簡単です:Ansibleのansible_user(以前のansible_ssh_user)とremote_userの違いは何ですか?それに加えて、設定ファイルと最初の設定ファイルがplaysで設定されている場合/役割?それらは-u/--userコマンドラインオプションとどのように関連していますか?

24
madhead

どちらも同じようです。ここを見てください:

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
29
slayedbylucifer

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"
1
dpfeuffer