diff --git a/README.md b/README.md index c35ba9d..51040c9 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,13 @@ Un démon simple écrit en Go qui prend une requête PURGE en entrée et la transmet à plusieurs serveurs varnish. ## Installation -L'installation se fait via un playbook dans le dépot [ansible-dev](https://gitlab.infolegale.net/infrastructure/ansible-dev/-/blob/master/playbooks/http-broadcaster.yml). -Le rôle va se charger de déposer l'artefact créé par la pipeline de ce projet, le fichier de service systemd et démarrer le démon. -Le rôle dépose également la liste des serveurs varnish à côté du binaire, au format : +* Compiler le programme +``` +cd app/ +go get ./... +CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" -o ../build/http-broadcaster main.go +``` +* Déposer la liste des serveurs varnish à côté du binaire, avec ce format : ``` http://10.13.32.1:6081,http://10.13.32.2:6081 ``` @@ -16,7 +20,7 @@ http://10.13.32.1:6081,http://10.13.32.2:6081 * Génère la liste des serveurs Varnish en lisant le fichier "varnish" présent à côté du binaire. * Ecoute sur le port 6081. * Healthcheck disponible sur l'uri /healthcheck pour vérifier son bon fonctionnement. Renvoie un code HTTP 200 et le message "OK". -* Traite toutes les requêtes entrantes comme l'url à purger dans varnish. Par exemple un appel sur http://10.13.101.11:6081/codes/api/greffes/0101 entrainera une purge de l'uri "/codes/api/greffes/0101" sur les serveurs Varnish. +* Traite toutes les requêtes entrantes comme l'url à purger dans varnish. Par exemple un appel sur http://10.13.101.11:6081/hello/test entrainera une purge de l'uri "/hello/test" sur les serveurs Varnish. ## Usage Les interactions se font via le protocol HTTP. Les applications où les utilisateurs envoient une requête de méthode PURGE vers le démon. diff --git a/app/http-broadcaster.service b/app/http-broadcaster.service new file mode 100755 index 0000000..781e6d4 --- /dev/null +++ b/app/http-broadcaster.service @@ -0,0 +1,15 @@ +[Unit] +Description=Daemon de broadcast HTTP des purges varnish + +[Service] +User={{ app_user }} +Group={{ app_user }} +WorkingDirectory=/opt/http-broadcaster/ +ExecStart=opt/http-broadcaster/http-broadcaster +Type=simple +TimeoutStopSec=10 +Restart=on-failure +RestartSec=5 + +[Install] +WantedBy=multi-user.target