La question est simple: quelle est la différence entre ansible_user
(ancien ansible_ssh_user
) et remote_user
dans Ansible, à part le fait que le premier est défini si le fichier de configuration et le dernier est défini dans les jeux/rôles? Quel est leur lien avec les options de ligne de commande -u
/--user
?
Ils semblent tous les deux être les mêmes. Jetez un coup d'oeil ici:
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'),
De plus, ansible_user
est utilisé lorsque nous voulons spécifier utilisateur SSH par défaut dans le fichier hôtesible où remote_user
est utilisé dans le contexte playbook.
De https://github.com/ansible/ansible/blob/c600ab81ee/docsite/rst/intro_inventory.rst
ansible_user Le nom d'utilisateur ssh par défaut à utiliser.
et voici un exemple d'utilisation de ansible_user
dans le fichier 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
Une différence entre remote_user et ansible_user:
Lorsque vous exécutez un rôle avec différents utilisateurs d’un livre de lecture, par exemple:
- name: Apply user configuration to user root
hosts: all
remote_user: root
- name: Apply user configuration to user murphy
hosts: all
remote_user: murphy
Vous pouvez ensuite exécuter une tâche conditionnelle pour un utilisateur distinct en utilisant "when: ansible_user == .." mais pas avec "when: remote_user == ..". par exemple.:
- name: Add user murphy to wheel group
user:
name: murphy
groups: wheel
append: yes
when: ansible_user == "root"