====== Service agir.chapril.org ====== Redirection vers le projet Chapril dans l’instance [[https://agir.april.org/|Redmine de l'April]]. ===== Déploiement ===== ==== DNS ==== Configuration du fichier DNS : cd /etc/bind/zones/masters/ git diff diff --git a/bind/zones/masters/chapril.org b/bind/zones/masters/chapril.org index a5368c5..cb20fcd 100644 --- a/bind/zones/masters/chapril.org +++ b/bind/zones/masters/chapril.org @@ -3,7 +3,7 @@ $TTL 1h @ IN SOA fip.chapril.org. hostmaster.chapril.org. ( - 2019110400 ; Serial - YYYYMMDDnn + 2020010801 ; Serial - YYYYMMDDnn 4h ; Refresh 1h ; Retry 1w ; Expire @@ -50,6 +50,10 @@ icinga2 CNAME galanga.april.org. backup CNAME icinga2 myip CNAME icinga2 +; redirections +agir CNAME fip + ; XMPP (old) muc.xmpp CNAME xmpp echo.xmpp CNAME xmpp Activation : rndc reload chapril.org in external ==== Bastion ==== Configuration du certificat TLS : cd /etc/ git diff dehydrated/domains.txt diff --git a/dehydrated/domains.txt b/dehydrated/domains.txt index b53ff9c..662eb8a 100644 --- a/dehydrated/domains.txt +++ b/dehydrated/domains.txt @@ -15,3 +15,5 @@ pad.chapril.org valise.chapril.org xmpp.chapril.org upload-xmpp.chapril.org drop.chapril.org +agir.chapril.org Activation : dehydrated -c Configuration du serveur web sur la VM bastion : cd /etc/nginx/sites-available cat agir.chapril.org server { listen 80; listen [::]:80; server_name agir.chapril.org; access_log /var/log/nginx/agir.chapril.org/agir.chapril.org.access_log; error_log /var/log/nginx/agir.chapril.org/agir.chapril.org.error_log; # include /etc/nginx/custom_50x; include /etc/nginx/acme-challenge; include /etc/nginx/sexy-chapril; include /etc/nginx/force-ssl.conf; } server { listen 443 ssl; listen [::]:443 ssl; ssl on; server_name agir.chapril.org; access_log /var/log/nginx/agir.chapril.org/agir.chapril.org.access_log; error_log /var/log/nginx/agir.chapril.org/agir.chapril.org.error_log; # include /etc/nginx/custom_50x; ssl_certificate /var/lib/dehydrated/certs/agir.chapril.org/fullchain.pem; ssl_certificate_key /var/lib/dehydrated/certs/agir.chapril.org/privkey.pem; include /etc/nginx/acme-challenge; include /etc/nginx/sexy-chapril; return 301 https://agir.april.org/projects/chapril/issues; } Création du dossier de logs : mkdir /var/log/nginx/agir.chapril.org/ ln -sf /etc/nginx/sites-available/agir.chapril.org /etc/nginx/sites-enabled/ Activation : nginx -t systemctl reload nginx Création du dossier de logs : mkdir /var/log/nginx/agir.chapril.org/ ln -sf /etc/nginx/sites-available/agir.chapril.org /etc/nginx/sites-enabled/ Activation : nginx -t systemctl reload nginx ==== Supervision ==== Monitoring ajouté : cd /etc/icinga2/zones.d/master/cluster/ git diff diff --git a/icinga2/zones.d/master/cluster/bastion.conf b/icinga2/zones.d/master/cluster/bastion.conf index da31c6c..53127e4 100644 --- a/icinga2/zones.d/master/cluster/bastion.conf +++ b/icinga2/zones.d/master/cluster/bastion.conf @@ -25,6 +25,20 @@ object Host "bastion.cluster.chapril.org" { disk_partitions = "/tmp" } + vars.http_vhosts["agir.chapril.org redirection"] = { + http_vhost = "agir.chapril.org" + http_ssl = true + http_uri = "/" + http_expect = "HTTP/1.1 301 Moved Permanently,Location: https://agir.april.org/projects/chapril/issues" + } /* Define notification mail attributes for notification apply rules in `notifications.conf`. */ vars.notification["mail"] = { /* The UserGroup `icingaadmins` is defined in `users.conf`. */ ===== Compte pour la création de note Redmine ===== Dans le Redmine : * Un compte ''chagirbot'' a été créé ; * Un rôle ''Bot'' a été créé avec uniquement le droit de voir les demandes et d'ajouter une note ; * Le compte ''chagirbot'' a été ajouté au projet Chapril avec le rôle ''Bot'' ; * Une clef d'API Redmine a été générée : se connecter sur https://agir.april.org/ avec le compte ''chagirbot'' puis cliquer sur //Mon compte// et aller dans //Clé d'accès API//. Sur les VM, la clef est disponible dans le fichier ''/etc/chagirbot/agiraprilorg.conf''. ===== Chagirbot (Redminebot) ===== Redminebot (//agirbot// sur le réseau IRC [[https://libera.chat/|Libera]]) est un bot qui analyse régulièrement les fichiers Atom de ''agir.april.org'' pour afficher sur un canal IRL l'activité d'un projet. À l'origine dédié à gDTC sur le salon ''#gdtc'', il est utilisé pour le projet admin sur ''#april-admin'' et maintenant pour le Chapril sur ''#april-chapril''. Il a été écrit en Python après grosse réécriture du script redmine IRC bot. Agirbot possède un dépôt Git dans Agir : https://agir.april.org/projects/admins/repository/agirbot la forge de l’April : https://forge.april.org/adminsys/agirbot. ==== Déploiement ==== Dans le réseau IRC Libera, déclarer (//register//) le //nickname// ''chagirbot'' auprès de ''NickServ'' avec un mot de passe. 08:17 -NickServ(NickServ@services.)- 08:18 register xxxxxxxxx chagirbot@chapril.org 08:18 -NickServ(NickServ@services.)- An email containing nickname activation instructions has been sent to chagirbot@chapril.org. 08:18 -NickServ(NickServ@services.)- If you do not complete registration within one day, your nickname will expire. 08:18 -NickServ(NickServ@services.)- chagirbot is now registered to chagirbot@chapril.org, with the password JxQwAKjwC3HFWTfzwiq7. 08:18 -NickServ(NickServ@services.)- 08:18 -NickServ(NickServ@services.)- For frequently-asked questions about the network, please see the 08:18 -NickServ(NickServ@services.)- Knowledge Base page (http://freenode.net/kb/all). Should you need more 08:18 -NickServ(NickServ@services.)- help you can /join #freenode to find network staff. Créer un utilisateur ''chagirbot'' : adduser --system --group --home /srv/chagirbot --shell /bin/false chagirbot Installation des dépendances de paquets: apt-get install python-iso8601 python-twisted python-dateutil python-feedparser Clonage : cd /srv/chagirbot/ git clone april@agir.cluster.april.org:/srv/git/agirbot git Définition de l'exécutable : cd /srv/chagirbot/ mkdir bin cd bin/ ln -s ../git/redminebot.py chagirbot.py Déploiement du fichier de configuration : cp /srv/chagirbot/git/redminebot.conf /etc/chagirbot/chagirbot.conf cd /srv/chagirbot/ mkdir conf cd conf/ ln -s /etc/chagirbot/chagirbot.conf /etc/chagirbot/conf/ Adapter le fichier ''/etc/chagirbot/chagirbot.conf'' : * Mettre le mot de passe IRC du nickname bot ; * définir projet ''chapril'' et canal ''#april-chapril''. Définir le service dans Systemd : cp /srv/chagirbot/git/redminebot.service /etc/systemd/system/ ln -s /etc/systemd/system/chagirbot.service /srv/chagirbot/conf/ Adapter le fichier ''/etc/systmd/system/chagirbot.service'' avec : * Le bon chemin ; * Le bon compte ; * Le bon groupe ; * Le chemin du fichier de configuration passé en paramètre ''ExecStart''. Configurer le lancement du service à l’amorçage (//boot//) : cd ~/ systemctl enable chagirbot Created symlink /etc/systemd/system/multi-user.target.wants/chagirbot.service → /etc/systemd/system/chagirbot.service. Ajouter une sonde dans Icinga2 (''/etc/icinga2/zones.d/master/cluster/admin.conf'') pour valider le bon fonctionnement du bot : vars.process["Chagirbot"] = { procs_command = "python3" procs_argument = "chagirbot.py" procs_critical = "1:1" } ==== Logs ==== Des logs sont consultables via Systemd : journalctl -f -u chagirbot