Подтвердить что ты не робот

В незадаче, как мне получить переменную с именем пользователя, который работает как возможно?

Я создаю сценарий процесса развертывания, в котором используется имя пользователя, запускающего ansible script (например, tlau), и создается каталог развертывания в удаленной системе на основе этого имени пользователя и текущей даты/времени (например, tlau- развернуть-2014-10-15-16:. 52)

Вы считаете, что это доступно в доступных фактах (например, LOGNAME или SUDO_USER), но все они настроены как "root", или идентификатор развертывания, который используется для ssh в удаленной системе. Ни один из них не содержит локального пользователя, тот, кто в настоящий момент запускает незатронутый процесс.

Как я могу script получить имя пользователя, выполняющего незатронутый процесс, и использовать его в своей книге?

4b9b3361

Ответ 1

Если вы имеете в виду имя пользователя в главной системе, я предполагаю, что вы можете просто запустить локальное действие:

- name: get the username running the deploy
  become: false
  local_action: command whoami
  register: username_on_the_host

- debug: var=username_on_the_host

В этом примере вывод команды whoami регистрируется в переменной с именем "username_on_the_host", а имя пользователя будет содержаться в username_on_the_host.stdout.

(задача отладки здесь не требуется, она просто демонстрирует содержимое переменной)

Ответ 2

Если вы gather_facts, которые по умолчанию включены для воспроизведения, существует встроенная переменная, которая задана как ansible_user_id которая предоставляет имя пользователя, в котором выполняются задачи. Затем вы можете использовать эту переменную в других задачах или шаблонах с помощью {{ ansible_user_id }}. Это избавит вас от необходимости запуска задачи для регистрации этой переменной.

См.: http://docs.ansible.com/playbooks_variables.html#information-discovered-from-systems-facts

Ответ 3

Во всех шаблонах я делаю что-то вроде следующего:

# Placed here by {{ lookup('env','USER') }} using Ansible, {{ ansible_date_time.date }}.

При шаблоне над ним отображается как:

# Placed here by staylorx using Ansible, 2017-01-11.

Если я использую {{ ansible_user_id }}, и я стал root, то эта переменная указывает "root", а не то, что я хочу большую часть времени.