it-swarm.com.ru

Ansible remote_user vs ansible_user

Вопрос прост: в чем разница между ansible_user (прежний ansible_ssh_user) и remote_user в Ansible, кроме того, что первый задается, если файл конфигурации, а второй задается в пьесах/ролях? Как они связаны с параметрами командной строки -u/--user?

19
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 используется, когда мы хотим указать пользователя SSH по умолчанию в файле ansible hosts, где в качестве _remote_user используется в контексте playbook.

От 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
24
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 == ..», но не «когда: remote_user == ..». например.:

- name: Add user murphy to wheel group
  user:
    name: murphy
    groups: wheel
    append: yes
  when: ansible_user == "root"
1
dpfeuffer