Как настроить задание Jenkins на целевой сервер для развертывания?

2552
Kiran

Я использую два сервера CentOS. Я не использую какой-либо репозиторий кода. В Дженкинс, когда я нажимаю «Новый элемент», я не вижу места для входа на целевой сервер. Я ожидаю место для настройки целевого сервера для данной сборки (например, для запуска команды bash или передачи файла с сервера Jenkins на целевой сервер). Поскольку Jenkins работает как пользователь Jenkins на стороне Linux, он не может использовать SSH как root. Я хотел бы быть пользователем root и выполнить команду после передачи файла с сервера Linux, который поддерживает Jenkins. Я мог сделать это с помощью встроенных команд оболочки в шагах сборки Jenkins «New Item». Для таких команд есть свободное текстовое поле. Но я не знаю, как интерактивно отвечать на вызов пароля.

Где я могу настроить целевой сервер для данного развертывания?

Могу ли я жестко закодировать пароль root в задании Jenkins? Если так, то как мне это сделать. Я не хочу устанавливать sshpass.

Помимо наличия ядра Jenkins, какие плагины необходимы для развертывания файлов с одного сервера Linux на другой сервер Linux?

0

1 ответ на вопрос

0
pKami

In Jenkins you use labels to define where a project can be built. Once you create a new item you will see (in the job configuration) a checkbox named "Restrict where this project can be run". Here can either use the slave node name (for example slave4.mycompany) or create a label which is a container for multiple slaves. Once properly filled out, this job will always build on the given slave node.

If you need more functionality than that, try the NodeLabel Parameter Plugin (nodelabelparameter). You can install it from Manage Jenkins > Manage Plugins > Available.

To identify which node you are on during the build, you can for instance manually set persistent environment variables on both build slaves, as example $SLAVENAME returning "buildslave1", or use the linux "hostname" command in your scripts to identify the current context, and based on that output decide how to proceed.

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