Невозможно подготовить виртуальную машину Azure из Jenkins после настройки облака

#azure #jenkins #jenkins-pipeline #jenkins-plugins #azure-virtual-machine

#azure #Дженкинс #jenkins-конвейер #jenkins-плагины #azure-virtual-machine

Вопрос:

В настоящее время я пытаюсь настроить Jenkins на предоставление виртуальных машин Azure (или экземпляров контейнеров) для запуска интеграционных тестов. После выполнения инструкций плагина виртуальной машины я не уверен, как именно я могу заставить Jenkins предоставить виртуальную машину Azure из конвейера Jenkins. Хотя плагин утверждает, что он будет предоставляться автоматически, я думаю, что есть что-то еще, чего мне не хватает. Найти информацию о том, как это сделать правильно, немного сложно.

Если требуется какая-либо дополнительная информация, мой проект выполняется на Python и должен использовать MSSQL. Проект также применяется к проекту организации Github.

Комментарии:

1. я никогда этого не делал, но вы следили за документами? они четко говорят, что все делается автоматически, проверьте разрешения

2. ДА. Я следил за документами. Таким образом, они явно не указывают точные разрешения, необходимые для предоставления виртуальных машин. Я присвоил регистрации приложения роль участника

3. @4c74356b41, после настройки облака для предоставления виртуальных машин, всякий раз, когда я пытаюсь запустить сборку, она всегда запускает master (сервер Jenkins). Есть еще какой-нибудь способ устранить эту проблему?

Ответ №1:

Когда вы следуете документам для подготовки агента виртуальной машины Azure, вам необходимо проверить, создан ли агент виртуальной машины.

Управление Jenkins -> Управление узлами и облаками:

введите описание изображения здесь

И когда вы создаете элемент, он позволит вам выбрать узлы:

введите описание изображения здесь

Здесь вы можете выбрать метку, заданную для агента виртуальной машины Azure. Затем проект будет запущен на агенте виртуальной машины Azure. Вот файл artcile в Azure.

Комментарии:

1. Итак, как только вы закончите настройку параметров облака, она автоматически подготовит виртуальную машину, даже если вы не запускаете сборку? Я могу убедиться, что конфигурация и шаблон виртуальной машины верны, но я не вижу, чтобы новый узел создавался из меню «Управление узлами и облаками». Какие конкретные разрешения нужны Jenkins, чтобы сервер мог создать узел?

2. @JosephWoolf На самом деле, нет. Только когда вам нужно запустить задание на узле, тогда он создаст новый узел перед запуском задания. И нет никаких конкретных разрешений для участника службы Azure, когда вы создаете участника службы, у него есть роль участника подписки, и этого достаточно.

3. Хорошо, поэтому мне нужно, чтобы у участника службы была только роль участника. Это я сделал. Теперь в моем проекте есть файл Jenkins, так как именно мне определить агент, чтобы любая сборка выполнялась на подготовленной виртуальной машине, а не на главном узле (сервере Jenkins)?

4. @JosephWoolf Как я уже сказал в ответе, вы можете использовать метку, которую вы установили для агента виртуальной машины при создании задания. Затем, когда вы создаете задание, оно будет выполняться на агенте виртуальной машины.

5. Ах… Теперь я понимаю. Я думаю, вы можете ограничить только с помощью метки в проекте Freestyle. Я не вижу диалоговое окно на втором рисунке для элемента организации Github. Есть ли какой-то конкретный способ ограничить его в элементе организации Github?