Руководство по Использование Экземпляров контейнеров Azure в качестве агента сборки JenkinsTutorial: Use Azure Container Instances as a Jenkins build agent

Экземпляры контейнеров Azure (ACI) предоставляют доступную по требованию изолированную среду выполнения с накапливаемыми ресурсами для контейнерных рабочих нагрузок.Azure Container Instances (ACI) provides an on-demand, burstable, and isolated environment for running containerized workloads. Эти характеристики делают ACI отличной платформой для масштабного выполнения заданий сборки Jenkins.Because of these attributes, ACI makes a great platform for running Jenkins build jobs at a large scale. В этой статье описано, как развертывать и использовать сервер Jenkins, для которого целевым объектом сборки указаны экземпляры контейнеров Azure.This article walks through deploying and using a Jenkins server that's pre-configured with ACI as a build target.

См. дополнительные сведения о службе "Экземпляры контейнеров Azure".For more information on Azure Container Instances, see About Azure Container Instances.

Развертывание сервера JenkinsDeploy a Jenkins server

  1. На портале Azure выберите Создать ресурс и выполните поиск по строке Jenkins.In the Azure portal, select Create a resource and search for Jenkins. Выберите предложения Jenkins, издателем для которого указана корпорация Майкрософт, и щелкните Создать.Select the Jenkins offering with a publisher of Microsoft, and then select Create.

  2. Введите следующие сведения в форму Основные сведения, а затем щелкните ОК.Enter the following information on the Basics form, and then select OK.

    • Name (Имя). Введите имя для развертывания Jenkins.Name: Enter a name for the Jenkins deployment.
    • Имя пользователя. Введите имя администратора для виртуальной машины Jenkins.User name: Enter a name for the admin user of the Jenkins virtual machine.
    • Тип проверки подлинности. Рекомендуем использовать для проверки подлинности открытый ключ SSH.Authentication type: We recommend an SSH public key for authentication. Если вы выберете этот вариант, вставьте открытый ключ SSH для входа в виртуальную машину Jenkins.If you select this option, paste in an SSH public key to be used for logging in to the Jenkins virtual machine.
    • Подписка: Выберите подписку Azure.Subscription: Select an Azure subscription.
    • Группа ресурсов. Создайте группу ресурсов или выберите существующую.Resource group: Create a resource group or select an existing one.
    • Расположение. Выберите расположение для сервера Jenkins.Location: Select a location for the Jenkins server.

    Основные параметры для развертывания Jenkins на портале

  3. В форме Дополнительные параметры заполните следующие данные:On the Additional Settings form, complete the following items:

    • Size. Выберите соответствующий параметр для виртуальной машины Jenkins.Size: Select the appropriate sizing option for your Jenkins virtual machine.
    • Тип диска виртуальной машины. Выберите для сервера Jenkins один из двух параметров: HDD (жесткий диск) или SSD (твердотельный накопитель).VM disk type: Specify either HDD (hard-disk drive) or SSD (solid-state drive) for the Jenkins server.
    • Виртуальная сеть. Выберите стрелку, если необходимо изменить параметры по умолчанию.Virtual network: Select the arrow if you want to modify the default settings.
    • Подсети. Выберите стрелку, проверьте информацию и щелкните ОК.Subnets: Select the arrow, verify the information, and select OK.
    • Общедоступный IP-адрес. Выберите стрелку, чтобы присвоить IP-адресу произвольное имя, настроить SKU и способ назначения.Public IP address: Select the arrow to give the public IP address a custom name, configure the SKU, and set the assignment method.
    • Метка доменного имени. Укажите это значение, чтобы создать полный URL-адрес для виртуальной машины Jenkins.Domain name label: Specify a value to create a fully qualified URL to the Jenkins virtual machine.
    • Тип выпуска Jenkins. Выберите нужный тип выпуска из параметров: LTS, Недельная сборка или Проверено Azure.Jenkins release type: Select the desired release type from the options: LTS, Weekly build, or Azure Verified.

    Дополнительные параметры для развертывания Jenkins на портале

  4. Для параметра интеграции субъекта-службы выберите значение Auto(MSI) , чтобы управляемые удостоверения для ресурсов Azure автоматически создавали удостоверение аутентификации для этого экземпляра Jenkins.For service principal integration, select Auto(MSI) to have managed identities for Azure resources automatically create an authentication identity for the Jenkins instance. Выберите режим Вручную, если вы можете предоставить собственные учетные данные для субъекта-службы.Select Manual to provide your own service principal credentials.

  5. Облачные агенты настраивают облачную платформу для заданий сборки Jenkins.Cloud agents configure a cloud-based platform for Jenkins build jobs. Для работы с этой статьей выберите ACI.For the sake of this article, select ACI. Облачный агент ACI запускает каждое задание сборки Jenkins в отдельном экземпляре контейнера.With the ACI cloud agent, each Jenkins build job is run in a container instance.

    Параметры интеграции с облаком для развертывания Jenkins на портале

  6. Когда вы завершите настройку интеграции, щелкните ОК, а затем еще раз ОК на странице со сводной информацией о проверке.When you're done with the integration settings, select OK, and then select OK again on the validation summary. Выберите Создать на странице сводной информации об условиях использования.Select Create on the Terms of use summary. Развертывание сервера Jenkins занимает несколько минут.The Jenkins server takes a few minutes to deploy.

Настройка JenkinsConfigure Jenkins

  1. На портале Azure перейдите к группе ресурсов Jenkins, выберите виртуальную машину Jenkins и запишите ее DNS-имя.In the Azure portal, browse to the Jenkins resource group, select the Jenkins virtual machine, and take note of the DNS name.

    DNS-имя в сведениях о виртуальной машине Jenkins

  2. Откройте в браузере страницу с DNS-именем виртуальной машины Jenkins и скопируйте полученную строку SSH.Browse to the DNS name of the Jenkins VM and copy the returned SSH string.

    Инструкции по входу в Jenkins со строкой SSH

  3. Откройте сеанс терминала в системе разработки и вставьте в него строку SSH, полученную на последнем шаге.Open a terminal session on your development system, and paste in the SSH string from the last step. Вместо строки username укажите имя пользователя, которое вы выбрали при развертывании сервера Jenkins.Update username to the username that you specified when you deployed the Jenkins server.

  4. После подключения сеанса введите следующую команду, чтобы получить исходный пароль администратора:After the session is connected, run the following command to retrieve the initial admin password:

    sudo cat /var/lib/jenkins/secrets/initialAdminPassword
    
  5. Завершите сеанс SSH и отключите туннель, а затем перейдите по адресу http://localhost:8080 в браузере.Leave the SSH session and tunnel running, and go to http://localhost:8080 in a browser. Вставьте исходный пароль администратора в поле, а затем выберите Продолжить.Paste the initial admin password into the box, and then select Continue.

    Экран разблокировки Jenkins с полем для пароля администратора

  6. Выберите действие Установить предлагаемые подключаемые модули, чтобы установить все рекомендуемые подключаемые модули Jenkins.Select Install suggested plugins to install all recommended Jenkins plugins.

    Экран настройки Jenkins с выбранным вариантом установки предлагаемых подключаемых модулей

  7. Создайте учетную запись администратора.Create an admin user account. Эта учетная запись потребуется для входа на экземпляр Jenkins и работы с ним.This account is used for logging in to and working with your Jenkins instance.

    Экран создания первого администратора с заполненными учетными данными

  8. Когда все будет готово, выберите Сохранить и завершить, а затем Начать работу с Jenkins, чтобы завершить процесс настройки.Select Save and Finish, and then select Start using Jenkins to complete the configuration.

Итак, конфигурация Jenkins завершена, и можно переходить к сборке и развертыванию кода.Jenkins is now configured and ready to build and deploy code. В этом примере для демонстрации сборки Jenkins на экземплярах контейнера Azure используется простое приложение Java.For this example, a simple Java application is used to demonstrate a Jenkins build on Azure Container Instances.

Создание задания сборкиCreate a build job

Теперь для демонстрации сборки Jenkins в экземпляре контейнера Azure необходимо создать задание сборки Jenkins.Now, a Jenkins build job is created to demonstrate Jenkins builds on an Azure container instance.

  1. Выберите Новый элемент, присвойте проекту сборки имя, например aci-demo, затем выберите тип Универсальный проект и щелкните ОК.Select New Item, give the build project a name such as aci-demo, select Freestyle project, and select OK.

    Поле для ввода имени задания сборки и список типов проектов

  2. В разделе Общие проверьте, что установлен флажок Ограничения для запуска этого проекта.Under General, ensure that Restrict where this project can be run is selected. В поле выражения метки введите linux.Enter linux for the label expression. Такая конфигурация гарантирует, что это задание сборки будет выполняться только в облаке экземпляров контейнеров Azure.This configuration ensures that this build job runs on the ACI cloud.

    Вкладка "Общие" с данными конфигурации

  3. В разделе Сборка выберите действие Добавить шаг сборки и щелкните Выполнить оболочку.Under Build, select Add build step and select Execute Shell. Введите echo "aci-demo" в качестве команды.Enter echo "aci-demo" as the command.

    Вкладка сборки с выделенными значениями для шага создания

  4. Щелкните Сохранить.Select Save.

Запустите задание сборки.Run the build job

Чтобы проверить задание сборки и увидеть, как экземпляры контейнеров Azure используются в качестве платформы сборки, запустите сборку вручную.To test the build job and observe Azure Container Instances as the build platform, manually start a build.

  1. Выберите Начать сборку, чтобы начать сборку.Select Build Now to start a build job. Запуск задания может занять несколько минут.It takes a few minutes for the job to start. Вы должны увидеть состояние, аналогичное показанному ниже:You should see a status that's similar to the following image:

    Сведения в журнале сборки с состоянием задания

  2. Пока выполняется задание, откройте портал Azure и найдите группу ресурсов Jenkins.While the job is running, open the Azure portal and look at the Jenkins resource group. Здесь вы увидите, что создан новый экземпляр контейнера.You should see that a container instance has been created. Внутри этого экземпляра выполняется задание Jenkins.The Jenkins job is running inside this instance.

    Экземпляр контейнера в группе ресурсов

  3. Если Jenkins выполняет больше заданий, чем настроенное число исполнителей Jenkins (по умолчанию 2), он создает несколько экземпляров контейнера.As Jenkins runs more jobs than the configured number of Jenkins executors (default 2), multiple container instances are created.

    Созданные экземпляры контейнеров

  4. После завершения всех заданий сборки все экземпляры контейнеров удаляются.After all build jobs have finished, the container instances are removed.

    Группа ресурсов с экземпляром контейнеров удалена

Устранение неполадок подключаемого модуля JenkinsTroubleshooting the Jenkins plugin

Если вы столкнулись с ошибками, которые касаются подключаемых модулей Jenkins, сообщите о проблеме конкретного компонента в JENKS JIRA.If you encounter any bugs with the Jenkins plugins, file an issue in the Jenkins JIRA for the specific component.

Дальнейшие действияNext steps