Puedes implementar GitHub Enterprise Server en Azure mundial o Azure Government.
Requisitos previos
- Debes tener un archivo de licencia de GitHub Enterprise. Para obtener más información, vea «Configurar una prueba del servidor de GitHub Enterprise» y «Acerca de las licencias para GitHub Enterprise».
- Debes tener una cuenta Azure capaz de abastecer nuevas máquinas. Para obtener más información, consulte el sitio web de Microsoft Azure.
- La mayoría de las acciones necesarias para lanzar tu máquina virtual (VM) también se podrían realizar por medio del Portal Azure. Sin embargo, recomendamos instalar la interfaz de la línea de comando de Azure (CLI) para la configuración inicial. Abajo se incluyen ejemplos que utilizan Azure CLI 2.0. Para obtener más información, consulta la guía de Azure Instalación de CLI de Azure 2.0.
Consideraciones de hardware
Requisitos mínimos
Te recomendamos usar otras configuraciones de hardware en función de la cantidad de licencias de usuario que tengas para tu instancia de GitHub Enterprise Server. Si aprovisionaste más recursos que los de los requisitos mínimos, tu instancia funcionrá y escalará mejor.
Licencias de usuario | x86-64 vCPUs | Memoria | Almacenamiento raíz | Almacenamiento adjunto (datos) |
---|---|---|---|---|
Prueba, Demo o 10 usuarios no frecuentes | 4 | 32 GB | 200 GB | 150 GB |
10-3000 | 8 | 48 GB | 200 GB | 300 GB |
3000-5000 | 12 | 64 GB | 200 GB | 500 GB |
5000-8000 | 16 | 96 GB | 200 GB | 750 GB |
8000-10000+ | 20 | 160 GB | 200 GB | 1000 GB |
Si planeas habilitar las GitHub Actions para los usuarios de tu instancia, se necesitarán más recursos.
Para más información sobre estos requisitos, consulte "Iniciar con GitHub Actions para GitHub Enterprise Server."
Si tiene previsto habilitar Container registry para los usuarios de su instancia, necesitará más recursos. Para más información sobre estos requisitos, consulte "Iniciar con GitHub Packages para tu empresa."
Para más información sobre cómo ajustar recursos para una instancia existente, consulta "Aumentar la capacidad de almacenamiento" y "Aumentar el CPU o los recursos de memoria".
Storage
Recomendamos un SSD de alto rendimiento con operaciones de altas de entrada/salida por segundo (IOPS) y latencia baja para GitHub Enterprise Server. Las cargas de trabajo son intensivas para las I/O. Si utilizas un hipervisor de metal puro, te recomendamos adjuntar directamente el disco o utilizar un disco de una red de área de almacenamiento (SAN).
Tu instancia requiere un disco de datos persistentes independiente del disco raíz. Para obtener más información, vea «Información general del sistema».
Para configurar las GitHub Actions, debes proporcionar un almacenamiento de blobs externos. Para obtener más información, vea «Iniciar con GitHub Actions para GitHub Enterprise Server».
El espacio disponible en el sistema de archivos raíz será de 50% del tamaño total en disco. Puedes redimensionar el disco raíz de tu instancia si creas una instancia nueva o si utilizas una instancia existente. Para obtener más información, vea «Información general del sistema» y «Aumentar la capacidad de almacenamiento».
CPU y memoria
Los recursos de memoria y CPU que GitHub Enterprise Server requiere dependen de los niveles de actividad para los usuarios, automatizaciones e integraciones.
Las máquinas virtuales que aprovisiones para tu instancia de GitHub Enterprise Server deben usar la arquitectura de CPU x86-64. No se admiten otras arquitecturas, como Aarch64 o arm64.
Si planeas habilitar las GitHub Actions para los usuarios de tu instancia de GitHub Enterprise Server, podrías necesitar aprovisionar recursos de memoria y CPU adicionales para esta. Para obtener más información, vea «Iniciar con GitHub Actions para GitHub Enterprise Server».
Cuando incremente sus recursos de CPU, GitHub recomienda agregar por lo menos 6,5 GB de memoria para cada vCPU (hasta 16 vCPU) que aprovisionar para la instancia. Cuando utilizas más de 16 CPU, no necesitas agregar 6.5 GB de memoria para cada uno, pero debes monitorear tu instancia para garantizar que tenga memoria suficiente.
Advertencia: Es recomendable que los usuarios configuren eventos de webhook para notificar a los sistemas externos la actividad en GitHub Enterprise Server. Las comprobaciones automáticas de cambios, o sondeo, tendrán un impacto negativo en el rendimiento y la escalabilidad de la instancia. Para obtener más información, vea «Acerca de webhooks».
Para más información sobre la supervisión de la capacidad y el rendimiento de GitHub Enterprise Server, vea "Supervisión de la instancia".
Puedes incrementar los recursos de memoria o de CPU para tu instancia. Para obtener más información, vea «Aumentar el CPU o los recursos de memoria».
Determinar el tipo de máquina virtual
Antes de iniciar tu instancia de GitHub Enterprise Server en Azure, deberás determinar el tipo de máquina que mejor se adapte a las necesidades de tu organización. Para obtener más información sobre las máquinas optimizadas para memoria, consulta Tamaños de máquina virtual optimizados para memoria en la documentación de Microsoft Azure. Para revisar los requisitos mínimos de recursos para GitHub Enterprise Server, consulta "Requisitos mínimos".
Siempre puedes escalar verticalmente la CPU o la memoria cambiando de tamaño la instancia. Cambiar los recursos disponibles para la instancia requiere tiempo de inactividad para los usuarios, por lo que GitHub recomienda sobreaprovisionar recursos para tener en cuenta la escala.
El aparato GitHub Enterprise Server requiere un disco de datos de almacenamiento prémium, y es compatible con cualquier Azure VM que admita almacenamiento prémium. Los tipos de VM de Azure con el sufijo s
admiten el almacenamiento premium. Para más información, vea "¿Qué tipos de disco están disponibles en Azure?" y "Azure Premium Storage: diseño para un alto rendimiento" en la documentación de Azure.
GitHub recomienda una VM con memoria optimizada para GitHub Enterprise Server. Para más información, vea "Tamaños de máquina virtual optimizados para memoria" en la documentación de Azure.
GitHub Enterprise Server admite cualquier región que sea compatible con tu tipo de VM. Para más información sobre las regiones admitidas para cada máquina virtual, vea "Productos disponibles por región" de Azure.
Crear la máquina virtualGitHub Enterprise Server
Para crear la instancia, deberás importar la imagen del GitHub Enterprise Server a tu máquina virtual y adjuntar un volumen de almacenamiento adicional para los datos de tu instancia. Para más información, vea "Consideraciones de hardware".
-
Encuentra la imagen de aparato más reciente GitHub Enterprise Server. Para obtener más información sobre el comando
vm image list
, consulte "az vm image list
" en la documentación de Microsoft.az vm image list --all -f GitHub-Enterprise | grep '"urn": "GitHub:' | sort -V
-
Crea una nueva VM utilizando la imagen de aparato que encontraste. Para más información, consulta az vm create en la documentación de Microsoft.
Aprueba opciones para el nombre de tu VM, el grupo de recurso, el tamaño de tu VM, el nombre de tu región Azure preferida, el nombre de la imagen de tu aparato VM que enumeraste en el paso anterior y el almacenamiento SKU para un almacenamiento prémium. Para obtener más información sobre los grupos de recursos, consulta Grupos de recursos en la documentación de Microsoft.
az vm create -n VM_NAME -g RESOURCE_GROUP --size VM_SIZE -l REGION --image APPLIANCE_IMAGE_NAME --storage-sku Premium_LRS
-
Configura los parámetros de seguridad en tu VM para abrir los puertos requeridos. Se recomienda abrir los puertos de red de forma selectiva en función de los servicios de red que necesita exponer para fines administrativos y de usuario. Para más información, consulta "Puertos de red" y az vm open-port en la documentación de Microsoft. Consulta la tabla de abajo para obtener una descripción de cada puerto para determinar qué puertos debes abrir.
az vm open-port -n VM_NAME -g RESOURCE_GROUP --port PORT_NUMBER
Esta tabla identifica para qué se utiliza cada puerto.
Port Servicio Descripción 22 SSH Git a través de acceso SSH. Se admite clonar, extraer y subir operaciones a repositorios privados/públicos. 25 SMTP SMTP con soporte de encriptación (STARTTLS). 80 HTTP Acceso a aplicación web. Todas las solicitudes se redirigen al puerto HTTPS cuando se habilita SSL. 122 SSH Acceso a shell de instancia. El puerto SSH predeterminado (22) se dedica a la aplicación de Git y el tráfico de red SSH. 161/UDP SNMP Se requiere para operar el protocolo de revisión de red. 443 HTTPS Aplicación web y Git a través de acceso HTTPS. 1194/UDP VPN Túnel de red de replicación segura en la configuración de alta disponibilidad. Cifrado mediante WireGuard. 8080 HTTP Consola de administración basada en la web de texto simple. No es obligatorio a menos que SSL se deshabilite de forma manual. 8443 HTTPS Consola de administración seguro basada en la web. Necesario para la instalación y la configuración básicas. 9418 Git Puerto simple de protocolo de Git. Únicamente clonar y extraer operaciones a repositorios públicos. Comunicación de red sin cifrar. Si habilitaste el modo privado en tu instancia, entonces solo se requerirá abrir este puerto si también habilitas el acceso de lectura anónimo para Git. Para obtener más información, vea «Requerir políticas de administración de repositorios en tu empresa». -
Crea y adjunta a la VM un nuevo disco de datos descifrado y configura su tamaño con base en la cantidad de licencias que tengas. Para más información, consulta az vm disk attach en la documentación de Microsoft.
Apruebe opciones para el nombre de su máquina virtual (por ejemplo,
ghe-acme-corp
), el grupo de recurso, el almacenamiento premium de SKU, el tamaño del disco (por ejemplo,200
) y un nombre para el disco duro virtual resultante.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
Nota: Para que las instancias que no sean de producción tengan suficiente rendimiento de E/S, el tamaño mínimo de disco recomendado es de 150 GiB con caché de lectura y escritura habilitada (
--caching ReadWrite
).
Configurara la máquina virtual GitHub Enterprise Server
Para configurar la instancia, debes confirmar su estado, cargar un archivo de licencia, establecer la contraseña raíz de Consola de administración, configurar la instancia y reiniciarla.
Advertencia: Para evitar que un atacante ponga en peligro la nueva instancia, asegúrese de establecer personalmente la contraseña raíz de Consola de administración y cree el primer usuario lo antes posible.
-
Antes de configurar el VM, debes esperar que pase al estado ReadyRole. Compruebe el estado de la máquina virtual con el comando
vm list
. Para más información, consulta az vm list en la documentación de Microsoft.$ 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
Nota: Azure no crea automáticamente una entrada FQDNS para la máquina virtual. Para más información, consulte Creación de un nombre de dominio completo en Azure Portal para una máquina virtual Linux en la guía de Azure.
- Copie el nombre DNS público de la máquina virtual y péguelo en un explorador web.
-
En el prompt, carga tu archivo de licencia y configura una contraseña de consola de administración. Para obtener más información, vea «Administrar tu licencia de GitHub Enterprise».
-
En Consola de administración, configura y guarda la configuración deseada. Para obtener más información, consulta "Configurar GitHub Enterprise".
- La instancia se reiniciará automáticamente.
-
Haga clic en Visitar la instancia.
Características de extensión de Azure
GitHub Enterprise Server no admite la instalación de características de extensión de Azure. La imagen de GitHub Enterprise Server se incluye con un paquete personalizado waagent
que solo admite funciones básicas de administración de máquinas virtuales y bloquea funciones avanzadas de administración de máquinas virtuales.
Para evitar la inestabilidad del sistema de la instancia de GitHub Enterprise Server, el walinuxagent
servicio se ejecuta intencionadamente en GitHub Enterprise Server en un modo restringido, lo que impide explícitamente que el agente pueda instalar otros agentes. Las características de administración de máquinas virtuales que se basan en agentes y extensiones adicionales más allá de lo que se incluye con la imagen GitHub Enterprise Server, como la extensión del Agente de supervisión para Azure Insights o Azure Backups, no se admiten.
Dado que GitHub Enterprise Server ejecuta un sistema operativo Linux personalizado con solo las aplicaciones y servicios necesarios, la instalación o actualización manual de paquetes de sistema operativo sobrescribirá estas personalizaciones y puede provocar un comportamiento inesperado. Para obtener más información, vea «Información general del sistema».