Configuración del servidor de GitHub Enterprise en Azure VMware Solution
En este artículo aprenderá a configurar el servidor de GitHub Enterprise, la versión "local" de GitHub.com, en la nube privada de Azure VMware Solution. El escenario incluye una instancia de servidor de GitHub Enterprise que puede atender hasta a 3000 desarrolladores que ejecutan hasta 25 trabajos por minuto en Acciones de GitHub. En el momento de su redacción incluye la configuración de características en versión preliminar, como Acciones de GitHub. Para personalizar la configuración conforme a sus necesidades particulares, revise los requisitos indicados en Instalación del servidor de GitHub Enterprise en VMware.
Antes de empezar
El servidor de GitHub Enterprise requiere una clave de licencia válida. Puede registrarse para obtener una licencia de prueba. Si busca ampliar las funcionalidades del servidor de GitHub Enterprise por medio de una integración, compruebe si puede optar a una licencia gratuita de desarrollador para cinco usuarios. Aplique esta licencia por medio del programa de asociados de GitHub.
Instalación del servidor de GitHub Enterprise en VMware
Descargue la versión actual del servidor de GitHub Enterprise para VMware ESXi/vSphere (OVA) e implemente la plantilla de OVA que ha descargado.
Proporcione un nombre reconocible para la nueva máquina virtual, por ejemplo, GitHubEnterpriseServer. No es necesario incluir los detalles de la versión en el nombre de la máquina virtual, ya que estos detalles se vuelven obsoletos cuando la instancia se actualiza.
Seleccione todos los valores predeterminados (estos detalles se editarán posteriormente) y espere a que se importe la plantilla de OVA.
Una vez importada, ajuste la configuración de hardware en función de sus necesidades. En este escenario de ejemplo se necesita la siguiente configuración.
Resource Configuración estándar Configuración estándar + "Características beta" (Acciones) vCPU 4 8 Memoria 32 GB 61 GB Almacenamiento acoplado 250 GB 300 GB Almacenamiento raíz 200 GB 200 GB Sus necesidades pueden variar. Vea la guía sobre consideraciones de hardware en Instalación del servidor de GitHub Enterprise en VMware. Vea también Incorporación de recursos de CPU o memoria para VMware para personalizar la configuración de hardware en función de la situación.
Configuración de la instancia del servidor de GitHub Enterprise
Una vez encendida la máquina virtual que se acaba de aprovisionar, configúrela mediante el explorador. Tiene que cargar el archivo de licencia y establecer una contraseña para la consola de administración. Asegúrese de anotar esta contraseña en algún lugar seguro.
Se recomienda realizar al menos los siguientes pasos:
Cargue una clave SSH pública en la consola de administración para que pueda acceder al shell administrativo a través de SSH.
Configure TLS en la instancia para poder usar un certificado firmado por una entidad de certificación de confianza. Aplique la configuración.
Mientras se reinicia la instancia, configure Blob Storage para Acciones de GitHub.
Nota:
Acciones de GitHub está disponible actualmente como versión beta limitada en el servidor de GitHub Enterprise versión 2.22.
Se necesita una instancia externa de Blob Storage para habilitar Acciones de GitHub en el servidor de GitHub Enterprise (disponible actualmente como una característica "beta"). Acciones usa esta instancia externa de Blob Storage para almacenar artefactos y registros. Acciones en el servidor de GitHub Enterprise admite Azure Blob Storage como proveedor de almacenamiento (y algunos otros). Tiene que crear una nueva cuenta de almacenamiento de Azure con un tipo de cuenta de almacenamiento de BlobStorage.
Una vez completada la nueva implementación del recurso BlobStorage, guarde la cadena de conexión (disponible en Claves de acceso) para usarla posteriormente.
Una vez que se reinicie la instancia, cree una nueva cuenta de administrador en la instancia. Asegúrese de anotar también esta contraseña de usuario.
Otros pasos de configuración
Para reforzar la instancia para su uso en producción, se recomienda seguir los siguientes pasos de configuración opcionales:
Configure alta disponibilidad para la protección frente a:
- Bloqueos de software (en el nivel de sistema operativo o aplicación)
- Errores de hardware (almacenamiento, CPU, RAM, etc.)
- Errores del sistema de host de virtualización
- Red rota lógica o físicamente
Configure herramientas de copia de seguridad y proporcione instantáneas con versiones para la recuperación ante desastres hospedadas en una disponibilidad independiente de la instancia principal.
Configure aislamiento de subdominios mediante un certificado TLS válido para mitigar el scripting entre sitios y otras vulnerabilidades relacionadas.
Configuración del ejecutor de Acciones de GitHub
Nota:
Acciones de GitHub está disponible actualmente como versión beta limitada en el servidor de GitHub Enterprise versión 2.22.
En este punto, debe tener una instancia del servidor de GitHub Enterprise en ejecución con una cuenta de administrador creada. También debe tener una instancia externa de Blob Storage que Acciones de GitHub use para la persistencia.
Cree alguna ubicación para que se ejecute Acciones de GitHub mediante Azure VMware Solution.
Aprovisione una nueva máquina virtual en el clúster y adopte como base una versión reciente de Ubuntu Server.
Continúe con la configuración y seleccione el recurso de proceso, el almacenamiento y la compatibilidad.
Seleccione el sistema operativo invitado que desea instalar en la máquina virtual.
Una vez creada la máquina virtual, enciéndala y conéctese a ella a través de SSH.
Instale la aplicación ejecutor de Acciones, que ejecuta un trabajo desde un flujo de trabajo de Acciones de GitHub. Identifique y descargue la versión de Linux x64 más reciente del ejecutor de Acciones, ya sea desde la página de versiones o mediante la ejecución del siguiente script rápido. Este script requiere que curl y jq estén presentes en la máquina virtual.
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
Ahora debería tener un archivo local en la máquina virtual: actions-runner-linux-arm64-*.tar.gz. Extraiga este tarball localmente:
tar xzf actions-runner-linux-arm64-\*.tar.gz
Esta extracción desempaqueta algunos archivos en el entorno local, incluido un script
config.sh
yrun.sh
.
Habilitación de Acciones de GitHub
Nota:
Acciones de GitHub está disponible actualmente como versión beta limitada en el servidor de GitHub Enterprise versión 2.22.
Configure y habilite Acciones de GitHub en la instancia del servidor de GitHub Enterprise.
Acceda al shell administrativo de la instancia del servidor de GitHub Enterprise a través de SSH y, después, ejecute los siguientes comandos:
Establezca una variable de entorno que contenga la cadena de conexión de Blob Storage.
export CONNECTION\_STRING="<your connection string from the blob storage step>"
Configure el almacenamiento de acciones.
ghe-config secrets.actions.storage.blob-provider azure ghe-config secrets.actions.storage.azure.connection-string "$CONNECTION\_STRING`
Aplique la configuración.
ghe-config-apply
Ejecute una comprobación previa para instalar el software adicional que requiere Acciones de GitHub en el servidor de GitHub Enterprise.
ghe-actions-precheck -p azure -cs "$CONNECTION\_STRING"
Habilite las acciones y vuelva a aplicar la configuración.
ghe-config app.actions.enabled true ghe-config-apply
Compruebe el estado de Blob Storage.
ghe-actions-check -s blob
La salida debería ser la siguiente: Blob Storage is healthy (Blob Storage correcto).
Ahora que Acciones de GitHub está configurado, habilítelo para los usuarios. Inicie sesión como administrador en la instancia del servidor de GitHub Enterprise y seleccione el icono en la esquina superior derecha de todas las páginas.
En la barra lateral izquierda, seleccione Enterprise overview (Información general de Enterprise), Directivas, Acciones y seleccione la opción para habilitar Acciones para todas las organizaciones.
Configure el ejecutor desde la pestaña Self-hosted runners (Ejecutores autohospedados). Seleccione Add new (Agregar nuevo) y, después, New runner (Nuevo ejecutor) en la lista desplegable. Se le presentará un conjunto de comandos para su ejecución.
Copie el comando para configurar el ejecutor, por ejemplo:
./config.sh --url https://10.1.1.26/enterprises/octo-org --token AAAAAA5RHF34QLYBDCHWLJC7L73MA
Copie el comando
config.sh
y péguelo en una sesión en el ejecutor de Acciones (creado anteriormente).Use el comando
./run.sh
para ejecutar el ejecutor:Sugerencia
Para que este ejecutor esté disponible para las organizaciones de la empresa, edite su acceso organizativo: Puede limitar el acceso a un subconjunto de organizaciones e incluso a repositorios específicos.
(Opcional) Configuración de GitHub Connect
Aunque este paso es opcional, se recomienda si tiene previsto usar acciones de código abierto disponibles en GitHub.com. Le permite basarse en el trabajo de otras personas y usar estas acciones reutilizables como referencia en los flujos de trabajo.
Para habilitar GitHub Connect, siga los pasos de Habilitación del acceso automático a acciones de GitHub.com mediante GitHub Connect.
Una vez habilitado GitHub Connect, seleccione la opción Server can use actions from GitHub.com in workflow runs (El servidor puede usar acciones de GitHub.com en ejecuciones de flujo de trabajo).
Configuración y ejecución del primer flujo de trabajo
Ahora que Acciones y GitHub Connect están configurados, vamos a darle buen uso a todo este trabajo. Este es un flujo de trabajo de ejemplo que hace referencia a la excelente octokit/request-action, lo que permite aplicar scripting a GitHub por medio de interacciones mediante la API de GitHub, con tecnología de Acciones de GitHub.
En este flujo de trabajo básico, use octokit/request-action
para abrir una incidencia en GitHub mediante la API.
Nota:
GitHub.com hospeda la acción, pero cuando se ejecuta en el servidor de GitHub Enterprise, automáticamente usa la API del servidor de GitHub Enterprise.
Si decide no habilitar GitHub Connect, puede usar el siguiente flujo de trabajo alternativo.
Vaya a un repositorio de la instancia y agregue el flujo de trabajo anterior como:
.github/workflows/hello-world.yml
En la pestaña Acciones del repositorio, espere a que se ejecute el flujo de trabajo.
Puede ver cómo se está procesando.
Si todo se ha ejecutado correctamente, debería ver una nueva incidencia en el repositorio con el título "Hola mundo".
Felicidades. Acaba de completar el primer flujo de trabajo de Acciones en el servidor de GitHub Enterprise, que se ejecuta en la nube privada de Azure VMware Solution.
En este artículo se configura una nueva instancia del servidor de GitHub Enterprise, el equivalente autohospedado de GitHub.com, en la nube privada de Azure VMware Solution. La instancia incluye compatibilidad con Acciones de GitHub y usa Azure Blob Storage para la persistencia de registros y artefactos. Sin embargo, esto es solo una pequeña muestra de lo que se puede hacer con Acciones de GitHub. Consulte la lista de Acciones en Marketplace de GitHub o cree las propias.
Pasos siguientes
Ahora que ha visto cómo configurar el servidor de GitHub Enterprise en la nube privada de Azure VMware Solution, obtenga más información sobre lo siguiente: