Skip to main content

Установка GitHub Enterprise Server on Azure

Чтобы установить GitHub Enterprise Server на Azure, необходимо развернуть на оптимизированный по памяти экземпляр с поддержкой премиум-хранилища.

Вы можете развернуть GitHub Enterprise Server на глобальном Azure или Azure Government.

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

  • Необходим файл лицензии GitHub Enterprise. Дополнительные сведения см. в разделе [AUTOTITLE и Настройка пробной версии GitHub Enterprise Server](/billing/concepts/enterprise-billing/ghes-license-files).
  • У вас должен быть аккаунт Azure, способный создавать новые машины. Для получения дополнительной информации смотрите сайт Microsoft Azure.
  • Большинство действий, необходимых для запуска виртуальной машины (VM), также могут выполняться через Azure Portal. Однако мы рекомендуем установить интерфейс командной строки Azure (CLI) для начальной настройки. Примеры использования Azure CLI 2.0 приведены ниже. Для получения дополнительной информации смотрите руководство Azure Install Azure CLI 2.0.

Рекомендации по оборудованию

Минимальные рекомендуемые требования

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

Лицензии пользователейВиртуальные ЦП x86-64ПамятьКорневое хранилищеПодключенное хранилище (данные)ОПЕРАЦИЙ ВВОДА-ВЫВОДА
Пробная версия, демонстрационная версия или 10 облегченных пользователей432 Гб400 ГБ500 ГБ600
До 1000848 ГБ400 ГБ500 ГБ3000
1000 до 30001664 ГБ400 ГБ1000 ГБ6000
От 3000 до 500032128 ГБ400 ГБ1500 ГБ9000
5 000 до 8 00048256 ГБ400 ГБ3000 ГБ12 000
от 8000 до 10000 и выше64512 ГБ400 ГБ5000 ГБ15000

Если вы планируете включить GitHub Actions или GitHub Code Security для пользователей экземпляра, требуются дополнительные ресурсы.

  • GitHub Actions — увеличьте объем ЦП и памяти по крайней мере на 25 %
  • GitHub Code Security — увеличьте объем ЦП и памяти по крайней мере на 25 %

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

Дополнительные сведения об этих требованиях см. в разделе Начало работы с GitHub Actions for GitHub Enterprise Server.

Если вы планируете включить Container registry для пользователей экземпляра, потребуется больше ресурсов. Дополнительные сведения об этих требованиях см. в разделе Начало работы с пакетами GitHub для вашего предприятия.

Дополнительные сведения о настройке ресурсов для существующего экземпляра см. в разделе [AUTOTITLE и Увеличение емкости хранилища](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-cpu-or-memory-resources).

Хранилище

Рекомендуется использовать высокопроизводительный SSD с высокой скоростью операций ввода-вывода в секунду (IOPS) и низкой задержкой для GitHub Enterprise Server. Рабочие нагрузки интенсивно используют ввод-вывод. Если используется гипервизор без операционной системы, рекомендуется напрямую подключить диск или использовать диск из сети хранения данных (SAN).

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

Предупреждение

Корневое хранилище ссылается на общий размер корневого диска экземпляра. При загрузке экземпляра на корневая файловая система появится 200 ГБ. Оставшийся 200 ГБ зарезервирован для обновлений. Дополнительные сведения см. в разделе Обзор системы.

Чтобы настроить GitHub Actions, необходимо предоставить внешнее хранилище BLOB-объектов. Дополнительные сведения см. в разделе Начало работы с GitHub Actions for GitHub Enterprise Server.

Доступное пространство в корневой файловой системе будет составлять 50 % от общего размера диска. Можно изменить размер корневого диска экземпляра, создав новый экземпляр или используя существующий. Дополнительные сведения см. в разделе [AUTOTITLE и Обзор системы](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/increasing-storage-capacity).

ЦП и память

Ресурсы ЦП и памяти, необходимые GitHub Enterprise Server, зависят от уровней действий пользователей, автоматизации и интеграции.

Все виртуальные машины, подготовленные для ваш экземпляр GitHub Enterprise Server, должны использовать архитектуру ЦП x86-64. Другие архитектуры не поддерживаются, например AArch64 или arm64.

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

При увеличении ресурсов ЦП GitHub рекомендует добавлять не менее 6,5 ГБ памяти для каждого виртуального ЦП (до 16 виртуальных ЦП), которые вы подготавливаете для экземпляра. Если используется более 16 виртуальных ЦП, вам не нужно добавлять 6,5 ГБ памяти для каждого виртуального ЦП, но необходимо отслеживать экземпляр, чтобы обеспечить достаточный объем памяти.

Предупреждение

Мы рекомендуем пользователям настраивать события веб-перехватчика для уведомления внешних систем о действиях на GitHub Enterprise Server. Автоматические проверки изменений или опрос будут негативно влиять на производительность и масштабируемость экземпляра. Дополнительные сведения см. в разделе Сведения о веб-перехватчиках.

Дополнительные сведения о мониторинге емкости и производительности GitHub Enterprise Serverсм. в разделе Мониторинг экземпляра.

Ресурсы ЦП или памяти экземпляра можно увеличить. Дополнительные сведения см. в разделе Увеличение ресурсов ЦП или памяти.

Определение типа виртуальной машины

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

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

Для устройства GitHub Enterprise Server требуется диск данных хранилища класса Premium, который поддерживается на любой виртуальной машине Azure, поддерживающей хранилище класса Premium. Типы виртуальных машин Azure с суффиксом s поддерживают хранилище класса Premium. Дополнительные сведения см. в статье "Какие типы дисков доступны в Azure" и хранилище Azure уровня "Премиум": проектирование для повышения производительности в документации По Azure.

GitHub рекомендует оптимизированную для памяти виртуальную машину для GitHub Enterprise Server. Дополнительные сведения см. в статье об оптимизированных для памяти размерах виртуальных машин в документации Azure.

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

Создание виртуальной машины GitHub Enterprise Server

Чтобы создать экземпляр, необходимо импортировать образ GitHub Enterprise Server на виртуальную машину и подключить дополнительный том хранилища для данных экземпляра. Дополнительные сведения см. в разделе "Рекомендации по оборудованию".

  1. Найдите самый последний образ устройства GitHub Enterprise Server. Дополнительные сведения о команде vm image list см az vm image list . в документации Майкрософт.

    az vm image list --all -f GitHub-Enterprise | grep '"urn": "GitHub:' | sort -V
    
  2. Создайте виртуальную машину с помощью найденного образа устройства. Дополнительные сведения см. в статье az vm create в документации Майкрософт.

    Введите опции для имени вашей виртуальной машины, группы ресурсов, размера виртуальной машины, названия предпочтительного региона Azure, названия виртуальной машины образа устройства, указанной на предыдущем шаге, и SKU хранения для премиум-хранилища. Дополнительные сведения о группах ресурсов см. в документации Майкрософт.

    az vm create -n VM_NAME -g RESOURCE_GROUP --size VM_SIZE -l REGION --image APPLIANCE_IMAGE_NAME --storage-sku Premium_LRS
    
  3. Настройте параметры безопасности на виртуальной машине, чтобы открыть необходимые порты. Рекомендуется выборочно открывать сетевые порты на основе сетевых служб, которые необходимо предоставить для административных и пользовательских целей. Дополнительные сведения см. в статье Сетевые порты и az vm open-port в документации Майкрософт. В таблице ниже приведено описание каждого порта, чтобы определить, какие порты необходимо открыть.

    az vm open-port -n VM_NAME -g RESOURCE_GROUP --port PORT_NUMBER
    

    Эта таблица определяет, для чего используется каждый порт.

    ПортСлужбаDescription
    22SSHДоступ к Git по протоколу SSH. Клонирование, получение и отправка операций в поддерживаемые общедоступные и частные репозитории.
    25SMTPПоддержка SMTP с шифрованием (STARTTLS).
    80HTTPДоступ к веб-приложениям. Все запросы перенаправляются на HTTPS-порт при включении SSL.
    122SSHДоступ к оболочке экземпляра. Порт SSH по умолчанию (22) предназначен для сетевого трафика Git+SSH приложения.
    161/UDPSNMPТребуется для работы протокола мониторинга сети.
    443HTTPSДоступ к веб-приложению и Git по протоколу HTTPS.
    1194/UDPVPNБезопасный туннель сети репликации в конфигурации высокого уровня доступности. Зашифровано с помощью WireGuard.
    8080HTTPВеб-сайт на основе обычного текста Консоль управления. Не требуется, если только SSL не отключен вручную.
    8443HTTPSБезопасный веб-доступ Консоль управления. Требуется для базовой установки и настройки.
    9418GitПростой порт протокола Git. Клонирование и получение операций только в общедоступные репозитории. Взаимодействие по сети без шифрования Если в вашем экземпляре включен частный режим, то открытие этого порта требуется только в том случае, если вы также включили анонимный доступ для чтения Git. Дополнительные сведения см. в разделе Применение политик управления репозиториями в организации.
  4. Создайте и подключите новый диск данных к виртуальной машине и настройте размер на основе количества лицензий пользователя. Дополнительные сведения см. в статье az vm disk attach in the Microsoft documentation.

    Примечание.

    Все управляемые Azure диски, созданные с 10 июня 2017 года, по умолчанию зашифрованы в состоянии покоя с помощью Azure Storage Encryption. Включение Azure Disk Encryption for GitHub Enterprise Server не поддерживается.

    Передайте параметры для имени виртуальной машины (например, ghe-acme-corp), группы ресурсов, номера SKU премиум-хранилища, размера диска (например, 200) и имени полученного виртуального жесткого диска.

    az vm disk attach --vm-name VM_NAME -g RESOURCE_GROUP --sku Premium_LRS --new -z SIZE_IN_GB --name ghe-data.vhd --caching ReadWrite
    

    Примечание.

    Для непроизводственных экземпляров достаточной пропускной способности ввода-вывода рекомендуемый минимальный размер диска — 150 ГиБ с включенным кэшем чтения и записи (--caching ReadWrite).

Настройка виртуальной машины GitHub Enterprise Server

Чтобы настроить экземпляр, необходимо подтвердить состояние экземпляра, отправить файл лицензии, задать корневой пароль Консоль управления, настроить параметры экземпляра и перезапустить экземпляр.

Предупреждение

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

  1. Перед настройкой виртуальной машины необходимо дождаться ее перехода в состояние ReadyRole. Проверьте состояние виртуальной машины с помощью команды vm list. Дополнительные сведения см. в разделе az vm list в документации Майкрософт.

    $ az vm list -d -g RESOURCE_GROUP -o table
    > Name    ResourceGroup    PowerState    PublicIps     Fqdns    Location    Zones
    > ------  ---------------  ------------  ------------  -------  ----------  -------
    > VM_NAME RESOURCE_GROUP   VM running    40.76.79.202           eastus
    
    

    Примечание.

    Azure не создаёт автоматически запись FQDNS для виртуальной машины. Для получения дополнительной информации смотрите руководство по Azure Создать полностью квалифицированное доменное имя в портале Azure для Linux VM.

    1. Скопируйте общедоступное DNS-имя виртуальной машины и вставьте его в адресную строку веб-браузера.
  2. В командной строке отправьте файл лицензии и задайте пароль консоли управления. Дополнительные сведения см. в разделе Скачивание лицензии для GitHub Enterprise.

  3. В Консоль управления настройте и сохраните нужные параметры. Дополнительные сведения см. в разделе Configuring GitHub Enterprise.

    1. Экземпляр будет перезапущен автоматически.
  4. Нажмите Перейти к экземпляру.

Azure extension features

GitHub Enterprise Server не поддерживает установку функций Azure расширения. Образ GitHub Enterprise Server поставляется с настраиваемым waagent пакетом, который поддерживает только основные функции управления виртуальными машинами и блокирует расширенные функции управления виртуальными машинами.

Чтобы избежать нестабильности системы экземпляра walinuxagent GitHub Enterprise Server служба намеренно выполняется в GitHub Enterprise Server в ограниченном режиме, явно не разрешая агенту устанавливать другие агенты. Функции управления виртуальными машинами, основанные на дополнительных агентах и расширениях, помимо тех, что поставляются с изображением GitHub Enterprise Server, такие как расширение Monitoring Agent для Azure Insights или Azure Backups, не поддерживаются.

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

Дополнительные материалы