MyTetra Share
Делитесь знаниями!
Как в Ansible переключиться на другого пользователя
Время создания: 24.04.2023 13:54
Текстовые метки: linux, ansible, пользователь, user, root, become, переключиться, выполнить
Раздел: Компьютер - Linux - Оркестрация - Ansible
Запись: xintrea/mytetra_syncro/master/base/16823336711eth4ishmz/text.html на raw.github.com

По-умолчанию, Ansible сконфигурирован так, что плейбуки выполняются на удаленных машинах под суперпользователем (root). Однако часто возникает задача переключиться на другого пользователя, и выполнить действия от его имени. При этом возможно появление следующей ошибки:



Failed to set permissions on the temporary files Ansible needs to create

when becoming an unprivileged user

(rc: 1, err: chown: неверный пользователь: «user»\n}).

For information on working around this, see https://docs.ansible.com/ansible/become.html#becoming-an-unprivileged-user



Как обойти эту проблему?


Во-первых, надо на удаленной машине установить пакет acl.


Во-вторых надо убедиться, что на удаленной машине прописан SSH-ключ того пользователя, на которого происходит переключение. (Данное требование весьма спорно, по логике вещей достаточно просто доступа под root).


В-третьих, если ошибка сохраняется, надо на уровне плейбука прописать следующую переменную:



var:

allow_world_readable_tmpfiles: true



Код работающего плейбука, который делает правильное переключение на пользователя user, порказан ниже:



---

- hosts: ourServer

become: true

become_user: user


vars:

allow_world_readable_tmpfiles: true


tasks:


- name: Запрос под каким пользователем выполняется плейбук

shell: "whoami"

register: result

- name: Под каким пользователем выполняется плейбук

debug:

msg: "{{ result.stdout_lines }}"



Данный плейбук был проверен и успешно работает на Ansible версии 2.9.16.


Так же в этом разделе:
 
MyTetra Share v.0.65
Яндекс индекс цитирования