Outils pour utilisateurs

Outils du site


admin:services:agir.chapril.org

Ceci est une ancienne révision du document !


Service agir.chapril.org

Redirection vers le projet Chapril dans l’instance 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 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 <chagirbot> 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
admin/services/agir.chapril.org.1771289302.txt.gz · Dernière modification : 2026/02/17 00:48 de fhenry2