Руководство. Масштабирование развертываний Jenkins с виртуальной машиной, работающей в Azure

Важно!

Многие службы Azure используют подключаемые модули Jenkins. Поддержка некоторых таких подключаемых модулей будет прекращена 29 февраля 2024 г. В настоящее время для интеграции Jenkins со службами Azure рекомендуется использовать Azure CLI. Дополнительные сведения см. в статье Подключаемые модули Jenkins для Azure.

В этом руководстве показано, как создать виртуальные машины Linux в Azure и добавить виртуальную машину в качестве рабочего узла в Jenkins.

При работе с этим руководством вы сделаете следующее:

  • создадите компьютер агента;
  • Добавление агента в Jenkins
  • создавать универсальное задание Jenkins;
  • запускать задание в агенте виртуальной машины Azure.

Необходимые компоненты

Настройка виртуальной машины агента

  1. Используйте az group create, чтобы создать группу ресурсов Azure.

    az group create --name <resource_group> --location <location>
    
  2. Используйте az vm create, чтобы создать виртуальную машину.

    az vm create --resource-group <resource-group> --name <vm_name> --image UbuntuLTS --admin-username azureuser --admin-password "<password>"
    

    Основные моменты:

    • Кроме того, вы можете передать ключ SSH с помощью следующей команды: --ssh-key-value <ssh_path>.
  3. Установите JDK.

    1. Войдите на виртуальную машину с помощью средства SSH.

      ssh username@123.123.123.123
      
    2. Установите JDK, используя apt. Также возможна установка с помощью других диспетчеров пакетов, например yum или pacman.

      sudo apt-get install -y default-jdk
      
    3. После установки выполните java -version, чтобы проверить окружение Java. Выходные данные будут содержать номера версий, связанные с разными частями JDK.

Настройка URL-адреса Jenkins

При использовании JNLP необходимо настроить URL-адрес Jenkins.

  1. В меню выберите пункт Manage Jenkins (Управление Jenkins).

  2. В разделе System Configuration (Конфигурация системы) выберите элемент Configure System (Настройка системы).

  3. Убедитесь, что для параметра Jenkins URL (URL-адрес Jenkins) задан HTTP-адрес установки Jenkins: http://<your_host>.<your_domain>:8080/.

  4. Выберите Сохранить.

Добавление агента в Jenkins

  1. В меню выберите пункт Manage Jenkins (Управление Jenkins).

  2. В разделе System Configuration (Конфигурация системы) выберите элемент Manage Nodes and Clouds (Управление узлами и облаками).

  3. В меню выберите пункт New Node (Новый узел).

  4. Введите значение в поле Node Name (Имя узла).

  5. Выберите элемент Permanent Agent (Постоянный агент).

  6. Нажмите ОК.

  7. Укажите значения для следующих полей:

    • Имя. Укажите уникальное имя, которое идентифицирует агент в новой установке Jenkins. Это значение может отличаться от имени узла агента. Но вы можете сделать эти два значения одинаковыми. В качестве значения имени можно использовать любой специальный символ из следующего списка: ?*/\%!@#$^&|<>[]:;.

    • Удаленный корневой каталог: агент должен иметь каталог, выделенный Jenkins. Укажите путь к этому каталогу в агенте. Лучше использовать абсолютный путь, например /home/azureuser/work или c:\jenkins. Он должен быть локальным для компьютера агента. Этот путь может быть невидимым для главного сервера. Если используется относительный путь, например ./jenkins-agent, путь будет относительным для рабочего каталога, предоставленного методом запуска.

    • Метки: метки используются для группировки семантических агентов в одну логическую группу. Например, можно определить метку UBUNTU для всех агентов, работающих под управлением такого дистрибутива Linux, как Ubuntu.

    • Метод запуска: есть два варианта запуска удаленного узла Jenkins: запуск агентов через SSH и агент запуска с помощью выполнения команды на главном сервере:

      • Запуск агентов с помощью SSH: укажите значения для следующих полей:

        • Узел: общедоступный IP-адрес виртуальной машины или доменное имя. Например, 123.123.123.123 или example.com.

        • Учетные данные: выберите учетные данные, которые будут использоваться для входа в удаленный узел. Кроме того, вы можете нажать кнопку Add (Добавить), чтобы определить новые учетные данные, а затем выбрать эти новые учетные данные после создания.

        • Стратегия проверки ключа узла: определяет, как Jenkins проверяет ключ SSH, представленный удаленным узлом при подключении.

        Node configuration example specifying a launch method of Launch agents via SSH.

      • Запуск агента с помощью команды на главном сервере.

        • Скачайте из agent.jarhttps://<your_jenkins_host_name>/jnlpJars/agent.jar. Например, https://localhost:8443/jnlpJars/agent.jar.

        • Отправьте agent.jar на виртуальную машину.

        • Запустите Jenkins с помощью команды ssh <node_host> java -jar <remote_agentjar_path>. Например, ssh azureuser@99.99.999.9 java -jar /home/azureuser/agent.jar.

        Node configuration example specifying a launch method of Launch agent via execution of command on the master.

  8. Выберите Сохранить.

После определения конфигураций Jenkins добавляет виртуальную машину в качестве нового рабочего узла.

Example of virtual machine as new work node

Создание задания в Jenkins

  1. В меню выберите пункт New Item (Новый элемент).

  2. В поле имени введите demoproject1.

  3. Выберите Freestyle project (Универсальный проект).

  4. Нажмите ОК.

  5. На вкладке General (Общие) выберите Restrict where project can be run (Ограничения для запуска проекта) и введите для выражения метки значение ubuntu. Появится сообщение, подтверждающее обработку метки конфигурацией облака, созданной на предыдущем шаге.

    Setting up a new Jenkins job

  6. На вкладке Source Code Management (Управление исходным кодом) выберите Git и добавьте следующий URL-адрес в поле Repository URL (URL-адрес репозитория): https://github.com/spring-projects/spring-petclinic.git.

  7. На вкладке Build (Сборка) выберите Add build step (Добавить шаг сборки), а затем — Invoke top-level Maven targets (Вызов целевых объектов Maven верхнего уровня). В поле Goals (Цели) введите package.

  8. Выберите Сохранить.

Сборка задания в агенте виртуальной машины Azure

  1. Выберите задание, созданное на предыдущем шаге.

  2. Выберите Build now (Собрать). Новая сборка поставлена в очередь, но она не будет запущена до создания агента виртуальной машины в подписке Azure.

  3. По завершении сборки перейдите к окну Console output (Вывод на консоль). Вы увидите, что сборка выполнена в агенте Azure удаленно.

    Console output

Следующие шаги