Как можно реализовать перезапуск службы через webhook?

Добрый день! Поставили задачу сделать webhook в gitlab на push event, ОС centos 7, gitlab EE . Реализацию сделал по этой статье. Сам webhook отрабатывает, изменения пулятся. Но тут еще поставили задачу рестартить службу после того как изменения запулятся. Вот тут и начинается. Пытаюсь рестартовать через пользователя apache, но выходит ошибка в логе
sudo: sorry, you must have a tty to run sudo
если в sudo отключить
Defaults requiretty
то тогда ошибка такого рода
Failed to restart asterisk.service: Interactive authentication required.

конфиги:
скрипт php без изменений со статьи.
скрипт bash
#!/bin/sh
#не знаю что за строка
cd .. > /dev/null &
cd /etc/asterisk
/usr/bin/git pull
sudo /etc/rc.d/init.d/asterisk restart

строка с sudoers
apache ALL=(ALL)  NOPASSWD: /etc/rc.d/init.d/asterisk restart

если выполнить bash скрипт он имени apache то он исполняется, но когда приходит запрос от apache то выходит выше описанная ошибка.
Подскажите как лучше реализовать данную задачу? Заранее всем спасибо
  • Вопрос задан
  • 541 просмотр
Решения вопроса 1
@aol-nnov
добавь в скрипт что-нить типа
echo $USER
whoami

или еще что-то, чтобы быть наверняка уверенным, от какого пользователя выполняется скрипт. потом приведи в соответствие настройки суду.
// эхх, глаза протёр. там про отсутствие tty...
привет, дневничок^W^W вот оно! https://www.shell-tips.com/2014/09/08/sudo-sorry-y...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы