Configurer des runners GitHub sur Raspberry Pi pour un déploiement rapide
Publié le 2023-12-25
Dernière mise à jour 2024-03-15
Associé avec #Raspberry Pi , #GitHub Actions , #CI/CD , #Déploiement , #DevOps , #Développement
Par :
Elouan
Introduction
L'utilisation d'un Raspberry Pi comme runner GitHub peut être une solution économique et efficace pour automatiser vos workflows de CI/CD. Dans cet article, nous allons explorer comment configurer des runners GitHub sur votre Raspberry Pi et les utiliser pour un déploiement rapide.
Prérequis
- Un Raspberry Pi (3 ou plus récent recommandé) avec Raspberry Pi OS installé
- Une connexion internet stable
- Un compte GitHub avec des droits d'administrateur sur le repository cible
Configuration du Raspberry Pi
Avant de commencer, assurez-vous que votre Raspberry Pi est à jour :
sudo apt update
sudo apt upgrade -y
Installation du runner GitHub
-
Connectez-vous à votre compte GitHub et accédez au repository où vous souhaitez ajouter le runner.
-
Allez dans Settings > Actions > Runners et cliquez sur "New self-hosted runner".
-
Choisissez "Linux" comme système d'exploitation.
-
Suivez les instructions pour télécharger et configurer le runner sur votre Raspberry Pi. Voici un exemple de commandes que vous devrez exécuter :
mkdir actions-runner && cd actions-runner
curl -o actions-runner-linux-arm-2.299.1.tar.gz -L https://github.com/actions/runner/releases/download/v2.299.1/actions-runner-linux-arm-2.299.1.tar.gz
tar xzf ./actions-runner-linux-arm-2.299.1.tar.gz
- Configurez le runner :
./config.sh --url https://github.com/[OWNER]/[REPO] --token [TOKEN]
Remplacez [OWNER]
, [REPO]
et [TOKEN]
par les valeurs appropriées fournies par GitHub.
- Installez et démarrez le service runner :
sudo ./svc.sh install
sudo ./svc.sh start
Configuration du workflow GitHub Actions
Créez ou modifiez le fichier .github/workflows/deploy.yml
dans votre repository :
name: Deploy to Raspberry Pi
on:
push:
branches: [ main ]
jobs:
deploy:
runs-on: self-hosted
steps:
- uses: actions/checkout@v2
- name: Deploy application
run: |
# Commandes de déploiement
echo "Déploiement en cours..."
# Exemple : copier les fichiers vers le répertoire de déploiement
cp -R ./* /chemin/vers/votre/app/
# Redémarrer les services si nécessaire
sudo systemctl restart votre-service
Optimisation pour un déploiement rapide
- Utilisez des caches pour accélérer les builds :
- uses: actions/cache@v2
with:
path: ~/.npm
key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }}
-
Limitez les fichiers à copier en utilisant
.gitignore
et.dockerignore
. -
Utilisez des builds incrementaux quand c'est possible.
-
Parallélisez les tâches qui peuvent l'être :
jobs:
build:
runs-on: self-hosted
steps:
# ...
test:
runs-on: self-hosted
steps:
# ...
deploy:
needs: [build, test]
runs-on: self-hosted
steps:
# ...
Sécurité et bonnes pratiques
-
Utilisez des secrets GitHub pour stocker les informations sensibles.
-
Limitez les permissions du runner au strict nécessaire.
-
Mettez régulièrement à jour le runner et le système d'exploitation du Raspberry Pi.
-
Surveillez l'utilisation des ressources du Raspberry Pi pour éviter la surcharge.
Conclusion
L'utilisation d'un Raspberry Pi comme runner GitHub offre une solution flexible et économique pour l'intégration continue et le déploiement. En suivant ces étapes, vous pouvez mettre en place un système de déploiement rapide et efficace pour vos projets.
Note : Cet article fournit une base solide pour configurer des runners GitHub sur un Raspberry Pi. Pour des configurations plus avancées ou des conseils sur l'optimisation des performances, n'hésitez pas à me contacter via la page Contact.