Partager via


Configurer GitHub Enterprise Server sur Azure VMware Solution

Dans cet article vous découvrirez 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 pour obtenir une licence d’essai. Si vous souhaitez étendre les capacités de GitHub Enterprise Server par le biais d’une intégration, vous pouvez bénéficier d’une licence de développement gratuite pour cinq postes. 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é.

    Capture d’écran montrant les options d’installation de GitHub Enterprise Server sur VMware.

    Capture d’écran montrant l’option de menu Deploy the OVA Template.

  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 (les détails seront modifiés prochainement) 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

Capture d’écran de la fenêtre Install GitHub Enterprise.

Une fois que la machine virtuelle nouvellement provisionnée est mise sous tension, configurez-la à l’aide de votre navigateur. Vous devrez charger votre fichier de licence et de définir un mot de passe pour la console de gestion. Veillez à noter ce mot de passe dans un endroit sûr.

Capture de l’écran SSH Access de GitHub Enterprise pour ajouter une nouvelle clé SSH.

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.

    Capture d’écran montrant les paramètres appliqués à votre 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 devrez créer un compte de stockage Azure avec le type de compte de stockage BlobStorage.

    Capture d’écran montrant les informations de l’instance à entrer pour le provisionnement d’un compte de stockage Blob Azure.

  4. Après le déploiement de la nouvelle ressource BlobStorage, enregistrez la chaîne de connexion (disponible sous Access keys) à 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.

    Capture d’écran montrant la fenêtre Create admin account pour 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 de version pour la récupération d’urgence 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 un emplacement 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.

    Capture d’écran montrant le nom et l’emplacement de la machine virtuelle pour provisionner une nouvelle machine virtuelle.

  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.

    Capture d’écran montrant la famille de systèmes d’exploitation invités et la version de système d’exploitation invité à installer sur la machine virtuelle.

  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 une prévérification pour installer d’autres logiciels supplémentaires requis par Actions sur GitHub Enterprise Server.

    ghe-actions-precheck -p azure -cs "$CONNECTION\_STRING"
    
  6. Activez les actions, puis 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. Un ensemble de commandes à exécuter s’affiche.

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

    Capture d’écran montrant l’inscription et les paramètres de l’exécuteur GitHub Actions.

  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.

    Capture d’écran montrant comment modifier l’accès pour les exécuteurs auto-hébergés.

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

Capture d’écran montrant l’option Server can use actions from GitHub.com in workflow runs définie sur 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 soumettre un problème sur GitHub à l’aide de l’API.

Capture d’écran d’un exemple de 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.

Capture d’écran d’un autre exemple de 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.

    Capture d’écran d’un autre exemple de workflow.

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

    Capture d’écran d’un exemple de workflow exécuté.

    Vous pouvez observer son traitement.

    Capture d’écran du workflow traité par l’exécuteur.

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

Capture d’écran du problème Hello world dans GitHub créé par 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 nous avons vu comment configurer GitHub Enterprise Server sur votre cloud privé Azure VMware Solution, découvrez-en plus sur :