Aller au contenu

Serveur Deploiement

Deploiment des applications en "long polling"#

Principe#

Les raspberry-pi ne sont pas "visibles" depuis le système de gestion de code (github ou gitlab par exemple), il n'est donc pas possible d'utiliser la stratégie de webhook afin de déclencher le déploiement automatique d'une nouvelle version lors d'un TAG sur le dépot. Nous allons donc mettre en place la démarche inverse qui consiste à sonder régulièrement (long polling) le dépot pour vérifier si il y a une nouvelle version à déployer.

Pour cela il va falloir mettr een place 2 choses :

  • un script de déploiement
  • un CRON pour le déclencher à interval régulier

Le script#

Le script de déploiement sera un script bash qui effectura les actions suivantes:

  • vérifier sur origin si il y a une nouvelle version sur le dépot "master" (ou main)
  • si oui mettre à jour la copie local
  • rebuilder l'image docker (ou les images)
  • relancer le service

Le cron#

Il y a plusieurs manières de gérer un cron, vous pouvez éditer le CRON du user pi, mais cela peut poser des problèmes pour redémarer les services (sudo)

Sinon il est possible de créer un fichier dédié dans /etc/cron.d :

/etc/cron.d/cicd:

*/1 * * * * root /home/pi/deploy.sh >> /var/log/deploy.log 2>&1
Pour vérifier le dépot toutes les minutes