Configurer GitHub Enterprise Server sur Azure VMware Solution

Dans cet article, découvrez comment configurer GitHub Enterprise Server, la version « locale » de GitHub.com, sur votre cloud privé Azure VMware Solution. Ce scénario concerne une instance GitHub Enterprise Server pouvant servir jusqu’à 3 000 développeurs exécutant jusqu’à 25 travaux par minute sur GitHub Actions. Il comprend l’installation (au moment de la rédaction de cet article) des fonctionnalités d’évaluation, telles que GitHub Actions. Pour personnaliser la configuration en fonction de vos besoins spécifiques, consultez la configuration requise indiquée dans Installing GitHub Enterprise Server on VMware (Installation de GitHub Enterprise Server sur VMware).

Avant de commencer

GitHub Enterprise Server nécessite une clé de licence valide. Vous pouvez vous inscrire à une licence d’évaluation. Si vous souhaitez étendre les fonctionnalités de GitHub Enterprise Server via une intégration, case activée si vous êtes éligible à une licence gratuite de développeur à cinq places. Appliquez cette licence par le biais du programme partenaire de GitHub.

Installer GitHub Enterprise Server sur VMware

  1. Téléchargez la version actuelle de GitHub Enterprise Server pour VMware ESXi/vSphere (OVA) et déployez le modèle OVA que vous avez téléchargé.

    Screenshot showing the GitHub Enterprise Server on VMware installation options.

    Screenshot showing the Deploy the OVA Template menu option.

  2. Donnez un nom reconnaissable à votre nouvelle machine virtuelle, par exemple GitHubEnterpriseServer. Vous n’avez pas besoin d’inclure les détails de la version dans le nom de la machine virtuelle, car ces détails deviennent obsolètes lorsque l’instance est mise à niveau.

  3. Sélectionnez toutes les valeurs par défaut pour l’instant (détails à modifier ultérieurement) et attendez que l’OVA soit importé.

  4. Une fois l’importation terminée, ajustez la configuration matérielle en fonction de vos besoins. Dans notre exemple de scénario, nous avons besoin de la configuration suivante.

    Ressource Installation standard Installation standard + « fonctionnalités bêta » (Actions)
    Processeurs virtuels 4 8
    Mémoire 32 Go 61 Go
    Stockage associé 250 Go 300 Go
    Stockage racine 200 Go 200 Go

    Vos besoins peuvent varier. Reportez-vous aux conseils relatifs aux considérations matérielles Installing GitHub Enterprise Server on VMware (Installation de GitHub Enterprise Server sur VMware). Consultez également Adding CPU or memory resources for VMware (Ajout de ressources de processeur ou mémoire pour VMware) pour personnaliser la configuration matérielle en fonction de votre situation.

Configurer l'instance de GitHub Enterprise Server

Screenshot of the Install GitHub Enterprise window.

Une fois que la machine virtuelle nouvellement provisionnée est activée, configurez-la via votre navigateur. Vous devez charger votre fichier de licence et définir un mot de passe console de gestion. Veillez à noter ce mot de passe dans un endroit sûr.

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

Nous vous recommandons d’effectuer au moins les étapes suivantes :

  1. Téléchargez une clé SSH publique dans la console de gestion pour pouvoir accéder à l’interpréteur de commandes d’administration par le biais de SSH.

  2. Configurez le protocole TLS sur votre instance pour pouvoir utiliser un certificat signé par une autorité de certification approuvée. Appliquez vos paramètres.

    Screenshot showing the settings being applied to your instance.

  3. Pendant le redémarrage de l’instance, configurez le stockage Blob pour GitHub Actions.

    Le stockage blob externe est nécessaire pour activer GitHub Actions sur GitHub Enterprise Server (actuellement disponible en tant que fonctionnalité « bêta »). Actions utilise ce stockage Blob externe pour stocker des artefacts et des journaux. Actions sur GitHub Enterprise Server prend en charge Stockage Blob Azure en tant que fournisseur de stockage (et d’autres). Vous devez créer un compte de stockage Azure avec un type de compte de stockage Blob Stockage.

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

  4. Une fois le nouveau déploiement de ressources Blob Stockage terminé, enregistrez le chaîne de connexion (disponible sous clés d’accès) pour l’utiliser ultérieurement.

  5. Une fois l’instance redémarrée, créez un compte administrateur sur l’instance. Veillez à noter également le mot de passe de cet utilisateur.

    Screenshot showing the Create admin account for GitHub Enterprise.

Autres étapes de configuration

Pour renforcer votre instance à des fins de production, il est recommandé d’effectuer les étapes de configuration facultatives suivantes :

  1. Configurez la haute disponibilité pour la protection contre les incidents suivants :

    • Pannes logicielles (au niveau du système d’exploitation ou de l’application)
    • Défaillances matérielles (stockage, UC, RAM, etc.)
    • Défaillances du système hôte de virtualisation
    • Réseau rompu logiquement ou physiquement
  2. Configurez des utilitaires de sauvegarde, en fournissant des instantanés versionnés pour la reprise d’activité après sinistre, hébergés dans une disponibilité distincte de l’instance principale.

  3. Configurez l’isolement de sous-domaine en utilisant un certificat TLS valide pour limiter le scripting inter-site et autres vulnérabilités associées.

Configurer l'exécuteur GitHub Actions

À ce stade, vous devez avoir une instance GitHub Enterprise Server en état de fonctionnement, avec un compte administrateur créé. Vous devez également disposer d’un stockage Blob externe utilisé par GitHub Actions pour la persistance.

Créez quelque part pour que GitHub Actions s’exécute à l’aide d’Azure VMware Solution.

  1. Provisionnez une nouvelle machine virtuelle sur le cluster et basez-la sur une version récente d’Ubuntu Server.

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

  2. Poursuivez la configuration en sélectionnant la ressource de calcul, le stockage et la compatibilité.

  3. Sélectionnez le système d’exploitation invité que vous voulez installer sur la machine virtuelle.

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

  4. Une fois la machine virtuelle créée, mettez-la sous tension et connectez-vous via SSH.

  5. Installez l’application de l’exécuteur Actions, qui exécute un travail à partir d’un workflow GitHub Actions. Identifiez et téléchargez la version Linux x64 la plus récente de l’exécuteur Actions, soit à partir de la page des versions, soit en exécutant le script rapide suivant. Ce script nécessite la présence de curl et jq sur votre machine virtuelle.

    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
    

    Vous devez maintenant disposer d’un fichier local sur votre machine virtuelle, actions-runner-linux-arm64-*.tar.gz. Extrayez ce tarball localement :

    tar xzf actions-runner-linux-arm64-\*.tar.gz
    

    Cette extraction décompresse quelques fichiers localement, notamment les scripts config.sh et run.sh.

Activer GitHub Actions

Configurez et activez GitHub Actions sur l’instance GitHub Enterprise Server.

  1. Accédez à l’interpréteur de commandes d’administration de l’instance GitHub Enterprise Server via SSH, puis exécuter les commandes suivantes :

  2. Définissez une variable d’environnement contenant votre chaîne de connexion de stockage Blob.

    export CONNECTION\_STRING="<your connection string from the blob storage step>"
    
  3. Configurez le stockage des actions.

    ghe-config secrets.actions.storage.blob-provider azure
    
    ghe-config secrets.actions.storage.azure.connection-string "$CONNECTION\_STRING`      
    
  4. Appliquez les paramètres.

    ghe-config-apply
    
  5. Exécutez un pré case activée pour installer davantage de logiciels requis par Actions sur GitHub Enterprise Server.

    ghe-actions-precheck -p azure -cs "$CONNECTION\_STRING"
    
  6. Activez les actions et réappliquez la configuration.

    ghe-config app.actions.enabled true
    
    ghe-config-apply      
    
  7. Vérifiez l’intégrité de votre stockage Blob.

    ghe-actions-check -s blob
    

    Cette sortie doit s’afficher : Stockage Blob est sain.

  8. La fonctionnalité GitHub Actions est configurée. À présent, activez-la pour vos utilisateurs. Connectez-vous à votre instance GitHub Enterprise Server en tant qu’administrateur, puis sélectionnez l’icône dans l’angle supérieur droit d’une page.

  9. Dans la barre latérale gauche, sélectionnez Vue d’ensemble de l’entreprise, puis Stratégies, Actions, et sélectionnez l’option permettant d’activer Actions pour toutes les organisations.

  10. Configurez votre exécuteur à partir de l’onglet Self-hosted runners (Exécuteurs auto-hébergés). Sélectionnez Add new, puis New runner (Nouvel exécuteur) dans le menu déroulant. Vous êtes présenté avec un ensemble de commandes à exécuter.

  11. Copiez la commande pour configurer l’exécuteur, par exemple :

    ./config.sh --url https://10.1.1.26/enterprises/octo-org --token AAAAAA5RHF34QLYBDCHWLJC7L73MA
    
  12. Copiez la commande config.sh et collez-la dans une session sur votre exécuteur Actions (créé précédemment).

    Screenshot showing the GitHub Actions runner registration and settings.

  13. Utilisez la commande ./run.sh pour exécuter l’exécuteur :

    Conseil

    Pour mettre cet exécuteur à la disposition des organisations de votre entreprise, modifiez son accès aux organisations. Vous pouvez limiter l’accès à un sous-ensemble d’organisations, voire à des dépôts spécifiques.

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

(Facultatif) Configurer GitHub Connect

Bien que cette étape soit facultative, nous vous recommandons de l’utiliser si vous envisagez de consommer des actions open source disponibles sur GitHub.com. Cela vous permet de vous appuyer sur le travail des autres en référençant ces actions réutilisables dans vos workflows.

Pour activer GitHub Connect, suivez les étapes décrites dans Enabling automatic access to GitHub.com actions using GitHub Connect (Activation de l’accès automatique aux actions de GitHub.com en utilisant GitHub Connect).

Une fois que GitHub Connect est activé, sélectionnez l’option Serveur permettant d’utiliser des actions de GitHub.com dans des exécutions de workflow.

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

Configurer et exécuter votre premier workflow

Maintenant que les fonctionnalités GitHub Actions et GitHub Connect sont configurées, mettons tout ce travail à profit. Voici un exemple de workflow qui fait référence à l’excellent octokit/request-action, qui nous permet de « scripter » GitHub par le biais d’interactions à l’aide de l’API GitHub, alimentée par GitHub Actions.

Dans ce workflow de base, utilisez octokit/request-action pour ouvrir un problème sur GitHub à l’aide de l’API.

Screenshot of an example workflow.

Remarque

GitHub.com héberge l’action, mais lorsque celle-ci s’exécute sur GitHub Enterprise Server, elle utilise automatiquement l’API de GitHub Enterprise Server.

Si vous choisissez de ne pas activer GitHub Connect, vous pouvez utiliser l’autre workflow suivant.

Screenshot of an alternative example workflow.

  1. Accédez à un référentiel sur votre instance et ajoutez le workflow ci-dessus en tant que : .github/workflows/hello-world.yml.

    Screenshot of another alternative example workflow.

  2. Dans l’onglet Actions pour votre référentiel, attendez que le workflow s’exécute.

    Screenshot of an executed example workflow.

    Vous pouvez voir qu’elle est traitée.

    Screenshot of the workflow processed by runner.

Si tout s’est bien passé, vous devriez voir un nouveau problème dans votre référentiel, intitulé « Hello world ».

Screenshot of the Hello world issue in GitHub created by github-actions.

Félicitations ! Vous venez de terminer votre premier workflow Actions sur GitHub Enterprise Server, qui s’exécute sur votre cloud privé Azure VMware Solution.

Dans cet article, nous avons configuré une nouvelle instance GitHub Enterprise Server, l’équivalent auto-hébergé de GitHub.com, sur votre cloud privé Azure VMware Solution. L’instance comprend la prise en charge de GitHub Actions et utilise Stockage Blob Azure pour la persistance des journaux et des artefacts. Mais nous n’avons fait qu’effleurer la surface de ce que vous pouvez faire avec GitHub Actions. Consultez la liste des actions sur la place de marché de GitHub ou créez vos propres actions.

Étapes suivantes

Maintenant que vous avez abordé la configuration de GitHub Enterprise Server sur votre cloud privé Azure VMware Solution, en savoir plus sur :