Ответ 1
Существует несколько способов решить эту проблему.
Разрешения sudo на грант
Вы можете предоставить разрешения sudo для пользователя gitlab-runner
, так как это тот, кто выполняет сборку script.
$ sudo usermod -a -G sudo gitlab-runner
Теперь вам нужно удалить ограничение пароля для sudo
для пользователя gitlab-runner
.
Запустите редактор sudo с помощью
$ sudo visudo
Теперь добавьте следующее в конец файла
gitlab-runner ALL=(ALL) NOPASSWD: ALL
Не делайте этого для бегунов gitlab, которые могут быть выполнены ненадежными пользователями.
SSH Runner
Вы можете настроить gitlab-ci-runner
для подключения к удаленному хосту с помощью SSH. Вы настраиваете это, чтобы использовать пользователя удаленно, у которого есть разрешения sudo, и выполнить сборку с использованием этого пользователя. Удаленным хостом может быть тот же самый компьютер, на котором выполняется бегун gitlab, или может быть другим хостом.
У этой учетной записи пользователя сборки все равно должны быть разрешения sudo и passless. Следуйте инструкциям ниже, за исключением замены gitlab-runner
на пользователя сборки.