Table des matières
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 <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
chaprilet 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
