Déploiement CI/CD avec actions GitHub et serveurs privés
==============================================================
Architecture de déploiement
Dans ce guide technique, nous explorerons la mise en œuvre d'un déploiement CI/CD à l'aide d'actions GitHub et de serveurs privés. Ce processus automatisera la création, les tests et le déploiement d'applications dans un environnement de production.
Prérequis
Un compte GitHub avec un dépôt existant
Un serveur privé avec accès SSH
Accès à la console du serveur
Connaissance de base de Git et des actions GitHub
Configuration des actions GitHub
Créer un flux de travail
1. Connectez-vous à votre compte GitHub et accédez à votre référentiel.
2. Cliquez sur
Paramètres >
Actions >
Nouveau flux de travail.
3. Sélectionnez
Créer un nouveau flux de travail à partir de zéro.
4. Définissez le nom et la description de votre flux de travail.
Configuration du flux de travail
yml
nom : Déploiement CI/CD
sur :
pousser :
succursales :
- principal
emplois :
construire et déployer :
exécution : ubuntu-latest
étapes :
- nom : Code de paiement
utilise : actions/checkout@v2
- nom : Installer les dépendances
exécuter : installation npm
- nom : Code de compilation
exécuter : npm exécuter la construction
- nom : Tests
exécuter : npm exécuter le test
- nom : Déploiement
utilise : appleboy/ssh-action@v1
avec :
hôte : ${{ secrets.PRIVATE_SERVER }}
nom d'utilisateur : ${{ secrets.SERVER_USER }}
clé privée : ${{ secrets.PRIVATE_KEY }}
scénario : |
cd /var/www/html
git pull origine principale
installation npm
npm exécuter la construction
npm démarrer
Variables d'environnement
PRIVATE_SERVER : Adresse IP ou nom du serveur privé.
SERVER_USER : Nom d'utilisateur pour accéder au serveur.
PRIVADA_KEY : Clé privée pour accéder au serveur.
####Configuration SSH
1. Créez un fichier de configuration SSH dans votre référentiel avec le nom « .ssh/config ».
2. Ajoutez la configuration suivante :bash
Hôte PRIVATE_SERVER
Nom d'hôte PRIVATE_SERVER
Utilisateur SERVER_USER
Fichier d'identité ~/.ssh/PRIVATE_KEY
3. Créez un fichier de clé privée sur votre ordinateur local avec le nom « PRIVADA_KEY ».
Configuration du serveur privé
Installer SSH
1. Connectez-vous à votre serveur privé en utilisant SSH.
2. Installez SSH s'il n'est pas installé :bash
sudo apt-get mise à jour
sudo apt-get install openssh-server
3. Redémarrez le service SSH :bash
redémarrage du service sudo ssh
Configuration de l'accès SSH
1. Créez un nouveau groupe d'utilisateurs sur le serveur :bash
sudo groupadd déploiement_group
2. Ajoutez l'utilisateur au groupe :bash
sudo usermod -aG groupe_deploiement SERVER_USER
3. Accordez des autorisations d'écriture au groupe sur le répertoire de déploiement :bash
sudo chown -R SERVER_USER:deployment_group /var/www/html
Déploiement automatisé
1. Enregistrez les modifications apportées à votre flux de travail.
2. Vérifiez que le flux de travail s'exécute correctement.
3. Le déploiement se fera automatiquement à chaque fois qu'un push sera effectué vers la branche principale.
Sécurité
Assurez-vous que la clé privée est cryptée avec un mot de passe.
Limite l'accès au serveur via IP ou un groupe d'utilisateurs.
Utilise un jeton d'accès pour le déploiement.
Problèmes courants
Vérifiez que la clé privée est correctement configurée dans le fichier .ssh/config.
Assurez-vous que le serveur est configuré pour autoriser les connexions SSH.
Vérifiez que le workflow est correctement configuré sur GitHub.
Références
Actions GitHub
SSH
Serveurs privés