Vous pouvez déployer GitHub Enterprise Server sur Azure international ou Azure Government.
Prérequis
- Vous devez disposer d’un fichier de licence GitHub Enterprise. Pour plus d’informations, consultez « Configuration d’un essai de GitHub Enterprise Server » et « À propos des licences pour GitHub Enterprise ».
- Vous devez disposer d’un compte Azure capable de provisionner de nouvelles machines. Pour plus d’informations, consultez le site web Microsoft Azure.
- La plupart des actions nécessaires pour lancer votre machine virtuelle peuvent également être effectuées à l’aide du portail Azure. Toutefois, nous vous recommandons d’installer l’interface de ligne de commande (CLI) Azure pour la configuration initiale. Vous trouverez ci-dessous des exemples d’utilisation d’Azure CLI 2.0. Pour plus d’informations, consultez le guide Azure Installer l’interface Azure CLI 2.0.
Considérations matérielles
Exigences minimales recommandées
Nous recommandons différentes configurations matérielles en fonction du nombre de licences utilisateur pour votre instance GitHub Enterprise Server. Si vous approvisionnez plus de ressources que les exigences minimales recommandées, cela améliorera les performances et la mise à l’échelle de votre instance.
Licences utilisateur | Processeurs virtuels x86-64 | Mémoire | Stockage racine | Stockage (de données) attaché |
---|---|---|---|---|
Essai, démonstration ou 10 utilisateurs légers | 4 | 32 Go | 200 Go | 150 Go |
10 à 3 000 | 8 | 48 Go | 200 Go | 300 Go |
3 000 à 5 000 | 12 | 64 Go | 200 Go | 500 Go |
5 000 à 8 000 | 16 | 96 Go | 200 Go | 750 Go |
8 000 à 10 000+ | 20 | 160 Go | 200 Go | 1 000 Go |
Si vous envisagez d’activer GitHub Actions ou GitHub Advanced Security pour les utilisateurs de votre instance, d’autres ressources sont requises.
- GitHub Actions – augmenter l’UC et la mémoire de 25 %
- GitHub Advanced Security – augmenter l’UC et la mémoire de 15 %
Ces ajustements doivent être appliqués aux exigences de base pour chaque niveau utilisateur.
Pour plus d’informations sur ces configurations requises, consultez « Bien démarrer avec GitHub Actions pour GitHub Enterprise Server ».
Si vous envisagez d’activer Container registry pour les utilisateurs de votre instance, d’autres ressources sont requises. Pour plus d’informations sur ces configurations requises, consultez « Bien démarrer avec GitHub Packages pour votre entreprise ».
Pour plus d’informations sur l’ajustement des ressources pour une instance existante, consultez « Augmentation de la capacité de stockage » et « Augmentation des ressources processeur ou mémoire ».
Stockage
Nous recommandons un disque SSD haute performance avec un nombre élevé d’IOPS et une faible latence pour GitHub Enterprise Server. Les charges de travail sont gourmandes en E/S. Si vous utilisez un hyperviseur nu, nous vous recommandons d’attacher directement le disque ou d’utiliser un disque d’un réseau de zone de stockage (SAN).
Votre instance nécessite un disque de données persistant séparé du disque racine. Pour plus d’informations, consultez « Vue d’ensemble du système ».
Warning
Le stockage racine fait référence à la taille totale du disque racine de votre instance. Lorsque l’instance est démarrée, vous verrez 200 Go disponibles sur le système de fichiers racine. Les 200 Go restants sont réservés aux mises à niveau. Pour plus d’informations, consultez « Vue d’ensemble du système ».
Pour configurer GitHub Actions, vous devez fournir un stockage d’objets blob externe. Pour plus d’informations, consultez « Bien démarrer avec GitHub Actions pour GitHub Enterprise Server ».
L’espace disponible sur le système de fichiers racine sera de 50 % de la taille totale du disque. Vous pouvez redimensionner le disque racine de votre instance en créant une nouvelle instance ou en utilisant une instance existante. Pour plus d’informations, consultez « Vue d’ensemble du système » et « Augmentation de la capacité de stockage ».
Processeur et mémoire
Les ressources processeur et mémoire que GitHub Enterprise Server requiert dépendent des niveaux d’activité pour les utilisateurs, les automatisations et les intégrations.
Toutes les machines virtuelles que vous provisionnez pour votre instance GitHub Enterprise Server doivent utiliser l’architecture de processeur x86-64. Les autres architectures ne sont pas prises en charge, telles que Aarch64 ou arm64.
Si vous envisagez d’activer GitHub Actions pour les utilisateurs de votre instance GitHub Enterprise Server, il se peut que vous deviez approvisionner des ressources processeur et mémoire supplémentaires pour celle-ci. Pour plus d’informations, consultez « Bien démarrer avec GitHub Actions pour GitHub Enterprise Server ».
Quand vous augmentez les ressources d’UC, GitHub vous recommande d’ajouter au moins 6,5 Go de mémoire par processeur virtuel (jusqu’à 16 processeurs virtuels) que vous approvisionnez pour l’instance. Lorsque vous utilisez plus de 16 processeurs virtuels, vous n’avez pas besoin d’ajouter 6,5 Go de mémoire par processeur virtuel, mais vous devez surveiller votre instance pour vous assurer qu’elle dispose de suffisamment de mémoire.
Avertissement : nous recommandons aux utilisateurs de configurer des événements de webhook pour avertir des systèmes externes de l’activité sur GitHub Enterprise Server. Les vérifications automatisées des modifications, ou l’interrogation, auront un impact négatif sur les performances et la scalabilité de votre instance. Pour plus d’informations, consultez « À propos des webhooks ».
Pour plus d’informations sur la supervision de la capacité et des performances de GitHub Enterprise Server, consultez « Surveillance de votre instance ».
Vous pouvez augmenter les ressources processeur ou mémoire de votre instance. Pour plus d’informations, consultez « Augmentation des ressources processeur ou mémoire ».
Détermination du type de machine virtuelle
Avant de lancer votre instance GitHub Enterprise Server sur Azure, vous devez déterminer le type de machine qui répond le mieux aux besoins de votre organisation. Pour plus d’informations sur les machines à mémoire optimisée, consultez Tailles de machine virtuelle à mémoire optimisée dans la documentation Microsoft Azure. Pour voir les exigences minimales de ressources pour GitHub Enterprise Server, consultez « Exigences minimales recommandées ».
Vous pouvez toujours effectuer un scale-up de votre UC ou de votre mémoire en redimensionnant votre instance. La modification des ressources disponibles pour votre instance nécessite un temps d’arrêt pour vos utilisateurs. Alors GitHub recommande de surprovisionner les ressources pour tenir compte de la mise à l’échelle.
L’appliance GitHub Enterprise Server nécessite un disque de données de stockage Premium et est prise en charge sur n’importe quelle machine virtuelle Azure qui prend en charge le stockage Premium. Les types de machines virtuelles Azure avec le suffixe s
prennent en charge le stockage Premium. Pour plus d’informations, consultez Quels sont les types de disque disponibles dans Azure ? et « Stockage Azure Premium : conception sous le signe de la haute performance » dans la documentation Azure.
GitHub recommande une machine virtuelle optimisée en mémoire pour GitHub Enterprise Server. Pour plus d’informations, consultez « Tailles de machine virtuelle à mémoire optimisée » dans la documentation Azure.
GitHub Enterprise Server prend en charge n’importe quelle région qui prend en charge votre type de machine virtuelle. Pour plus d’informations sur les régions prises en charge pour chaque machine virtuelle, consultez « Disponibilité des produits par région » d’Azure.
Création de la machine virtuelle GitHub Enterprise Server
Pour créer l’instance, vous devez importer l’image GitHub Enterprise Server sur votre machine virtuelle et attacher un volume de stockage supplémentaire pour vos données d’instance. Pour plus d’informations, consultez « Considérations matérielles ».
-
Recherchez l’image de l’appliance GitHub Enterprise Server la plus récente. Pour plus d’informations sur la commande
vm image list
, consultez «az vm image list
» dans la documentation Microsoft.az vm image list --all -f GitHub-Enterprise | grep '"urn": "GitHub:' | sort -V
-
Créez une machine virtuelle avec l’image de l’appliance que vous avez trouvée. Pour plus d’informations, consultez az vm create dans la documentation Microsoft.
Passez des options pour le nom de votre machine virtuelle, le groupe de ressources, la taille de votre machine virtuelle, le nom de votre région Azure préférée, le nom de la machine virtuelle d’image de l’appliance que vous avez obtenu à l’étape précédente et la référence SKU de stockage pour le stockage Premium. Pour plus d’informations sur les groupes de ressources, consultez Groupes de ressources dans la documentation Microsoft.
az vm create -n VM_NAME -g RESOURCE_GROUP --size VM_SIZE -l REGION --image APPLIANCE_IMAGE_NAME --storage-sku Premium_LRS
-
Configurez les paramètres de sécurité sur votre machine virtuelle pour ouvrir les ports requis. Nous vous recommandons d’ouvrir les ports réseau de manière sélective en fonction des services réseau que vous devez exposer pour l’administration et l’accès utilisateur. Pour plus d’informations, consultez « Ports réseau » et az vm open-port dans la documentation Microsoft. Consultez le tableau ci-dessous pour obtenir une description de chaque port afin de déterminer les ports que vous devez ouvrir.
az vm open-port -n VM_NAME -g RESOURCE_GROUP --port PORT_NUMBER
Ce tableau identifie le rôle de chaque port.
Port Service Description 22 SSH Accès Git via SSH Opérations de clonage, de récupération (fetch) et d’envoi (push) sur les référentiels publics et privés pris en charge. 25 SMTP Prise en charge de SMTP avec chiffrement (STARTTLS). 80 HTTP Accès aux applications web. Toutes les requêtes sont redirigées vers le port HTTPS lorsque SSL est activé. 122 SSH Accès à l’interpréteur de commandes de l’instance. Le port SSH par défaut (22) est dédié au trafic réseau des applications Git et SSH. 161/UDP SNMP Nécessaire au fonctionnement du protocole de supervision de réseau. 443 HTTPS Accès aux applications web et à Git via HTTPS. 1194/UDP VPN Tunnel de réseau de réplication sécurisé dans une configuration à haute disponibilité. Chiffré à l’aide de WireGuard. 8080 HTTP Management Console web en texte brut. Non obligatoire, sauf si SSL est désactivé manuellement. 8443 HTTPS Management Console web sécurisée. Requis pour l’installation et la configuration de base. 9418 Git Port du protocole Git simple. Opérations de clonage et de récupération (fetch) sur référentiels publics uniquement. Communication réseau non chiffrée. Si vous avez activé le mode privé sur votre instance, l’ouverture de ce port n’est nécessaire que si vous avez également activé l’accès en lecture Git anonyme. Pour plus d’informations, consultez « Application de stratégies de gestion des dépôts dans votre entreprise ». -
Créez un disque de données non chiffré, attachez-le à la machine virtuelle et configurez la taille en fonction du nombre de licences utilisateur. Pour plus d’informations, consultez az vm disk attach dans la documentation Microsoft.
Passez des options pour le nom de votre machine virtuelle (par exemple,
ghe-acme-corp
), le groupe de ressources, la référence SKU de stockage Premium, la taille du disque (par exemple,200
) et un nom pour le disque dur virtuel obtenu.az vm disk attach --vm-name VM_NAME -g RESOURCE_GROUP --sku Premium_LRS --new -z SIZE_IN_GB --name ghe-data.vhd --caching ReadWrite
Remarque : Pour que les instances de non-production disposent d’un débit d’E/S suffisant, la taille minimale recommandée du disque est de 150 Gio avec cache en lecture/écriture activé (
--caching ReadWrite
).
Configuration de la machine virtuelle GitHub Enterprise Server
Pour configurer l’instance, vous devez confirmer l’état de l’instance, charger un fichier de licence, définir le mot de passe racine Management Console, configurer les paramètres de l’instance et redémarrer l’instance.
Avertissement : Pour empêcher un attaquant de compromettre la nouvelle instance, veillez à définir personnellement le mot de passe racine Management Console et à créer le premier utilisateur dès que possible.
-
Avant de configurer la machine virtuelle, vous devez attendre qu’elle passe à l’état ReadyRole. Vérifiez l’état de la machine virtuelle avec la commande
vm list
. Pour plus d’informations, consultez az vm list dans la documentation Microsoft.$ az vm list -d -g RESOURCE_GROUP -o table > Name ResourceGroup PowerState PublicIps Fqdns Location Zones > ------ --------------- ------------ ------------ ------- ---------- ------- > VM_NAME RESOURCE_GROUP VM running 40.76.79.202 eastus
Remarque : Azure ne crée pas automatiquement une entrée FQDNS pour la machine virtuelle. Pour plus d’informations, consultez le guide Azure Créer un nom de domaine complet pour une machine virtuelle Linux dans le portail Azure.
- Copiez le nom DNS public de la machine virtuelle et collez-le dans un navigateur web.
-
À l’invite, chargez votre fichier de licence et définissez un mot de passe pour la console de gestion. Pour plus d’informations, consultez « Gestion de votre licence pour GitHub Enterprise ».
-
Dans la Management Console, configurez et enregistrez les paramètres de votre choix. Pour plus d’informations, consultez « Configuration de GitHub Enterprise ».
- L’instance redémarre automatiquement.
-
Cliquez sur Accéder à votre instance.
Fonctionnalités d’extension Azure
GitHub Enterprise Server ne prend pas en charge l’installation des fonctionnalités d’extension Azure. L’image GitHub Enterprise Server est fournie avec un package waagent
personnalisé qui prend uniquement en charge les fonctions de gestion de machines virtuelles de base et bloque les fonctions de gestion de machines virtuelles avancées.
Pour éviter l’instabilité du système de votre instance GitHub Enterprise Server, le service walinuxagent
est exécuté intentionnellement dans GitHub Enterprise Server en mode restreint, ce qui empêche explicitement l’agent de pouvoir installer d’autres agents. Les fonctionnalités de gestion de machines virtuelles qui s’appuient sur des agents et extensions autres que ceux fournis avec l’image GitHub Enterprise Server, comme l’extension Monitoring Agent pour Azure Insights ou Sauvegarde Azure, ne sont pas prises en charge.
Étant donné que GitHub Enterprise Server exécute un système d’exploitation Linux personnalisé avec uniquement les applications et services nécessaires, l’installation ou la mise à jour manuelle des packages de système d’exploitation remplace ces personnalisations et peut entraîner un comportement inattendu. Pour plus d’informations, consultez « Vue d’ensemble du système ».