Envoy Task Runner: команда запуска, требующая доступа sudo

Я использую https://laravel.com/docs/5.4/envoy в качестве инструмента развертывания. В Envoy.blade.php у меня есть команда, требующая доступа sudo, например:

chmod 777 -R storage/
chmod 777 -R bootstrap/cache

Эти команды завершаются с ошибкой, сообщающей, что операция не разрешена. Как мы можем решить это?

2 ответа

Я изменил следующую конфигурацию на сервере

sudo visudo

и добавить

username ALL=(ALL) NOPASSWD: ALL

Все команды теперь могут быть выполнены без ввода пароля

Вы также можете указать отдельные команды

username ALL=(username) NOPASSWD:/etc/init.d/apache2 reload

Чтобы запустить эти команды как sudo, попробуйте следующее:

echo "{{ $password }}" | sudo -S chmod 777 -R storage/
echo "{{ $password }}" | sudo -S chmod 777 -R bootstrap/cache

Очевидно, вам нужно будет передать пароль sudo в команду envoy run.

envoy run mytask --password=mypass

Протестировано на сервере Ubuntu 16.04 и 17.04

Другие вопросы по тегам