Поделиться через


Настройка сервера GitHub Enterprise в решении VMware для Azure

В этой статье вы узнаете, как настроить GitHub Enterprise Server , локальную версию GitHub.com в частном облаке Решение Azure VMware. Этот сценарий охватывает экземпляр сервера GitHub Enterprise, который может обслуживать до 3000 разработчиков, выполняющих до 25 заданий в минуту в GitHub Actions. Описывается установка (на момент написания статьи) предварительных версий функций, таких как GitHub Actions. Чтобы выполнить настройку в соответствии с индивидуальными потребностями, ознакомьтесь с требованиями, приведенными в разделе Установка сервера GitHub Enterprise на VMware.

Подготовка к работе

Для сервера GitHub Enterprise требуется действительный лицензионный ключ. Вы можете зарегистрироваться для пробной лицензии. Если вы хотите расширить возможности GitHub Enterprise Server через интеграцию, проверьте, имеет ли вы право на бесплатную лицензию разработчика на пять мест. Примените эту лицензию в партнерской программе GitHub.

Установка сервера GitHub Enterprise на VMware

  1. Скачайте текущий выпуск сервера GitHub Enterprise для VMware ESXi/vSphere (OVA) и разверните скачанный шаблон OVA.

    Снимок экрана, на котором показаны параметры установки сервера GitHub Enterprise Server в VMware.

    Снимок экрана, на котором показан пункт меню

  2. Укажите понятное имя для новой виртуальной машины, например GitHubEnterpriseServer. Включать сведения о выпуске в имя виртуальной машины не требуется, так как эти сведения устареют при обновлении экземпляра.

  3. Выберите все значения по умолчанию (сведения, которые нужно изменить позже) и дождитесь импорта OVA.

  4. После импорта настройте конфигурацию оборудования в соответствии с вашими требованиями. В нашем примере потребуется следующая конфигурация.

    Ресурс Стандартная установка Стандартная настройка + "бета-функции" (Действия)
    Число виртуальных ЦП 4 8
    Память 32 Гб 61 ГБ
    Подключаемое хранилище 250 ГБ 300 ГБ
    Корневое хранилище 200 ГБ 200 ГБ

    Ваши потребности могут отличаться. Сведения об установке сервера GitHub Enterprise на VMware см. в руководстве по оборудованию. Кроме того см. статью Добавление ресурсов ЦП или памяти для VMware, чтобы настроить конфигурацию оборудования в зависимости от конкретной ситуации.

Настройка экземпляра сервера GitHub Enterprise

Снимок экрана, на котором показано окно установки GitHub Enterprise.

После включения новой подготовленной виртуальной машины настройте ее в браузере. Необходимо отправить файл лицензии и задать пароль консоль управления. Обязательно запишите этот пароль в надежном месте, чтобы не забыть.

Снимок экрана, на котором показан экран доступа к GitHub Enterprise по протоколу SSH, используемому для добавления нового ключа SSH.

Рекомендуется выполнить, как минимум, указанные ниже действия.

  1. Отправьте открытый ключ SSH в консоль управления, чтобы можно было получить доступ к административной оболочке по протоколу SSH.

  2. Настройте TLS на своем экземпляре, чтобы можно было использовать сертификат, подписанный доверенным центром сертификации. Примените свои параметры.

    Снимок экрана, на котором показаны параметры, применяемые к экземпляру.

  3. Во время перезапуска экземпляра настройте хранилище больших двоичных объектов для GitHub Actions.

    Внешнее хранилище BLOB-объектов необходимо для включения GitHub Actions на сервере GitHub Enterprise (в настоящее время доступен в качестве бета-функции). Служба GitHub Actions использует это внешнее хранилище больших двоичных объектов для хранения артефактов и журналов. GitHub Actions на сервере GitHub Enterprise поддерживают хранилище BLOB-объектов Azure в качестве поставщика хранилища (и другие). Необходимо создать новую учетную запись хранения Azure с типом учетной записи хранения BLOBStorage.

    Снимок экрана, на котором показаны сведения об экземпляре, которые необходимо указать для подготовки учетной записи службы Хранилища BLOB-объектов Azure.

  4. После завершения развертывания нового ресурса BLOBStorage сохраните строка подключения (доступно в разделе "Ключи доступа") для последующего использования.

  5. После перезапуска экземпляра создайте учетную запись администратора в экземпляре. Кроме того, обязательно запишите пароль этого пользователя.

    Снимок экрана, на котором показан процесс создания учетной записи администратора для GitHub Enterprise.

Прочие настройки

Чтобы защитить экземпляр при использовании в рабочей среде, рекомендуется выполнить следующие дополнительные действия по установке.

  1. Установите высокий уровень доступности для защиты от следующих угроз:

    • Аварийные завершения программного обеспечения (уровень ОС или приложения)
    • Сбои оборудования (хранилище, ЦП, ОЗУ и т. д.)
    • Сбои системы узла виртуализации
    • Обрыв логической или физической структуры сети
  2. Настройте Служебные программы резервного копирования, указав версии моментальных снимков для аварийного восстановления, размещенные в доступном месте, отдельно от основного экземпляра.

  3. Настройте изоляцию поддомена, используя действительный сертификат TLS, чтобы устранить неполадки межсайтовых сценариев и другие связанные уязвимости.

Настройка приложения GitHub Actions runner

На этом этапе у вас должен быть установлен экземпляр сервера GitHub Enterprise с созданной учетной записью администратора. Кроме того, у вас должно быть внешнее хранилище больших двоичных объектов, которое служба GitHub Actions будет использовать для сохранения.

Создайте где-то для выполнения действий GitHub с помощью Решение Azure VMware.

  1. Подготовьте новую виртуальную машину в кластере на основе ОС Ubuntu Server последнего выпуска.

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

  2. Перейдите к настройке, выбрав вычислительный ресурс, хранилище и совместимость.

  3. Выберите гостевую ОС, которую необходимо установить на виртуальной машине.

    Снимок экрана, на котором показано семейство и версия гостевой ОС, которую необходимо установить на виртуальной машине.

  4. После создания виртуальной машины включите ее и подключитесь к ней по SSH.

  5. Установите приложение Actions runner, которое запускает задание из рабочего процесса GitHub Actions. Найдите и скачайте последний выпуск Linux x64 для приложения Actions runner на странице выпуска или запустите следующий краткий сценарий. Для этого скрипта требуется, чтобы на виртуальной машине были установлены как curl и jq.

    LATEST\_RELEASE\_ASSET\_URL=$( curl https://api.github.com/repos/actions/runner/releases/latest | \
    
    jq -r '.assets | .[] | select(.name | match("actions-runner-linux-arm64")) | .url' )
    
    DOWNLOAD\_URL=$( curl $LATEST\_RELEASE\_ASSET\_URL | \
    
    jq -r '.browser\_download\_url' )
    
    curl -OL $DOWNLOAD\_URL
    

    Теперь у вас должен быть файл локально на виртуальной машине, actions-runner-linux-arm64-*.tar.gz. Распакуйте этот архив в локальной файловой системе:

    tar xzf actions-runner-linux-arm64-\*.tar.gz
    

    В результате в локальной среде будет распаковано несколько файлов, в том числе config.sh и скрипт run.sh.

Включение GitHub Actions

Настройте и включите GitHub Actions в экземпляре сервера GitHub Enterprise.

  1. Получите доступ к административной оболочке экземпляра сервера GitHub Enterprise по протоколу SSH, а затем выполните указанные ниже команды.

  2. Настройте переменную среды, содержащую строку подключения к вашему хранилищу BLOB-объектов.

    export CONNECTION\_STRING="<your connection string from the blob storage step>"
    
  3. Настройте хранилище Actions.

    ghe-config secrets.actions.storage.blob-provider azure
    
    ghe-config secrets.actions.storage.azure.connection-string "$CONNECTION\_STRING`      
    
  4. Примените параметры.

    ghe-config-apply
    
  5. Выполните предварительную проверку, чтобы установить больше программного обеспечения, необходимого для действий на GitHub Enterprise Server.

    ghe-actions-precheck -p azure -cs "$CONNECTION\_STRING"
    
  6. Включите действия и повторно примените конфигурацию.

    ghe-config app.actions.enabled true
    
    ghe-config-apply      
    
  7. Проверьте работоспособность хранилища больших двоичных объектов.

    ghe-actions-check -s blob
    

    Должно отобразиться сообщение Blob Storage is healthy (Хранилище BLOB-объектов работоспособно).

  8. Теперь после настройки GitHub Actions включите эту службу для своих пользователей. Войдите в систему своего экземпляра сервера GitHub Enterprise в качестве администратора и в правом верхнем углу любой страницы щелкните .

  9. На левой боковой панели выберите Корпоративный обзор, затем Политики, Действия и выберите вариант, чтобы включить "Действия" для всех организаций.

  10. На вкладке Self-hosted runners (Саморазмещаемые средства выполнения тестов) настройте средство выполнения тестов. В раскрывающемся списке выберите пункт Add new (Добавить), а затем щелкните New runner (Создать средство выполнения тестов). Вы предоставляете набор команд для выполнения.

  11. Чтобы настроить средство выполнения тестов, скопируйте нужную команду. Пример:

    ./config.sh --url https://10.1.1.26/enterprises/octo-org --token AAAAAA5RHF34QLYBDCHWLJC7L73MA
    
  12. Скопируйте команду config.sh и вставьте ее в сеанс в приложении Actions runner (созданном ранее).

    Снимок экрана, на котором показан процесс регистрации и параметры средства выполнения тестов GitHub Actions.

  13. С помощью команды ./run.sh запустите средство выполнения тестов:

    Совет

    Чтобы сделать это средство выполнения тестов доступным для организаций на вашем предприятии, измените в нем параметры доступа для организаций. Вы можете предоставить доступ только ограниченному подмножеству организаций и даже только к определенным репозиториям.

    Снимок экрана, на котором показано, как изменить параметры доступа для саморазмещенных средств выполнения тестов.

(Необязательно) Настройка GitHub Connect

Несмотря на то, что настройка является необязательной, ее рекомендуется выполнить, если планируется использование действий с открытым кодом, доступных в GitHub.com. Настройка позволяет выполнять сборку проектов других пользователей, ссылаясь на эти многократно используемые действия в рабочих процессах.

Чтобы включить GitHub Connect, выполните действия, описанные в разделе Включение автоматического доступа к действиям GitHub.com с помощью GitHub Connect.

После включения GitHub Connect выберите параметр Сервер для использования действий на GitHub.com при выполнении рабочего процесса.

Снимок экрана, на котором показано, каким образом сервер может использовать действия из GitHub.com при включенном параметре выполнения рабочих процессов.

Настройка и запуск первого рабочего процесса

Теперь, когда Действия и GitHub Connect настроены, воспользуемся результатами нашей работы. Ниже приведен пример рабочего процесса, который ссылается на отличное действие octokit/request-action, которое позволяет нам "создать скрипт" для GitHub с помощью API GitHub на основе GitHub Actions.

В этом базовом рабочем процессе используйте octokit/request-action для открытия проблемы на GitHub с помощью API.

Снимок экрана с примером рабочего процесса.

Примечание.

GitHub.com размещает действие, но при его выполнении на сервере GitHub Enterprise он автоматически использует API сервера GitHub Enterprise.

Если вы не хотите включать GitHub Connect, можно использовать указанный ниже альтернативный рабочий процесс.

Снимок экрана, на котором показан пример альтернативного рабочего процесса.

  1. Перейдите к репозиторию вашего экземпляра и добавьте указанный выше рабочий процесс: .github/workflows/hello-world.yml

    Снимок экрана, на котором показан еще один пример альтернативного рабочего процесса.

  2. На вкладке Действия для репозитория дождитесь выполнения рабочего процесса.

    Снимок экрана, на котором показан пример выполненного рабочего процесса.

    Его можно просмотреть.

    Снимок экрана, на котором показан рабочий процесс, обрабатываемый средством выполнения тестов.

Если все успешно завершилось, в репозитории появится новая задача — "Hello World".

Снимок экрана, на котором показана проблема Hello world в GitHub, созданная с помощью github-actions

Поздравляем! Вы только что выполнили первый рабочий процесс "Действия" на сервере GitHub Enterprise, работающем в частном облаке Решения Azure VMware.

Работая с этой статьей, вы настроили новый экземпляр сервера GitHub Enterprise — саморазмещаемый эквивалент GitHub.com — на базе вашего частного облака Решения Azure VMware. Этот экземпляр поддерживает GitHub Actions и использует Хранилище BLOB-объектов Azure для сохранения журналов и артефактов. Но мы просто попытаемся узнать, что можно сделать с помощью GitHub Actions. Ознакомьтесь со списком "Действий" в GitHub Marketplace или создайте свой собственный.

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

Теперь, когда вы рассмотрели настройку GitHub Enterprise Server в частном облаке Решение Azure VMware, узнайте больше о следующем: