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 :

Author's profile picture

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

  1. Connectez-vous à votre compte GitHub et accédez au repository où vous souhaitez ajouter le runner.

  2. Allez dans Settings > Actions > Runners et cliquez sur "New self-hosted runner".

  3. Choisissez "Linux" comme système d'exploitation.

  4. 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
  1. 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.

  1. 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

  1. Utilisez des caches pour accélérer les builds :
    - uses: actions/cache@v2
      with:
        path: ~/.npm
        key: ${{ runner.OS }}-node-${{ hashFiles('**/package-lock.json') }}
  1. Limitez les fichiers à copier en utilisant .gitignore et .dockerignore.

  2. Utilisez des builds incrementaux quand c'est possible.

  3. 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

  1. Utilisez des secrets GitHub pour stocker les informations sensibles.

  2. Limitez les permissions du runner au strict nécessaire.

  3. Mettez régulièrement à jour le runner et le système d'exploitation du Raspberry Pi.

  4. 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.