Die Frage ist einfach: Was ist der Unterschied zwischen ansible_user
(früherer ansible_ssh_user
) und remote_user
in Ansible, abgesehen davon, dass die erste gesetzt ist, wenn die Konfigurationsdatei und die zweite in Spielen/Rollen festgelegt ist? In welcher Beziehung stehen sie zu -u
/--user
Befehlszeilenoptionen?
Sie scheinen beide gleich zu sein. Schauen Sie hier:
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'),
Außerdem wird ansible_user
verwendet, wenn default SSH-Benutzer in einer ansprechbaren Hostdatei angegeben werden soll, wobei remote_user
im Kontext playbook verwendet wird.
Von https://github.com/ansible/ansible/blob/c600ab81ee/docsite/rst/intro_inventory.rst
ansible_user Der standardmäßige ssh-Benutzername, der verwendet werden soll.
und hier ist ein Beispiel für die Verwendung von ansible_user
in der ansible hosts
-Datei:
[targets]
localhost ansible_connection=local
other1.example.com ansible_connection=ssh ansible_user=mpdehaan
other2.example.com ansible_connection=ssh ansible_user=mdehaan
Ein Unterschied zwischen remote_user und ansible_user:
Wenn Sie eine Rolle mit verschiedenen Benutzern aus einem Playbook ausführen, z.
- name: Apply user configuration to user root
hosts: all
remote_user: root
- name: Apply user configuration to user murphy
hosts: all
remote_user: murphy
Dann können Sie eine bedingte Aufgabe für einen bestimmten Benutzer ausführen, indem Sie "when: ansible_user == .." verwenden, jedoch nicht mit "when: remote_user == ..". z.B.:
- name: Add user murphy to wheel group
user:
name: murphy
groups: wheel
append: yes
when: ansible_user == "root"