Compartir a través de


Configuración del servidor de GitHub Enterprise en Azure VMware Solution

En este artículo, aprenderá a configurar GitHub Enterprise Server, 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 desea ampliar las funcionalidades de GitHub Enterprise Server a través de una integración, compruebe si cumple los requisitos para obtener una licencia gratuita para desarrolladores de cinco puestos. 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.

    Screenshot showing the GitHub Enterprise Server on VMware installation options.

    Screenshot showing the Deploy the OVA Template menu option.

  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 por ahora (detalles que se van a editar más adelante) y espere a que se importe el OVA.

  4. Una vez importada, ajuste la configuración de hardware en función de sus necesidades. En nuestro escenario de ejemplo, necesitamos 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

Screenshot of the Install GitHub Enterprise window.

Después de que la máquina virtual (VM) recién aprovisionada esté activada, configúrela a través del explorador. Debe cargar el archivo de licencia y establecer una contraseña de la consola de administración. Asegúrese de anotar esta contraseña en algún lugar seguro.

Screenshot of the GitHub Enterprise SSH access screen to add a new SSH key.

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.

    Screenshot showing the settings being applied to your instance.

  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). Debe crear una nueva cuenta de Azure Storage con un tipo de cuenta de almacenamiento de BlobStorage.

    Screenshot showing the instance details to enter for provisioning an Azure Blob Storage account.

  4. Una vez completada la nueva implementación de recursos de BlobStorage, guarde el cadena de conexión (disponible en Claves de acceso) para usarlo más adelante.

  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.

    Screenshot showing the Create admin account for 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. Configureherramientas 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 en algún lugar para que Las acciones de GitHub se ejecuten 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.

    Screenshot showing the virtual machine name and location to provision a new VM.

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

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

    Screenshot showing the Guest OS Family and Guest OS version to install on the VM.

  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 más software requerido por Actions en GitHub Enterprise Server.

    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 presenta un conjunto de comandos que se van a ejecutar.

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

    Screenshot showing the GitHub Actions runner registration and settings.

  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.

    Screenshot of how to edit access for the self-hosted runners.

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

Screenshot of the Server can use actions from GitHub.com in workflow runs Enabled.

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 un problema en GitHub mediante la API.

Screenshot of an example workflow.

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.

Screenshot of an alternative example workflow.

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

    Screenshot of another alternative example workflow.

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

    Screenshot of an executed example workflow.

    Puede ver que se está procesando.

    Screenshot of the workflow processed by runner.

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

Screenshot of the Hello world issue in GitHub created by 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 tratado la configuración de GitHub Enterprise Server en la nube privada de Azure VMware Solution, obtenga más información sobre: