Ansible получить имя пользователя из командной строки

В своих сборниках я часто упоминаю имя пользователя (исключительно его «ubuntu»).

Есть ли встроенный способ сказать «получить из значения, переданного в командной строке»?

Я знаю, что могу

ansible-playbook <task> -u <user> -K --extra-vars "user=<user>"

а затем я могу использовать {{user}} в playbook, но мне кажется странным определять пользователя дважды.


person rich tier    schedule 07.06.2014    source источник


Ответы (2)


Как заявил Вудхэм, доступная переменная, представляющая подключающегося пользователя,

{{ ansible_user }} (Ansible < 2.0 was {{ ansible_ssh_user }} )

Но вам не обязательно определять его в файле инвентаризации как таковом.

Вы можете определить это в:

1. Ваша игра, если вы используете ansible-playbook: См. Руководство по Playbooks

- name: Some play
  hosts: all
  remote_user: ubuntu

2. В файле инвентаризации: см. Руководство по инвентаризации

[all]
other1.example.com     ansible_user=ubuntu (Ansible < 2.0 was ansible_ssh_user)

3. Как вы сказали, в командной строке:

ansible-playbook -i inventory -u ubuntu playbook.yml

4. Файл конфигурации ansible в виде директивы remote_user. См. Руководство по файлу конфигурации < / а>

Файл конфигурации ansible можно поместить в текущую папку ansible.cfg, ваш домашний адрес .ansible.cfg или /etc/ansible/ansbile.cfg.

[defaults]
remote_user=ubuntu
person Ramon de la Fuente    schedule 09.06.2014

Я считаю, что стандартным способом сделать это было бы определение ansible_ssh_user в файле инвентаря, и затем вы могли ссылаться на него как на {{ansible_ssh_user}} в playbook.

person Woodham    schedule 07.06.2014