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