Outils pour utilisateurs

Outils du site


admin:services:agir.chapril.org

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
admin:services:agir.chapril.org [2020/01/08 16:07] adminadmin:services:agir.chapril.org [2021/12/04 14:38] (Version actuelle) – Ajout génération de la clé d'API Redmine admin
Ligne 81: Ligne 81:
  
 server { server {
-======= Service agir.chapril.org =======+    listen 443 ssl; 
 +    listen [::]:443 ssl; 
 +    ssl on; 
 +     
 +    server_name agir.chapril.org;
  
-Redirection vers le projet Chapril dans le Redmine de l'April.+    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;
  
-===== Déploiement =====+    include /etc/nginx/acme-challenge; 
 +    include /etc/nginx/sexy-chapril;
  
-==== DNS ==== +    return 301 https://agir.april.org/projects/chapril/issues; 
-Configuration du fichier DNS :+
 +</code> 
 + 
 +Création du dossier de logs :
 <code> <code>
-=(^-^)=root@dns:/etc/bind/zones/masters# git diff +mkdir /var/log/nginx/agir.chapril.org/ 
-diff --git a/bind/zones/masters/chapril.org b/bind/zones/masters/chapril.org +ln -sf /etc/nginx/sites-available/agir.chapril.org /etc/nginx/sites-enabled/
-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 +
-+wiki    CNAME   fip +
-+
- ; XMPP (old) +
- muc.xmpp    CNAME   xmpp +
- echo.xmpp   CNAME   xmpp+
 </code> </code>
  
 Activation : Activation :
 <code> <code>
-rndc reload chapril.org in external+nginx -t 
 +systemctl reload nginx
 </code> </code>
  
- +Création du dossier de logs :
-==== Bastion ==== +
-Configuration du certificat SSL :+
 <code> <code>
-=(^-^)=root@bastion:/etc# git diff dehydrated/domains.txt +mkdir /var/log/nginx/agir.chapril.org
-diff --git a/dehydrated/domains.txt b/dehydrated/domains.txt +ln -sf /etc/nginx/sites-available/agir.chapril.org /etc/nginx/sites-enabled/
-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 +
-+wiki.chapril.org+
 </code> </code>
  
 Activation : Activation :
 <code> <code>
-dehydrated -c+nginx -
 +systemctl reload nginx
 </code> </code>
  
-Configuration du serveur web sur la vm bastion :+==== Supervision ==== 
 + 
 +Monitoring ajouté :
 <code> <code>
-=(^-^)=root@bastion:/etc/nginx/sites-availablecat wiki.chapril.org  +=(^-^)=root@admin:/etc/icinga2/zones.d/master/clustergit diff 
-server +diff --git a/icinga2/zones.d/master/cluster/bastion.conf b/icinga2/zones.d/master/cluster/bastion.conf 
-    listen 80; +index da31c6c..53127e4 100644 
-    listen [::]:80; +--- a/icinga2/zones.d/master/cluster/bastion.conf 
-     ++++ b/icinga2/zones.d/master/cluster/bastion.conf 
-    server_name wiki.chapril.org;+@@ -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" 
 ++  }
  
-    access_log /var/log/nginx/wiki.chapril.org/wiki.chapril.org.access_log; +   /* Define notification mail attributes for notification apply rules in `notifications.conf`*/ 
-    error_log /var/log/nginx/wiki.chapril.org/wiki.chapril.org.error_log;+   vars.notification["mail"] = { 
 +     /* The UserGroup `icingaadmins` is defined in `users.conf`*/
  
-#    include /etc/nginx/custom_50x; +</code>
-    include /etc/nginx/acme-challenge; +
-    include /etc/nginx/sexy-chapril; +
-    include /etc/nginx/force-ssl.conf; +
-}+
  
  
-server { +===== Compte pour la création de note Redmine =====
-    listen 443 ssl; +
-    listen [::]:443 ssl; +
-    ssl on; +
-     +
-    server_name wiki.chapril.org;+
  
-    access_log /var/log/nginx/wiki.chapril.org/wiki.chapril.org.access_log+Dans le Redmine : 
-    error_log /var/log/nginx/wiki.chapril.org/wiki.chapril.org.error_log;+* 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 »
  
-#    include /etc/nginx/custom_50x; +Sur les vm, la clé est disponible dans le fichier ''/etc/chagirbot/agiraprilorg.conf''.
-    ssl_certificate     /var/lib/dehydrated/certs/wiki.chapril.org/fullchain.pem; +
-    ssl_certificate_key /var/lib/dehydrated/certs/wiki.chapril.org/privkey.pem;+
  
-    include /etc/nginx/acme-challenge; 
-    include /etc/nginx/sexy-chapril; 
  
-    return 301 https://wiki.april.org/w/Chapril; +===== Chagirbot (Redminebot) ===== 
-} + 
-</code>+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.
  
-Création du dossier de logs : 
 <code> <code>
-mkdir /var/log/nginx/agir.chapril.org/ +08:17 -NickServ(NickServ@services.)- 
-ln -sf /etc/nginx/sites-available/wiki.chapril.org /etc/nginx/sites-enabled/+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.
 </code> </code>
  
-Activation +Créer un utilisateur ''chagirbot'' 
-<code> +<code bash
-nginx -+adduser --system --group --home /srv/chagirbot --shell /bin/false chagirbot
-systemctl reload nginx+
 </code> </code>
  
-Création du dossier de logs +Installation des dépendances de paquets
-<code> +<code bash
-mkdir /var/log/nginx/wiki.chapril.org/ +apt-get install python-iso8601 python-twisted python-dateutil python-feedparser
-ln -sf /etc/nginx/sites-available/agir.chapril.org /etc/nginx/sites-enabled/+
 </code> </code>
  
-Activation :+Clonage : 
 +<code bash> 
 +cd /srv/chagirbot/ 
 +git clone april@agir.cluster.april.org:/srv/git/agirbot git 
 +</code> 
 + 
 +Définition de l'exécutable : 
 +<code bash> 
 +cd /srv/chagirbot/ 
 +mkdir bin 
 +cd bin 
 +ln -s ../git/redminebot.py chagirbot.py 
 +</code> 
 + 
 +Déploiement du fichier de configuration : 
 +<code bash> 
 +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/ 
 +</code> 
 + 
 +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 : 
 +<code bash> 
 +cp /srv/chagirbot/git/redminebot.service /etc/systemd/system/ 
 +ln -s /etc/systemd/system/chagirbot.service /srv/chagirbot/conf/ 
 +</code> 
 + 
 +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 : 
 +<code bash> 
 +(April) root@bots:~# systemctl enable chagirbot 
 +Created symlink /etc/systemd/system/multi-user.target.wants/chagirbot.service → /etc/systemd/system/chagirbot.service. 
 +</code> 
 + 
 +Ajouter une sonde dans Icinga2 (''/etc/icinga2/zones.d/master/cluster/admin.conf'') pour valider le bon fonctionnement du bot :
 <code> <code>
-nginx -t +  vars.process["Chagirbot"] = { 
-systemctl reload nginx+    procs_command = "python3" 
 +    procs_argument = "chagirbot.py" 
 +    procs_critical = "1:1" 
 +  }
 </code> </code>
 +
 +==== Logs ====
 +Des logs sont consultables via SystemD :
 +<code bash>
 +journalctl -f -u chagirbot
 +</code>
 +
 +
  
admin/services/agir.chapril.org.1578499654.txt.gz · Dernière modification : 2020/01/08 16:07 de admin