Compartir a través de


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

  1. Descargue la versión actual del servidor de GitHub Enterprise para VMware ESXi/vSphere (OVA) e implemente la plantilla de OVA que ha descargado.

    Captura de pantalla que muestra el servidor de GitHub Enterprise en las opciones de instalación de VMware.

    Captura de pantalla que muestra la opción de menú Implementación de la plantilla de OVA.

  2. 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.

  3. Seleccione todos los valores predeterminados (estos detalles se editarán posteriormente) y espere a que se importe la plantilla de OVA.

  4. 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

Captura de pantalla de la ventana Instalar 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.

Captura de pantalla de la pantalla de acceso SSH de GitHub Enterprise para agregar una nueva clave SSH.

Se recomienda realizar al menos los siguientes pasos:

  1. Cargue una clave SSH pública en la consola de administración para que pueda acceder al shell administrativo a través de SSH.

  2. Configure TLS en la instancia para poder usar un certificado firmado por una entidad de certificación de confianza. Aplique la configuración.

    Captura de pantalla que muestra la configuración que se aplica a la instancia.

  3. Mientras se reinicia la instancia, configure Blob Storage para Acciones de GitHub.

    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.

    Captura de pantalla que muestra los detalles de la instancia que se especificarán para aprovisionar una cuenta de Azure Blob Storage.

  4. Una vez completada la nueva implementación del recurso BlobStorage, guarde la cadena de conexión (disponible en Claves de acceso) para usarla posteriormente.

  5. 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.

    Captura de pantalla que muestra la página Crear cuenta de administrador en GitHub Enterprise.

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:

  1. 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
  2. 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.

  3. 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

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.

  1. Aprovisione una nueva máquina virtual en el clúster y adopte como base una versión reciente de Ubuntu Server.

    Captura de pantalla que muestra el nombre y la ubicación de la máquina virtual para aprovisionar una nueva máquina virtual.

  2. Continúe con la configuración y seleccione el recurso de proceso, el almacenamiento y la compatibilidad.

  3. Seleccione el sistema operativo invitado que desea instalar en la máquina virtual.

    Captura de pantalla que muestra la familia y versión del sistema operativo invitado que se instalarán en la máquina virtual.

  4. Una vez creada la máquina virtual, enciéndala y conéctese a ella a través de SSH.

  5. 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 y run.sh.

Habilitación de Acciones de GitHub

Configure y habilite Acciones de GitHub en la instancia del servidor de GitHub Enterprise.

  1. Acceda al shell administrativo de la instancia del servidor de GitHub Enterprise a través de SSH y, después, ejecute los siguientes comandos:

  2. 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>"
    
  3. Configure el almacenamiento de acciones.

    ghe-config secrets.actions.storage.blob-provider azure
    
    ghe-config secrets.actions.storage.azure.connection-string "$CONNECTION\_STRING`      
    
  4. Aplique la configuración.

    ghe-config-apply
    
  5. 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"
    
  6. Habilite las acciones y vuelva a aplicar la configuración.

    ghe-config app.actions.enabled true
    
    ghe-config-apply      
    
  7. 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).

  8. 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.

  9. 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.

  10. 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.

  11. Copie el comando para configurar el ejecutor, por ejemplo:

    ./config.sh --url https://10.1.1.26/enterprises/octo-org --token AAAAAA5RHF34QLYBDCHWLJC7L73MA
    
  12. Copie el comando config.sh y péguelo en una sesión en el ejecutor de Acciones (creado anteriormente).

    Captura de pantalla que muestra el registro y la configuración del ejecutor de Acciones de GitHub.

  13. 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.

    Captura de pantalla de cómo editar el acceso de los ejecutores autohospedados.

(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).

Captura de pantalla de con 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) habilitada.

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.

Captura de pantalla de un flujo de trabajo de ejemplo.

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.

Captura de pantalla de un flujo de trabajo de ejemplo alternativo.

  1. Vaya a un repositorio de la instancia y agregue el flujo de trabajo anterior como: .github/workflows/hello-world.yml

    Captura de pantalla de otro flujo de trabajo de ejemplo alternativo.

  2. En la pestaña Acciones del repositorio, espere a que se ejecute el flujo de trabajo.

    Captura de pantalla de un flujo de trabajo de ejemplo ejecutado.

    Puede ver cómo se está procesando.

    Captura de pantalla del flujo de trabajo procesado por el ejecutor.

Si todo se ha ejecutado correctamente, debería ver una nueva incidencia en el repositorio con el título "Hola mundo".

Captura de pantalla del problema Hola mundo de GitHub creado por github-actions.

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: