Сделать доступным чтение из папок для текущего пользователя

avatar
telometto
1 июля 2021 в 20:32
42
0
0

Я ищу способ заставить ansible читать файл из определенного места независимо от пользователя (т.е. я хотел бы сделать скрипты доступными для любого пользователя).

К сожалению, ansible похоже любит жестко закодированные пути: /home/user/foo/bar.yml работает; ~/foo/bar.yml не работает.

Я пытался использовать эти варианты (ни один из них не работает):

- import_playbook: ~/Documents/foo/bar.yml
- import_playbook: "{{ lookup('env','USER') }}/Documents/foo/bar.yml"
- import_playbook: "/home/{{ lookup('env','USER') }}/Documents/foo/bar.yml"

Как мне заставить ansible читать из заданного каталога независимо от пользователя? Я бы хотел, чтобы эти сценарии могли исполняться для всех.

Спасибо.

EDIT: В идеале я хотел бы, чтобы скрипт также выполнялся текущим пользователем: например. become_user: current (не знаю, можно ли использовать последнюю команду).

Источник
U880D
2 июля 2021 в 05:55
1

У меня такое ощущение, что в вашем описании отсутствует какой-то контекст. Выполняются ли плейбуки локально или удаленно. Вызывает ли playbook пользователя на удаленной стороне? И т. д. Я решил это требование с помощью сценария под /etc/profile.d и ACCOUNT=$(who am i | cut -d " " -f 1). Команда ansible-playbook --user=${ACCOUNT} ..., а также переменная в playbooks {{ ansible_user }}. Поэтому я могу использовать такие конструкции, как /home/{{ ansible_user }}/directory или /home/${ACCOUNT}/directory.

telometto
5 июля 2021 в 16:13
0

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

Ответы (0)