Outils pour utilisateurs

Outils du site


admin:services:agir.chapril.org

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.

Sur les vm, une 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 <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 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
admin/services/agir.chapril.org.txt · Dernière modification: 2020/02/05 10:46 par admin