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
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é.
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.
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é.
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
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.
Nous vous recommandons d’effectuer au moins les étapes suivantes :
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.
Configurez le protocole TLS sur votre instance pour pouvoir utiliser un certificat signé par une autorité de certification approuvée. Appliquez vos paramètres.
Pendant le redémarrage de l’instance, configurez le stockage Blob pour GitHub Actions.
Remarque
GitHub Actions est actuellement disponible en tant que version bêta limitée sur GitHub Enterprise Server version 2.22.
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.
Après le déploiement de la nouvelle ressource BlobStorage, enregistrez la chaîne de connexion (disponible sous Access keys) à utiliser ultérieurement.
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.
Autres étapes de configuration
Pour renforcer votre instance à des fins de production, il est recommandé d’effectuer les étapes de configuration facultatives suivantes :
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
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.
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
Remarque
GitHub Actions est actuellement disponible en tant que version bêta limitée sur GitHub Enterprise Server version 2.22.
À 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.
Provisionnez une nouvelle machine virtuelle sur le cluster et basez-la sur une version récente d’Ubuntu Server.
Poursuivez la configuration en sélectionnant la ressource de calcul, le stockage et la compatibilité.
Sélectionnez le système d’exploitation invité que vous voulez installer sur la machine virtuelle.
Une fois la machine virtuelle créée, mettez-la sous tension et connectez-vous via SSH.
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
etrun.sh
.
Activer GitHub Actions
Remarque
GitHub Actions est actuellement disponible en tant que version bêta limitée sur GitHub Enterprise Server version 2.22.
Configurez et activez GitHub Actions sur l’instance GitHub Enterprise Server.
Accédez à l’interpréteur de commandes d’administration de l’instance GitHub Enterprise Server via SSH, puis exécuter les commandes suivantes :
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>"
Configurez le stockage des actions.
ghe-config secrets.actions.storage.blob-provider azure ghe-config secrets.actions.storage.azure.connection-string "$CONNECTION\_STRING`
Appliquez les paramètres.
ghe-config-apply
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"
Activez les actions, puis réappliquez la configuration.
ghe-config app.actions.enabled true ghe-config-apply
Vérifiez l’intégrité de votre stockage Blob.
ghe-actions-check -s blob
Cette sortie doit s’afficher : Stockage Blob est sain.
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.
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.
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.
Copiez la commande pour configurer l’exécuteur, par exemple :
./config.sh --url https://10.1.1.26/enterprises/octo-org --token AAAAAA5RHF34QLYBDCHWLJC7L73MA
Copiez la commande
config.sh
et collez-la dans une session sur votre exécuteur Actions (créé précédemment).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.
(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.
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.
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.
Accédez à un référentiel sur votre instance et ajoutez le workflow ci-dessus en tant que :
.github/workflows/hello-world.yml
.Dans l’onglet Actions pour votre référentiel, attendez que le workflow s’exécute.
Vous pouvez observer son traitement.
Si tout s’est bien passé, vous devriez voir un nouveau problème dans votre référentiel, intitulé « Hello world ».
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 :