======= Service agir.chapril.org ======= Redirection vers le projet Chapril dans le Redmine de l'April. ===== Déploiement ===== ==== DNS ==== Configuration du fichier DNS : =(^-^)=root@dns:/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 SSL : =(^-^)=root@bastion:/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 : =(^-^)=root@bastion:/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é : =(^-^)=root@admin:/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 clé 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 clé est disponible dans le fichier ''/etc/chagirbot/agiraprilorg.conf''. ===== Chagirbot (Redminebot) ===== Redminebot (agirbot sur le réseau Freenode) 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 #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 sur Agir : https://agir.april.org/projects/admins/repository/agirbot ==== Déploiement ==== Sur Freenode IRC, 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 au boot : (April) root@bots:~# 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