Настройка сервера 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
Скачайте текущий выпуск сервера GitHub Enterprise для VMware ESXi/vSphere (OVA) и разверните скачанный шаблон OVA.
Укажите понятное имя для новой виртуальной машины, например GitHubEnterpriseServer. Включать сведения о выпуске в имя виртуальной машины не требуется, так как эти сведения устареют при обновлении экземпляра.
Выберите все значения по умолчанию (сведения, которые нужно изменить позже) и дождитесь импорта OVA.
После импорта настройте конфигурацию оборудования в соответствии с вашими требованиями. В нашем примере потребуется следующая конфигурация.
Ресурс Стандартная установка Стандартная настройка + "бета-функции" (Действия) Число виртуальных ЦП 4 8 Память 32 Гб 61 ГБ Подключаемое хранилище 250 ГБ 300 ГБ Корневое хранилище 200 ГБ 200 ГБ Ваши потребности могут отличаться. Сведения об установке сервера GitHub Enterprise на VMware см. в руководстве по оборудованию. Кроме того см. статью Добавление ресурсов ЦП или памяти для VMware, чтобы настроить конфигурацию оборудования в зависимости от конкретной ситуации.
Настройка экземпляра сервера GitHub Enterprise
После включения новой подготовленной виртуальной машины настройте ее в браузере. Необходимо отправить файл лицензии и задать пароль консоль управления. Обязательно запишите этот пароль в надежном месте, чтобы не забыть.
Рекомендуется выполнить, как минимум, указанные ниже действия.
Отправьте открытый ключ SSH в консоль управления, чтобы можно было получить доступ к административной оболочке по протоколу SSH.
Настройте TLS на своем экземпляре, чтобы можно было использовать сертификат, подписанный доверенным центром сертификации. Примените свои параметры.
Во время перезапуска экземпляра настройте хранилище больших двоичных объектов для GitHub Actions.
Внешнее хранилище BLOB-объектов необходимо для включения GitHub Actions на сервере GitHub Enterprise (в настоящее время доступен в качестве бета-функции). Служба GitHub Actions использует это внешнее хранилище больших двоичных объектов для хранения артефактов и журналов. GitHub Actions на сервере GitHub Enterprise поддерживают хранилище BLOB-объектов Azure в качестве поставщика хранилища (и другие). Необходимо создать новую учетную запись хранения Azure с типом учетной записи хранения BLOBStorage.
После завершения развертывания нового ресурса BLOBStorage сохраните строка подключения (доступно в разделе "Ключи доступа") для последующего использования.
После перезапуска экземпляра создайте учетную запись администратора в экземпляре. Кроме того, обязательно запишите пароль этого пользователя.
Прочие настройки
Чтобы защитить экземпляр при использовании в рабочей среде, рекомендуется выполнить следующие дополнительные действия по установке.
Установите высокий уровень доступности для защиты от следующих угроз:
- Аварийные завершения программного обеспечения (уровень ОС или приложения)
- Сбои оборудования (хранилище, ЦП, ОЗУ и т. д.)
- Сбои системы узла виртуализации
- Обрыв логической или физической структуры сети
Настройте Служебные программы резервного копирования, указав версии моментальных снимков для аварийного восстановления, размещенные в доступном месте, отдельно от основного экземпляра.
Настройте изоляцию поддомена, используя действительный сертификат TLS, чтобы устранить неполадки межсайтовых сценариев и другие связанные уязвимости.
Настройка приложения GitHub Actions runner
На этом этапе у вас должен быть установлен экземпляр сервера GitHub Enterprise с созданной учетной записью администратора. Кроме того, у вас должно быть внешнее хранилище больших двоичных объектов, которое служба GitHub Actions будет использовать для сохранения.
Создайте где-то для выполнения действий GitHub с помощью Решение Azure VMware.
Подготовьте новую виртуальную машину в кластере на основе ОС Ubuntu Server последнего выпуска.
Перейдите к настройке, выбрав вычислительный ресурс, хранилище и совместимость.
Выберите гостевую ОС, которую необходимо установить на виртуальной машине.
После создания виртуальной машины включите ее и подключитесь к ней по SSH.
Установите приложение 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.
Получите доступ к административной оболочке экземпляра сервера GitHub Enterprise по протоколу SSH, а затем выполните указанные ниже команды.
Настройте переменную среды, содержащую строку подключения к вашему хранилищу BLOB-объектов.
export CONNECTION\_STRING="<your connection string from the blob storage step>"
Настройте хранилище Actions.
ghe-config secrets.actions.storage.blob-provider azure ghe-config secrets.actions.storage.azure.connection-string "$CONNECTION\_STRING`
Примените параметры.
ghe-config-apply
Выполните предварительную проверку, чтобы установить больше программного обеспечения, необходимого для действий на GitHub Enterprise Server.
ghe-actions-precheck -p azure -cs "$CONNECTION\_STRING"
Включите действия и повторно примените конфигурацию.
ghe-config app.actions.enabled true ghe-config-apply
Проверьте работоспособность хранилища больших двоичных объектов.
ghe-actions-check -s blob
Должно отобразиться сообщение Blob Storage is healthy (Хранилище BLOB-объектов работоспособно).
Теперь после настройки GitHub Actions включите эту службу для своих пользователей. Войдите в систему своего экземпляра сервера GitHub Enterprise в качестве администратора и в правом верхнем углу любой страницы щелкните .
На левой боковой панели выберите Корпоративный обзор, затем Политики, Действия и выберите вариант, чтобы включить "Действия" для всех организаций.
На вкладке Self-hosted runners (Саморазмещаемые средства выполнения тестов) настройте средство выполнения тестов. В раскрывающемся списке выберите пункт Add new (Добавить), а затем щелкните New runner (Создать средство выполнения тестов). Вы предоставляете набор команд для выполнения.
Чтобы настроить средство выполнения тестов, скопируйте нужную команду. Пример:
./config.sh --url https://10.1.1.26/enterprises/octo-org --token AAAAAA5RHF34QLYBDCHWLJC7L73MA
Скопируйте команду
config.sh
и вставьте ее в сеанс в приложении Actions runner (созданном ранее).С помощью команды
./run.sh
запустите средство выполнения тестов:Совет
Чтобы сделать это средство выполнения тестов доступным для организаций на вашем предприятии, измените в нем параметры доступа для организаций. Вы можете предоставить доступ только ограниченному подмножеству организаций и даже только к определенным репозиториям.
(Необязательно) Настройка GitHub Connect
Несмотря на то, что настройка является необязательной, ее рекомендуется выполнить, если планируется использование действий с открытым кодом, доступных в GitHub.com. Настройка позволяет выполнять сборку проектов других пользователей, ссылаясь на эти многократно используемые действия в рабочих процессах.
Чтобы включить GitHub Connect, выполните действия, описанные в разделе Включение автоматического доступа к действиям GitHub.com с помощью GitHub Connect.
После включения GitHub Connect выберите параметр Сервер для использования действий на 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, можно использовать указанный ниже альтернативный рабочий процесс.
Перейдите к репозиторию вашего экземпляра и добавьте указанный выше рабочий процесс:
.github/workflows/hello-world.yml
На вкладке Действия для репозитория дождитесь выполнения рабочего процесса.
Его можно просмотреть.
Если все успешно завершилось, в репозитории появится новая задача — "Hello World".
Поздравляем! Вы только что выполнили первый рабочий процесс "Действия" на сервере GitHub Enterprise, работающем в частном облаке Решения Azure VMware.
Работая с этой статьей, вы настроили новый экземпляр сервера GitHub Enterprise — саморазмещаемый эквивалент GitHub.com — на базе вашего частного облака Решения Azure VMware. Этот экземпляр поддерживает GitHub Actions и использует Хранилище BLOB-объектов Azure для сохранения журналов и артефактов. Но мы просто попытаемся узнать, что можно сделать с помощью GitHub Actions. Ознакомьтесь со списком "Действий" в GitHub Marketplace или создайте свой собственный.
Следующие шаги
Теперь, когда вы рассмотрели настройку GitHub Enterprise Server в частном облаке Решение Azure VMware, узнайте больше о следующем: