Запуск сервера Jenkins в AzureRun a Jenkins server on Azure

Этот сценарий показывает, как развертывать и эксплуатировать масштабируемый сервер Jenkins корпоративного класса на Azure, защищенный одним всданным (SSO).This scenario shows how to deploy and operate a scalable, enterprise-grade Jenkins server on Azure secured with single sign-on (SSO). В этой архитектуре также используется платформа Azure Monitor, позволяющая отслеживать состояние сервера Jenkins.The architecture also uses Azure Monitor to monitor the state of the Jenkins server. Развертывайте это решение.Deploy this solution.

Сервер Jenkins, работающий в Azure

Скачайте файл Visio, который содержит схему этой архитектуры.Download a Visio file that contains this architecture diagram.

Эта архитектура поддерживает аварийное восстановление с помощью служб Azure, но не распространяется на более сложные сценарии горизонтального масштабирования, предусматривающие использование нескольких главных серверов или высокий уровень доступности без простоев.This architecture supports disaster recovery with Azure services but does not cover more advanced scale-out scenarios involving multiple masters or high availability (HA) with no downtime. Для получения общих сведений о различных компонентах Azure, включая пошаговый Jenkins on Azureучебник по созданию конвейера CI/CD на Azure, см.For general insights about the various Azure components, including a step-by-step tutorial about building out a CI/CD pipeline on Azure, see Jenkins on Azure.

В этом документе описываются основные операции Azure, необходимые для поддержки Jenkins, включая использование службы хранилища Azure для поддержания артефактов сборки, элементы безопасности, необходимые для единого входа, другие службы, которые можно интегрировать, и возможности масштабирования конвейера.The focus of this document is on the core Azure operations needed to support Jenkins, including the use of Azure Storage to maintain build artifacts, the security items needed for SSO, other services that can be integrated, and scalability for the pipeline. Эта архитектура предназначена для работы с существующим репозиторием системы управления версиями.The architecture is designed to work with an existing source control repository. Например, для начала работы с заданиями Jenkins часто используются фиксации GitHub.For example, a common scenario is to start Jenkins jobs based on GitHub commits.

ArchitectureArchitecture

Она состоит из следующих компонентов:The architecture consists of the following components:

  • Группа ресурсов.Resource group. Группа ресурсов используется для объединения ресурсов Azure по времени существования, владельцу и другим критериям, а также для управления этими ресурсами.A resource group is used to group Azure assets so they can be managed by lifetime, owner, and other criteria. Группы ресурсов позволяют развертывать и отслеживать несколько ресурсов Azure как одну группу, для которой, помимо прочего, можно отслеживать выставляемые счета.Use resource groups to deploy and monitor Azure assets as a group and track billing costs by resource group. Можно также удалить ресурсы в виде набора, что очень удобно для тестирования развернутых служб.You can also delete resources as a set, which is very useful for test deployments.

  • Сервер Дженкинса.Jenkins server. Виртуальная машина развернута для запуска Дженкинса в качестве сервера автоматизации и служит в качестве мастера Дженкинса.A virtual machine is deployed to run Jenkins as an automation server and serves as Jenkins Master. Чтобы развернуть этот VM, используйте шаблон решения для Jenkins на Azure.To deploy this VM, use the solution template for Jenkins on Azure. Другие предложения Jenkins доступны в Azure Marketplace.Other Jenkins offerings are available in the Azure Marketplace.

    Примечание

    Nginx устанавливается на виртуальной машине и выполняет роль обратного прокси-сервера для Jenkins.Nginx is installed on the VM to act as a reverse proxy to Jenkins. Сервер Nginx можно настроить, чтобы разрешить использование SSL на сервере Jenkins.You can configure Nginx to enable SSL for the Jenkins server.

  • Виртуальная сеть.Virtual network. Виртуальная сеть связывает ресурсы Azure между собой и обеспечивает логическую изоляцию.A virtual network connects Azure resources to each other and provides logical isolation. В этой архитектуре сервер Jenkins работает в виртуальной сети.In this architecture, the Jenkins server runs in a virtual network.

  • Подсетей.Subnets. Сервер Jenkins изолирован в подсети. Это упрощает управление сетевым трафиком и его разделение без ущерба для производительности.The Jenkins server is isolated in a subnet to make it easier to manage and segregate network traffic without affecting performance.

  • Группы сетевой безопасности.Network security groups. Используйте группы сетевой безопасности для ограничения сетевого трафика из Интернета в подсеть виртуальной сети.Use network security groups to restrict network traffic from the Internet to the subnet of a virtual network.

  • Управляемые диски.Managed disks. Управляемый диск — это постоянный виртуальный жесткий диск (VHD), который обеспечивает хранение приложений, поддержание состояния сервера Jenkins и выполнение аварийного восстановления.A managed disk is a persistent virtual hard disk (VHD) used for application storage and also to maintain the state of the Jenkins server and provide disaster recovery. Диски данных хранятся в хранилище Azure.Data disks are stored in Azure Storage. Для повышения производительности рекомендуем использовать хранилище класса Premium.For high performance, premium storage is recommended.

  • Хранение Azure Blob.Azure Blob storage. Плагин Windows Azure Storage использует хранилище Azure Blob для хранения создаваемых и доступных артефактов сборки с другими сборками Jenkins.The Windows Azure Storage plugin uses Azure Blob storage to store the build artifacts that are created and shared with other Jenkins builds.

  • Активный каталог Azure (Azure AD).Azure Active Directory (Azure AD). Azure AD поддерживает проверку подлинности пользователей, позволяя настроить единый вход.Azure AD supports user authentication, allowing you to set up SSO. Субъекты-службы Azure AD определяют политику и разрешения для авторизации каждой роли в рабочем процессе с помощью управления доступом на основе ролей (RBAC).Azure AD service principals define the policy and permissions for each role authorization in the workflow, using role-based access control (RBAC). Каждый субъект-служба связан с заданием Jenkins.Each service principal is associated with a Jenkins job.

  • Убежище ключей Azure.Azure Key Vault. Для управления секретами и криптографическими ключами, используемыми для предоставления ресурсов Azure при необходимости, эта архитектура использует Azure Key Vault.To manage secrets and cryptographic keys used to provision Azure resources when secrets are required, this architecture uses Azure Key Vault. Дополнительные справочные сведения о хранении секретов, связанных с приложением в конвейере, см. также на странице подключаемого модуля для хранения учетных данных Azure в Jenkins.For added help storing secrets associated with the application in the pipeline, see also the Azure Credentials plugin for Jenkins.

  • Службы мониторинга Azure.Azure monitoring services. Эта служба обеспечивает мониторинг виртуальной машины Azure, на которой размещен сервер Jenkins.This service monitors the Azure virtual machine hosting Jenkins. Развернутая служба отслеживает состояние виртуальной машины и загрузку ЦП и отправляет соответствующие оповещения.This deployment monitors the virtual machine status and CPU utilization and sends alerts.

РекомендацииRecommendations

Следующие рекомендации применимы для большинства ситуаций.The following recommendations apply for most scenarios. Следуйте этим рекомендациям, если они не противоречат особым требованиям для вашего случая.Follow these recommendations unless you have a specific requirement that overrides them.

Azure ADAzure AD

Клиент Azure AD для подписки Azure обеспечивает единый вход для пользователей Jenkins и позволяет настроить субъекты-службы, которые предоставляют заданиям Jenkins доступ к ресурсам Azure.The Azure AD tenant for your Azure subscription is used to enable SSO for Jenkins users and set up service principals that enable Jenkins jobs to access Azure resources.

Проверка подлинности и авторизация с использованием единого входа реализуются за счет подключаемого модуля Azure AD, установленного на сервере Jenkins.SSO authentication and authorization are implemented by the Azure AD plugin installed on the Jenkins server. Технология единого входа позволяет проходить проверку подлинности, используя корпоративные учетные данные из Azure AD, при входе на сервер Jenkins.SSO allows you to authenticate using your organization credentials from Azure AD when logging on to the Jenkins server. При настройке плагина Azure AD можно указать уровень авторизованного доступа пользователя к серверу Jenkins.When configuring the Azure AD plugin, you can specify the level of a user's authorized access to the Jenkins server.

Чтобы обеспечить доступ к ресурсам Azure для заданий Jenkins, администратор Azure AD создает субъекты-службы.To provide Jenkins jobs with access to Azure resources, an Azure AD administrator creates service principals. Они предоставляют приложениям (в нашем случае это задания Jenkins) доступ к ресурсам Azure с авторизацией и проверкой подлинности.These grant applications — in this case, the Jenkins jobs — authenticated, authorized access to Azure resources.

RBAC дополнительно определяет и контролирует доступ пользователей и субъектов-служб к ресурсам Azure согласно назначенным ролям.RBAC further defines and controls access to Azure resources for users or service principals through their assigned role. Поддерживаются как встроенные, так и пользовательские роли.Both built-in and custom roles are supported. Роли также помогают обезопасить конвейер и обеспечить правильное возложение и авторизуемые обязанности пользователя или агента.Roles also help secure the pipeline and ensure that a user's or agent's responsibilities are assigned and authorized correctly. Кроме того, RBAC можно настроить таким образом, чтобы ограничить доступ к ресурсам Azure.In addition, RBAC can be set up to limit access to Azure assets. Например, можно разрешить пользователю работать с ресурсами только в определенной группе ресурсов.For example, a user can be limited to working with only the assets in a particular resource group.

ПамятьStorage

С помощью подключаемого модуля службы хранилища Azure для Jenkins, установленного из Azure Marketplace, можно хранить артефакты сборки, чтобы использовать их в других сборках и тестах.Use the Jenkins Windows Azure Storage plugin, which is installed from the Azure Marketplace, to store build artifacts that can be shared with other builds and tests. Чтобы использовать этот подключаемый модуль для заданий Jenkins, сначала необходимо настроить учетную запись хранения Azure.An Azure Storage account must be configured before this plugin can be used by the Jenkins jobs.

Подключаемые модули Azure для JenkinsJenkins Azure plugins

Шаблон решения для Jenkins в Azure устанавливает несколько подключаемых модулей Azure.The solution template for Jenkins on Azure installs several Azure plugins. Группа разработчиков DevOps Azure создает и обслуживает шаблон решения и указанные ниже подключаемые модули, которые могут работать с другими предложениями Jenkins в Azure Marketplace, а также с любым главным сервером Jenkins, настроенным в локальной среде.The Azure DevOps Team builds and maintains the solution template and the following plugins, which work with other Jenkins offerings in Azure Marketplace as well as any Jenkins master set up on premises:

Также рекомендуем просмотреть постоянно пополняющийся список всех доступных подключаемых модулей Azure, работающих с ресурсами Azure.We also recommend reviewing the growing list of all available Azure plugins that work with Azure resources. Чтобы просмотреть последнюю версию всего списка, перейдите на страницу индекса подключаемых модулей Jenkins и выполните поиск по термину "Azure".To see all the latest list, visit Jenkins Plugin Index and search for Azure. Например, для развертывания доступны следующие подключаемые модули:For example, the following plugins are available for deployment:

Вопросы масштабируемостиScalability considerations

Для поддержки очень больших рабочих нагрузок предусмотрено масштабирование Jenkins.Jenkins can scale to support very large workloads. Эластичные сборки не следует запускать на главном сервере Jenkins.For elastic builds, do not run builds on the Jenkins master server. Вместо этого перенесите задачи сборки на агенты Jenkins, которые можно масштабировать при необходимости.Instead, offload build tasks to Jenkins agents, which can be elastically scaled in and out as need. Есть два варианта масштабирования агентов.Consider two options for scaling agents:

Масштабирование виртуальных машин обычно дороже, чем масштабирование контейнеров.Virtual machines generally cost more to scale than containers. Но если для масштабирования нужно использовать контейнеры, их нужно применять и в процессе сборки.To use containers for scaling, however, your build process must run with containers.

Кроме того, в службе хранилища Azure можно предоставлять общий доступ к артефактам сборки, которые могут использовать другие агенты сборки на следующем этапе конвейера.Also, use Azure Storage to share build artifacts that may be used in the next stage of the pipeline by other build agents.

Масштабирование сервера JenkinsScaling the Jenkins server

Размер виртуальной машины с сервером Jenkins можно увеличивать и уменьшать (масштабировать).You can scale the Jenkins server VM up or down by changing the VM size. В шаблоне решения для Jenkins в Azure по умолчанию указан размер DS2 v2 (с двумя процессорами и 7 ГБ памяти).The solution template for Jenkins on Azure specifies the DS2 v2 size (with two CPUs, 7 GB) by default. Этот размер подходит для небольших и средних рабочих нагрузок команды сотрудников.This size handles a small to medium team workload. Размер виртуальной машины можно изменить, выбрав другой вариант при сборке сервера.Change the VM size by choosing a different option when building out the server.

Выбор правильного размера сервера зависит от объема ожидаемой рабочей нагрузки.Selecting the correct server size depends on the size of the expected workload. Сообщество Jenkins составило и обновляет руководство по выбору размера, которое поможет определить конфигурацию, максимально соответствующую вашим требованиям.The Jenkins community maintains a selection guide to help identify the configuration that best meets your requirements. В Azure доступны разные размеры виртуальных машин Linux, подходящие для любых требований.Azure offers many sizes for Linux VMs to meet any requirements. Дополнительные сведения о масштабировании главного сервера Jenkins см. в рекомендациях сообщества Jenkins.For more information about scaling the Jenkins master, refer to the Jenkins community of best practices, which also includes details about scaling Jenkins master.

Вопросы доступностиAvailability considerations

Доступность в контексте сервера Jenkins означает возможность восстановления сведений о состоянии, связанных с рабочим процессом, например результатов теста, созданных библиотек или других артефактов.Availability in the context of a Jenkins server means being able to recover any state information associated with your workflow, such as test results, libraries you have created, or other artifacts. Если сервер Jenkins выходит из строя, для восстановления рабочего процесса важно поддерживать критическое состояние рабочего процесса или артефактов.Critical workflow state or artifacts must be maintained to recover the workflow if the Jenkins server goes down. Для оценки требований к доступности рекомендуем использовать две общие метрики:To assess your availability requirements, consider two common metrics:

  • Целевое время восстановления (RTO) указывает, как долго вы сможете обходиться без сервера Jenkins.Recovery Time Objective (RTO) specifies how long you can go without Jenkins.

  • Целевая точка восстановления (RPO) указывает, какой объем данных допустимо потерять, если нарушение работы служб повлияет на функционирование сервера Jenkins.Recovery Point Objective (RPO) indicates how much data you can afford to lose if a disruption in service affects Jenkins.

На практике под терминами RTO и RPO подразумеваются избыточность и резервное копирование.In practice, RTO and RPO imply redundancy and backup. Доступность означает не восстановление оборудования — эта возможность предоставляется в Azure, — а поддержание состояния сервера Jenkins.Availability is not a question of hardware recovery — that is part of Azure — but rather ensuring you maintain the state of your Jenkins server. Корпорация Майкрософт предлагает соглашение об уровне обслуживания (SLA) для отдельных экземпляров VM.Microsoft offers a service level agreement (SLA) for single VM instances. Если это соглашение не соответствует вашим требованиям ко времени непрерывной работы, разработайте план аварийного восстановления или выполните развертывание с несколькими главными серверами Jenkins (не рассматривается в этом документе).If this SLA doesn't meet your uptime requirements, make sure you have a plan for disaster recovery, or consider using a multi-master Jenkins server deployment (not covered in this document).

На седьмом шаге развертывания рекомендуем воспользоваться скриптами аварийного восстановления, чтобы создать учетную запись хранения Azure с управляемыми дисками для сохранения состояния сервера Jenkins.Consider using the disaster recovery scripts in step 7 of the deployment to create an Azure Storage account with managed disks to store the Jenkins server state. Если сервер Jenkins выйдет из строя, его можно будет восстановить до состояния, сохраненного в этой отдельной учетной записи хранения.If Jenkins goes down, it can be restored to the state stored in this separate storage account.

Замечания по безопасностиSecurity considerations

Используйте описанные ниже методы для обеспечения безопасности главного сервера Jenkins, так как в своем первоначальном состоянии он не является защищенным.Use the following approaches to help lock down security on a basic Jenkins server, since in its basic state, it is not secure.

  • Настройте параметры безопасного входа на сервер Jenkins.Set up a secure way to log into the Jenkins server. В этой архитектуре используется HTTP и общедоступный IP-адрес. Однако протокол HTTP не является безопасным по умолчанию.This architecture uses HTTP and has a public IP, but HTTP is not secure by default. Рекомендуем настроить HTTPS на сервере Nginx для безопасного входа.Consider setting up HTTPS on the Nginx server being used for a secure logon.

    Примечание

    При добавлении SSL на сервер создайте правило группы сетевой безопасности для подсети Jenkins, чтобы открыть порт 443.When adding SSL to your server, create a network security group rule for the Jenkins subnet to open port 443. Дополнительные сведения см. в статье Как открыть порты для виртуальной машины Windows с помощью портала Azure.For more information, see How to open ports to a virtual machine with the Azure portal.

  • Конфигурация Jenkins должна запрещать подделку межсайтовых запросов (Manage Jenkins > Configure Global Security (Управление Jenkins > Настройка глобальной безопасности)).Ensure that the Jenkins configuration prevents cross site request forgery (Manage Jenkins > Configure Global Security). Это значение по умолчанию для сервера Microsoft Jenkins.This is the default for Microsoft Jenkins Server.

  • Настройте доступ только для чтения к информационной панели Jenkins с помощью подключаемого модуля стратегии авторизации матрицы.Configure read-only access to the Jenkins dashboard by using the Matrix Authorization Strategy Plugin.

  • Установите подключаемый модуль учетных данных Azure, чтобы с помощью Key Vault управлять секретами для ресурсов Azure, агентов в конвейере и компонентов сторонних разработчиков.Install the Azure Credentials plugin to use Key Vault to handle secrets for the Azure assets, the agents in the pipeline, and third-party components.

  • Используйте RBAC, чтобы ограничить доступ субъекта-службы до минимума, необходимого для выполнения заданий.Use RBAC to restrict the access of the service principal to the minimum required to run the jobs. Это поможет ограничить объем ущерба в случае, если заданием воспользуются мошенники.This helps limit the scope of damage from a rogue job.

Заданиям Jenkins часто требуются секреты для доступа к службам Azure с обязательной авторизацией (например, к Службе контейнеров Azure).Jenkins jobs often require secrets to access Azure services that require authorization, such as Azure Container Service. Для безопасного управления этими секретами используйте Key Vault совместно с подключаемым модулем учетных данных Azure .Use Key Vault along with the Azure Credential plugin to manage these secrets securely. В Key Vault можно хранить учетные данные, пароли, маркеры и другие секретные данные субъектов-служб.Use Key Vault to store service principal credentials, passwords, tokens, and other secrets.

Благодаря центру безопасности Azure можно получить полное представление о состоянии безопасности ваших ресурсов Azure.To get a central view of the security state of your Azure resources, use Azure Security Center. Центр безопасности отслеживает потенциальные проблемы безопасности, а также обеспечивает полное представление о состоянии системы безопасности развертывания.Security Center monitors potential security issues and provides a comprehensive picture of the security health of your deployment. Центр безопасности настраивается на уровне подписки Azure.Security Center is configured per Azure subscription. Включите сбор данных о безопасности, как описано в кратком руководстве по использованию центра безопасности Azure.Enable security data collection as described in the Azure Security Center quick start guide. Когда сбор данных включен, центр безопасности автоматически проверяет все виртуальные машины, созданные для этой подписки.When data collection is enabled, Security Center automatically scans any virtual machines created under that subscription.

Сервер Jenkins оснащен собственной системой управления пользователями, а участники сообщества Jenkins разработали рекомендации по защите экземпляра Jenkins в Azure.The Jenkins server has its own user management system, and the Jenkins community provides best practices for securing a Jenkins instance on Azure. Эти рекомендации реализованы в шаблоне решения для Jenkins в Azure.The solution template for Jenkins on Azure implements these best practices.

Вопросы управляемостиManageability considerations

Развернутые ресурсы Azure можно упорядочить с помощью групп ресурсов.Use resource groups to organize the Azure resources that are deployed. Развертывание производственных сред и сред разработки/тестирования в отдельных группах ресурсов, чтобы можно было отслеживать ресурсы каждой среды и сворачивать затраты на выставление счетов группой ресурсов.Deploy production environments and development/test environments in separate resource groups, so that you can monitor each environment's resources and roll up billing costs by resource group. Можно также удалить ресурсы в виде набора, что очень удобно для тестирования развернутых служб.You can also delete resources as a set, which is very useful for test deployments.

Azure предоставляет несколько функций для мониторинга и диагностики во всей инфраструктуре.Azure provides several features for monitoring and diagnostics of the overall infrastructure. Для наблюдения за загрузкой ЦП в этой архитектуре развернута служба Azure Monitor.To monitor CPU usage, this architecture deploys Azure Monitor. Например, вы можете использовать Azure Monitor, чтобы отслеживать загрузку ЦП и настроить отправку уведомлений в случае, если этот показатель превысит 80 %.For example, you can use Azure Monitor to monitor CPU utilization, and send a notification if CPU usage exceeds 80 percent. (Высокое использование процессора указывает на то, что вы можете увеличить масштабирование сервера Jenkins VM.) Вы также можете уведомить указанного пользователя, если VM выходит из строя или становится недоступным.(High CPU usage indicates that you might want to scale up the Jenkins server VM.) You can also notify a designated user if the VM fails or becomes unavailable.

СообществаCommunities

Участники сообществ отвечают на вопросы и помогают настроить успешное развертывание.Communities can answer questions and help you set up a successful deployment. Рассмотрим следующее:Consider the following:

Дополнительные советы и рекомендации от сообщества Jenkins см. здесь.For more best practices from the Jenkins community, visit Jenkins best practices.

Развертывание решенияDeploy the solution

Для развертывания этой архитектуры выполните следующие действия, чтобы установить шаблон решения для Jenkins в Azure. Затем установите скрипты для настройки мониторинга и аварийного восстановления, как описано далее.To deploy this architecture, follow the steps below to install the solution template for Jenkins on Azure, then install the scripts that set up monitoring and disaster recovery in the steps below.

Предварительные требованияPrerequisites

  • Для этой эталонной архитектуры требуется подписка Azure.This reference architecture requires an Azure subscription.
  • Для создания субъекта-службы Azure необходимы права администратора для клиента Azure AD, связанного с развернутым сервером Jenkins.To create an Azure service principal, you must have admin rights to the Azure AD tenant that is associated with the deployed Jenkins server.
  • В этих инструкциях предполагается, что администратор Jenkins является также пользователем Azure по меньшей мере с правами участника.These instructions assume that the Jenkins administrator is also an Azure user with at least Contributor privileges.

Шаг 1. Развертывание сервера JenkinsStep 1: Deploy the Jenkins server

  1. Откройте изображение Azure Marketplace для Jenkins в своем веб-браузере и выберите GET IT NOW с левой стороны страницы.Open the Azure Marketplace image for Jenkins in your web browser and select GET IT NOW from the left side of the page.

  2. Просмотрите сведения о ценах и выберите Продолжить, а затем нажмите Создание, чтобы настроить сервер Jenkins на портале Azure.Review the pricing details and select Continue, then select Create to configure the Jenkins server in the Azure portal.

Подробные инструкции см. в статье Создание сервера Jenkins на виртуальной машине Azure под управлением Linux на портале Azure.For detailed instructions, see Create a Jenkins server on an Azure Linux VM from the Azure portal. Для этой архитектуры достаточно запустить сервер от имени администратора.For this reference architecture, it is sufficient to get the server up and running with the admin logon. Затем можно подготовить его для использования других служб.Then you can provision it to use various other services.

Шаг 2. Настройка единого входаStep 2: Set up SSO

Этот шаг находится в ведении администратора Jenkins, который также должен иметь учетную запись пользователя в каталоге Azure AD подписки и должен быть назначен рольм автора.The step is run by the Jenkins administrator, who must also have a user account in the subscription's Azure AD directory and must be assigned the Contributor role.

Используйте подключаемый модуль Azure Active Directory из центра обновления Jenkins на сервере Jenkins и следуйте инструкциям по настройке единого входа.Use the Azure AD Plugin from the Jenkins Update Center in the Jenkins server and follow the instructions to set up SSO.

Шаг 3. Подготовка сервера Jenkins с помощью подключаемого модуля агента виртуальной машины AzureStep 3: Provision Jenkins server with Azure VM Agent plugin

Этот шаг выполняет администратор Jenkins, который настраивает уже установленный подключаемый модуль агента виртуальной машины Azure.The step is run by the Jenkins administrator to set up the Azure VM Agent plugin, which is already installed.

Чтобы настроить подключаемый модуль, выполните эти действия.Follow these steps to configure the plugin. В учебнике по настройке основ службы для плагина можно ознакомиться с помощью развертывания ВИЗов, чтобы удовлетворить спрос с агентами Azure VM.For a tutorial about setting up service principals for the plugin, see Scale your Jenkins deployments to meet demand with Azure VM agents.

Шаг 4. Подготовка сервера Jenkins с помощью службы хранилища AzureStep 4: Provision Jenkins server with Azure Storage

Этот шаг выполняет администратор Jenkins, который настраивает установленный подключаемый модуль.The step is run by the Jenkins administrator, who sets up the Windows Azure Storage Plugin, which is already installed.

Чтобы настроить подключаемый модуль, выполните эти действия.Follow these steps to configure the plugin.

Шаг 5. Подготовка сервера Jenkins с помощью подключаемого модуля учетных данных AzureStep 5: Provision Jenkins server with Azure Credential plugin

Этот шаг выполняет администратор Jenkins, который настраивает уже установленный подключаемый модуль учетных данных Azure.The step is run by the Jenkins administrator to set up the Azure Credential plugin, which is already installed.

Чтобы настроить подключаемый модуль, выполните эти действия.Follow these steps to configure the plugin.

Шаг 6. Подготовка сервера Jenkins для наблюдения с помощью Azure MonitorStep 6: Provision Jenkins server for monitoring by the Azure Monitor Service

Чтобы настроить мониторинг для сервера Jenkins, следуйте инструкциям из статьи Создание оповещений метрик в Azure Monitor для служб Azure с помощью портала Azure.To set up monitoring for your Jenkins server, follow the instructions in Create metric alerts in Azure Monitor for Azure services.

Шаг 7: Предоставление сервера Jenkins управляемыми дисками для аварийного восстановленияStep 7: Provision Jenkins server with managed disks for disaster recovery

Группа продукта Microsoft Jenkins разработала скрипты аварийного восстановления, с помощью которых можно создать управляемый диск для сохранения состояния Jenkins.The Microsoft Jenkins product group has created disaster recovery scripts that build a managed disk used to save the Jenkins state. Если сервер выйдет из строя, можно будет восстановить его последнее состояние.If the server goes down, it can be restored to its latest state.

Скачайте и запустите скрипты аварийного восстановления из GitHub.Download and run the disaster recovery scripts from GitHub.

Вы можете просмотреть следующий пример сценария Azure, в котором описываются конкретные решения, использующие некоторые из этих технологий:You may wish to review the following Azure example scenario that demonstrates specific solutions using some of the same technologies: