Skip to main content

Configuration d’une instance de préproduction

Vous pouvez configurer une instance GitHub Enterprise Server dans un environnement séparé et isolé, et utiliser cette instance pour valider et tester les modifications.

À propos des instances intermédiaires

GitHub vous recommande de configurer un environnement distinct pour tester les sauvegardes, les mises à jour ou les changements apportés à la configuration de votre instance GitHub Enterprise Server. Cet environnement, que vous devez isoler de vos systèmes de production, est appelé environnement intermédiaire.

Par exemple, pour vous protéger contre la perte de données, vous pouvez régulièrement valider la sauvegarde de votre instance de production. Vous pouvez régulièrement restaurer la sauvegarde de vos données de production sur une instance distincte de GitHub Enterprise Server dans un environnement intermédiaire. Sur cette instance intermédiaire, vous pouvez également tester la mise à niveau vers la dernière mise en production de fonctionnalité de GitHub Enterprise Server.

Tip

Vous pouvez réutiliser votre fichier de licence GitHub Enterprise existant, à condition que l’instance intermédiaire ne soit pas utilisée dans une capacité de production.

Considérations relatives à un environnement intermédiaire

Pour effectuer un test approfondi de GitHub Enterprise Server et recréer un environnement aussi proche que possible de votre environnement de production, vous devez tenir compte des systèmes externes qui interagissent avec votre instance. Par exemple, vous pouvez tester les éléments suivants dans votre environnement intermédiaire.

  • Authentification, en particulier si vous utilisez un fournisseur d’authentification externe comme SAML
  • Intégration à un système de gestion de tickets externe
  • Intégration à un serveur d’intégration continue
  • Scripts ou logiciels externes qui utilisent les GitHub Enterprise Server APIs
  • Serveur SMTP externe pour les notifications par e-mail

Configuration d’une instance de préproduction

Vous pouvez configurer une instance de préproduction à partir de zéro, comme vous le souhaitez. Pour plus d’informations, consultez « Configuration d’une instance GitHub Enterprise Server » et « Configuration de GitHub Enterprise ».

Vous pouvez également créer une instance de préproduction qui reflète votre configuration de production en restaurant une sauvegarde de votre instance de production sur l’instance de préproduction.

  1. Sauvegarder votre instance de production.
  2. Configurer une instance de préproduction.
  3. Configurer GitHub Actions.
  4. Configurer GitHub Packages.
  5. Restaurer votre sauvegarde de production.
  6. Passer en revue la configuration de l’instance.
  7. Appliquer la configuration de l’instance.

1. Sauvegarder votre instance de production

Si vous souhaitez tester des changements sur une instance qui contient les mêmes données et la même configuration que votre instance de production, sauvegardez les données et la configuration de l’instance de production en utilisant GitHub Enterprise Server Backup Utilities. Pour plus d’informations, consultez « Configuration des sauvegardes sur votre instance ».

Warning

Si vous utilisez GitHub Actions ou GitHub Packages en production, la sauvegarde inclut votre configuration de production pour le stockage externe. Pour éviter toute perte potentielle de données en écrivant sur votre stockage de production à partir de l’instance de préproduction, vous devez configurer chaque fonctionnalité aux étapes 3 et 4 avant de restaurer la sauvegarde.

2. Configurer une instance de préproduction

Configurez une nouvelle instance qui jouera le rôle d’environnement de préproduction. Vous pouvez utiliser les mêmes guides pour le provisionnement et l’installation de votre instance de préproduction que ceux utilisés pour votre instance de production. Pour plus d’informations, consultez « Configuration d’une instance GitHub Enterprise Server ».

Si vous comptez restaurer une sauvegarde de votre instance de production, passez à l’étape suivante. Vous pouvez également configurer l’instance manuellement, et ignorer les étapes suivantes.

3. Configurer GitHub Actions

Si vous utilisez GitHub Actions sur votre instance de production, configurez éventuellement la fonctionnalité sur l’instance de préproduction avant de restaurer votre sauvegarde de production. Si vous n’utilisez pas GitHub Actions, passez à « 1. Configurer GitHub Packages ».

Warning

Si vous ne configurez pas GitHub Actions sur l’instance de préproduction avant de restaurer votre sauvegarde de production, votre instance de préproduction utilise le stockage externe de votre instance de production, ce qui peut entraîner une perte de données. Nous vous recommandons vivement d’utiliser un autre stockage externe pour votre instance de préproduction. Pour plus d’informations, consultez « Utilisation d’un environnement intermédiaire ».

  1. Établissez une connexion SSH avec l’instance de préproduction. Pour plus d’informations, consultez « Accès à l’interpréteur de commandes d’administration (SSH) ».

    Shell
    ssh -p 122 admin@HOSTNAME
    
  2. Pour configurer l’instance de préproduction afin d’utiliser un fournisseur de stockage externe pour GitHub Actions, entrez l’une des commandes suivantes.

    • Stockage Blob Azure :

      Shell
      ghe-config secrets.actions.storage.blob-provider "azure"
      
    • Amazon S3 :

      Shell
      ghe-config secrets.actions.storage.blob-provider "s3"
      
    • Google Cloud Storage :

      Shell
      ghe-config secrets.actions.storage.blob-provider "gcs"
      
  3. Configurez la connexion au stockage externe en entrant les commandes suivantes, et en remplaçant les valeurs d’espace réservé par les valeurs réelles de votre connexion.

    • Stockage Blob Azure :

      Shell
      ghe-config secrets.actions.storage.azure.connection-string "CONNECTION STRING"
      
    • Amazon S3 :

      Shell
      ghe-config secrets.actions.storage.s3.bucket-name "S3 BUCKET NAME"
      ghe-config secrets.actions.storage.s3.service-url "S3 SERVICE URL"
      ghe-config secrets.actions.storage.s3.access-key-id "S3 ACCESS KEY ID"
      ghe-config secrets.actions.storage.s3.access-secret "S3 ACCESS SECRET"
      

      Le cas échéant, si vous souhaitez forcer l’adressage du style de chemin pour S3, entrez également la commande suivante.

      Shell
      ghe-config secrets.actions.storage.s3.force-path-style true
      
    • Google Cloud Storage :

      Shell
      ghe-config secrets.actions.storage.gcs.service-url "SERVICE URL"
      ghe-config secrets.actions.storage.gcs.bucket-name "BUCKET NAME"
      ghe-config secrets.actions.storage.gcs.access-key-id "HMAC ACCESS ID"
      ghe-config secrets.actions.storage.gcs.access-secret "HMAC SECRET"
      
  4. Pour préparer l’activation de GitHub Actions sur l’instance de préproduction, entrez la commande suivante.

    Shell
    ghe-config app.actions.enabled true
    

4. Configurer GitHub Packages

Si vous utilisez GitHub Packages sur votre instance de production, configurez éventuellement la fonctionnalité sur l’instance de préproduction avant de restaurer votre sauvegarde de production. Si vous n’utilisez pas GitHub Packages, passez à « 1. Restaurer votre sauvegarde de production ».

Warning

Si vous ne configurez pas GitHub Packages sur l'instance intermédiaire avant de restaurer votre sauvegarde de production, votre instance intermédiaire utilisera le stockage externe de votre instance de production, ce qui pourrait entraîner une perte de données. Nous vous recommandons vivement d’utiliser un autre stockage externe pour votre instance de préproduction.

  1. Passez en revue la sauvegarde à restaurer sur l’instance de préproduction.

    • Si vous avez effectué la sauvegarde avec GitHub Enterprise Server Backup Utilities 3.5 ou une version ultérieure, la sauvegarde inclut la configuration de GitHub Packages. Passez à l’étape suivante.
    • Si vous avez effectué la sauvegarde avec GitHub Enterprise Server Backup Utilities 3.4 ou une version antérieure, configurez GitHub Packages sur l’instance de préproduction. Pour plus d’informations, consultez « Bien démarrer avec GitHub Packages pour votre entreprise ».
  2. Établissez une connexion SSH avec l’instance de préproduction. Pour plus d’informations, consultez « Accès à l’interpréteur de commandes d’administration (SSH) ».

    Shell
    ssh -p 122 admin@HOSTNAME
    
  3. Configurez la connexion au stockage externe en entrant les commandes suivantes, et en remplaçant les valeurs d’espace réservé par les valeurs réelles de votre connexion.

    • Stockage Blob Azure :

      Shell
      ghe-config secrets.packages.blob-storage-type "azure"
      ghe-config secrets.packages.azure-container-name "AZURE CONTAINER NAME"
      ghe-config secrets.packages.azure-connection-string "CONNECTION STRING"
      
    • Amazon S3 :

      Shell
      ghe-config secrets.packages.blob-storage-type "s3"
      ghe-config secrets.packages.service-url "S3 SERVICE URL"
      ghe-config secrets.packages.s3-bucket "S3 BUCKET NAME"
      ghe-config secrets.packages.aws-access-key "S3 ACCESS KEY ID"
      ghe-config secrets.packages.aws-secret-key "S3 ACCESS SECRET"
      
  4. Pour préparer l’activation de GitHub Packages sur l’instance de préproduction, entrez la commande suivante.

    Shell
    ghe-config app.packages.enabled true
    

5. Restaurer votre sauvegarde de production

Utilisez la commande ghe-restore pour restaurer le reste des données à partir de la sauvegarde. Pour plus d’informations, consultez « Configuration des sauvegardes sur votre instance ».

Si l’instance de préproduction est déjà configurée et si vous souhaitez remplacer les paramètres, le certificat et les données de licence, ajoutez l’option -c à la commande. Pour plus d’informations sur l’option, consultez Utilisation des commandes de sauvegarde et de restauration dans la documentation de GitHub Enterprise Server Backup Utilities.

6. Passer en revue la configuration de l’instance

Pour accéder à l’instance de préproduction à l’aide du même nom d’hôte, mettez à jour votre fichier d’hôtes local afin de résoudre le nom d’hôte de l’instance de préproduction en fonction de l’adresse IP en modifiant le fichier /etc/hosts sur macOS ou Linux, ou le fichier C:\Windows\system32\drivers\etc sur Windows.

Note

Votre instance de préproduction doit être accessible à partir du même nom d’hôte que votre instance de production. Le changement de nom d’hôte pour votre instance GitHub Enterprise Server n’est pas pris en charge. Pour plus d’informations, consultez « Configuration du nom d'hôte pour votre instance ».

Passez ensuite en revue la configuration de l’instance de préproduction dans Management Console. Pour plus d’informations, consultez « Géstion de votre instance à partir de l’IU WEB. ».

Warning

Si vous avez configuré GitHub Actions ou GitHub Packages pour l’instance de préproduction, et si vous souhaitez éviter de remplacer les données de production, vérifiez que la configuration du stockage externe dans la Management Console ne correspond pas à votre instance de production.

7. Appliquer la configuration de l’instance

Pour appliquer la configuration à partir de la Management Console, cliquez sur Enregistrer les paramètres.

Retour en ligne d’un instance intermédiaire

Vous souhaiterez peut-être éteindre une instance intermédiaire pour économiser les coûts et la réactiver si nécessaire.

Une instance peut rester hors connexion pour 60 jours à compter de la dernière version corrective de cette version, augmentée de 7 jours.

Si vous rétablissez l’instance en ligne au cours de la période de temps hors connexion autorisée, GitHub Enterprise Server instancie correctement. Si l’instance reste hors connexion pendant plus longtemps que la période autorisée, GitHub Enterprise Server ne parvient pas à instancier correctement et un message d’erreur avec le texte server has been offline for more than the configured server_rejoin_age_max peut apparaître dans les journaux système. Consultez « À propos des journaux système ».

Si l’instance est bloquée dans l’état d’erreur, vous pouvez exécuter ces commandes pour récupérer.

sudo mv /data/user/consul/server_metadata.json /data/user/consul/server_metadata.json.bak
ghe-config-apply

Pour aller plus loin