Oleg
подскажите, а как установить дополнительный модуль composer, которого как я понял нет в стандартном пакете ansible?
Victor
подскажите, а как установить дополнительный модуль composer, которого как я понял нет в стандартном пакете ansible?
Ну он вместе с анзиблом идет. другое дело, что еще нужен установленный пых и сам композер в пути
Oleg
Ну он вместе с анзиблом идет. другое дело, что еще нужен установленный пых и сам композер в пути
и пхп и композер установлены, а каким образом это нужно указать в пути?
Victor
или на что оно у тебя вообще ругается?
Oleg
Oleg
Victor
отступы
Victor
у тебя yaml невалидный
Victor
Точнее валидный, но не правильный
Victor
у тебя комманд и воркинг дир должны быть на отступ дальше
Oleg
да, спасибо
Oleg
уже ошибка в PATH
Oleg
я так понимаю, я должен руками туда это всё прописать
Oleg
чтобы команды такого рода проходили
Victor
>executable (added in 2.4) Path to PHP Executable on the remote host, if PHP is not in PATH.
Victor
тьфу, тут же речь про сам композер. нужно найти где поставил и добавить в пути
V.
- hosts: all tasks: - name: Notify shell: notify-send test become: yes become_user: user
V.
подскажите почему уведомление не появляется
V.
если просто по ссш соединяюсь к хосту как user и даю комнду notify-send test , то уведомление у него появляется
Victor
подскажите почему уведомление не появляется
Какое уведомление, куда появляется?
V.
с помощью notify-send нужно уведомить пользователя о том что будут некие действия производится. на рабочем столе должно появляться
Victor
или в зависимости от become_method sudo -u user notify-send test
V.
щас проверю
V.
или в зависимости от become_method sudo -u user notify-send test
это от рута не работает, те ошибок нет, уведомления тоже.
V.
а на хосте su -c 'notify-send test' user работает?
это работает на хосте от рута
V.
ну я в консоли от имени рута запустил эту команду
V.
на локальном хосте
V.
как сделать чтоб из ансибл работало?
Victor
это работает на хосте от рута
become_method: su Добавь в таск
Pavel
как сделать чтоб из ансибл работало?
когда по ссх заходишь, а не локально в консоли su -c 'notify-send test' user - работает?
Pavel
думаю нет... вся проблема в том что это для Х-ов команда, а когда анзибль в консоли ее выполняет - неизвестно на какой дисплей ее слать...
Victor
Хмм. https://docs.ansible.com/ansible/2.7/user_guide/become.html#environment-variables-populated-by-pam-systemd
Victor
Мне кажется что notify-send использует переменные среды от иксов. Или еще что-то такое. И при su/sudo они не работают.
V.
V.
вот по ссш
Victor
просто по ссш запускаю из под user - все норм
ssh от пользователя и ssh из под пользователя ansible и выполнение потом через эскалацию привилегий это две разные вещи
V.
невозможно?
Victor
Или даже вот так. https://stackoverflow.com/questions/52472469/the-command-of-notify-send-does-not-work-in-supervisor
Victor
Не хватат переменных сред.
V.
а можно в плэйбуке выборочно задания выполнять под другим пользователем? не через эскалацию соединений а именно по ссш соединятся другим юзером?
Andrey
завести как другой хост, мб
V.
мне надо чтоб например последовательно было - пришло пользователю сообщение. типа не запускай программу такуюто. потом из под рута кильнуть ее, обновить файлы, и снова послать сообщение, типа все нормально можете запускать программу
Ждун
может лучше баш скрипт написать свою обертку для notify и запускать его через ansible
Victor
https://rtfm.co.ua/linux-notify-send-dbus-i-crontab/
Victor
И запускаешь это как пишут выше через свой скрипт, наверное самое изящное решение
Victor
Композер
Oleg
я что-то пробую и php и composer в executable подставлять, ничего не запускается
Oleg
именно полный путь до composr.phar в проекте?
Victor
отдельно в пути композер, если там его нет
V.
а плэйбук из под рута запускается
V.
Там все равно будет, вроде.
попробую, но экспорт этих переменных под рутом и последующий запуск нотифи ничего не дал
Andrey
в чём проблема использовать become:?
V.
нет, такой же
V.
проверил
Victor
дисплей?
Victor
возможно он еще нужен
V.
:0
V.
тоже все
V.
если по ссш конектится пользователем этим. то все нормально даже без указания дисплея
V.
ешо в ссш сессии тоже нет, этой переменной
V.
вот по ссш приконнектился пользователем
V.
user@new-debian:~$ echo $DBUS_SESSION_BUS_ADDRESS unix:path=/run/user/1000/bus user@new-debian:~$ notify-send test test user@new-debian:~$