Fedora-Fr - Communauté francophone Fedora - Linux

Planet de Fedora-Fr : la communauté francophone autour de la distribution Linux Fedora

A propos

Cette page est actualisée toutes les heures.

Cette page est une sélection de blogs autour de Fedora. Fedora-Fr.org décline toute responsabilité au sujet des propos tenus par les auteurs des blogs de ce planet. Leurs propos sont leur entière responsabilité.

Le contenu de ce planet appartient à leurs auteurs respectifs. Merci de consulter leur blogs pour obtenir les licences respectives.

Le blog déménage !

Guillaume Kulakowski

Non, ce blog n'est pas mort !

Je vais bientôt le remettre en activité. Je commence déjà par le faire voler de ses propres ailles et par l'héberger sur son propre VPS. J'ai fais le choix pour ça d'un VC1M de chez Scaleway. Je reviendrais dans un prochain billet sur le choix de cet hébergement made in Online.fr a.k.a Free.fr mais également sur le pourquoi 4Go de RAM pour un simple blog (teaser: il n'y a pas que ça ;-)).

Pour ce qui est de l'architecture, comme pour famas, je suis passé sur du 100% Docker via mes containers migrés pour l'occasion de CentOS vers Alpine. Pour finir, j'ai également fait le choix du full https via Let's encrypt.

Voila, maintenant il ne reste plus qu'à bloguer à nouveau, j'ai déjà quelques idées d'articles autour de la domotique, de Docker voir peut-être un peu de Trail.

PHP version 7.1.15RC1 et 7.2.3RC1

Remi Collet

Les versions Release Candidate sont disponibles dans le dépôt remi-test pour Fedora et Enterprise Linux (RHEL / CentOS) afin de permettre au plus grand nombre de les tester. Elles sont  fournit en Software Collections, pour une installation en parallèle, solution idéale pour ce type de tests. (uniquement pour x86_64) et également en paquets de base.

Les RPM de PHP version 7.2.3RC1 sont disponibles en SCL dans le dépôt remi-test et les paquets de base dans le dépôt remi-php72-test pour Fedora 25-27 et Enterprise Linux.

Les RPM de PHP version 7.1.15RC1 sont disponibles en SCL dans le dépôt remi-test et les paquets de base dans le dépôt remi-test pour Fedora 26-27 ou  remi-php71-test pour Fedora 24-25 et Enterprise Linux.

PHP Version 7.0 est désormais en mode maintenance de sécurité, il n'y aura donc plus de Release Candidate.

emblem-notice-24.pngInstallation : voir la Configuration du dépôt et choisir la version.

Installation en parallèle, en Software Collections de PHP 7.2 :

yum --enablerepo=remi-test install php72

Installation en parallèle, en Software Collections de PHP 7.1 :

yum --enablerepo=remi-test install php71

Mise à jour, de PHP 7.2 :

yum --enablerepo=remi-php72,remi-php72-test update php\*

Mise à jour, de PHP 7.1:

yum --enablerepo=remi-php71,remi-php71-test update php\*

A noter : la version 7.2.3RC1 est aussi disponible dans Fedora rawhide pour la QA.

emblem-notice-24.pngLes paquets pour EL-7 on été construit à partir de RHEL-7.4.

emblem-notice-24.pngLa version RC est généralement identique à la version finale (aucun changement accepté, à l'exception de correctifs de sécurité).

Software Collections (php71, php72)

Paquets standards (php)

FreeIPA deuxième partie en approche...

Sylvain Réault FreeIPA deuxième partie en approche... VINDICATORs mar 13/02/2018 - 21:53

Votez pour les fonds d'écran supplémentaires de Fedora 28 !

Charles-Antoine Couret

nuancier-f24-voted.png

Depuis Fedora 20, la livrée du système par défaut contient quelques fonds d'écrans additionnels. Et comme d'habitude, les contributeurs pouvaient soumettre leurs propres dessins ou photographies pour décorer cette nouvelle version.

Maintenant que la période de soumission s'est achevée, nous passons à la phase de vote. Tout possesseur d'un compte FAS peut en sélectionner 16 parmi les dizaines qui sont disponibles. Les plus populaires seront bien évidemment choisis et disponibles dans la Fedora 28 à sa sortie.

Le vote se déroule dans l'application Nuancier jusqu'au 26 février !

Pour ceux que cela intéresse, le badge associé à cette action nécessite une action manuelle. Il suffit de cliquer sur un lien, proposé sur la page après le vote.

FreeIPA-French Client (en Français)

Sylvain Réault FreeIPA-French Client (en Français) VINDICATORs dim 11/02/2018 - 11:51

Optimisation de script et autres...

Sylvain Réault Optimisation de script et autres... VINDICATORs ven 09/02/2018 - 19:44

En hivers met tes chaussettes

Matthieu Saulnier

Et oui! c'est la saison des chaussettes, histoire de pas attraper froid. On peut même enfiler plusieurs paires, pour avoir encore plus chaud! Dans mon précédent article, je vous parlais de Dotclear, et d'une feature très attendue, à propos de socket. Depuis la sortie de la toute dernière version, il est désormais possible de brancher l'application PHP au serveur de base de données via socket Unix (aussi appelé UDS: Unix Domain Socket).

Avant, on avait pas le choix, on était obligé de passer par le socket TCP. La plupart d'entre nous, pour ne pas dire "tout le monde", passe par les sockets TCP. Lorsque qu'une application quelconque se connecte au serveur de base de données par son port d'écoute, on passe par le socket TCP sans même s'en rendre compte. Et pourquoi on fait tous cela ? Parce que c'est facile, il faut l'admettre. Pourtant, des fichiers verrou (socket Unix), il y en a beaucoup dans les systèmes GNU/Linux et pour cause, ils sont plus performants et plus rapides que les sockets TCP. Je laisse le soin au lecteur de chercher des comparatifs de test de performances, c'est pas ce qui manque sur le web. Et donc des fichiers verrou il y en a partout, il y en a même un fourni par le serveur de base de données MariaDB.

Dans l'optique de faire gagner quelques millisecondes à Dotclear, d'augmenter la réactivité du site, et d'alléger la charge sur la machine, le choix d'UDS s'impose de par ses perfs au banc d'essai. Pour rajouter un peu de challenge (sinon où est le fun ?), la migration aura lieu dans un environnement entièrement full stack Docker, avec SELinux activé.

Présentation du système

L'infrastructure se découpe en trois containers docker, le premier est pour Apache, il communique déjà avec PHP-FPM par UDS. Le second est pour PHP-FPM, il communique initialement avec MariaDB par socket TCP. Enfin la 3ème brique est pour MariaDB, qui doit maintenir un nom de container constant pour permettre le linkage entre containers avec PHP-FPM (à cause du socket TCP).

Avant toute opération de mise à jour des unités systemd, un travail préparatoire avait déjà été réalisé sur les containers Docker de PHP-FPM et Mariadb quelques mois auparavant. Les unités systemd de MariaDB et PHP-FPM s'étaient vu assigner un volume supplémentaire pour la socket Unix de MariaDB: /run/mariadb/. Comme vous le constaterez dans les unités systemd, les images Docker utilisées sont des images custom, les sources sont disponibles dans mes dépôts Git.

À titre de comparatif uniquement, je joins la version initiale de mes unités systemd:

Les contextes SELinux de certains volumes ne sont pas en MLS (option :Z) dès que le volume est partagé entre deux containers (par exemple /run/mariadb), sinon cela entraine des conflits, et indubitablement des AVC denied. Il sont donc volontairement abaissés en Targeted (option :z) ce qui reste toutefois raisonnable.

Étape 1

Mise à jour manuelle du code de Dotclear. Ce mode de mise à jour est très bien documenté, aussi je ne ne m'attarderais pas trop sur cette étape, à un détail près: Je travaille dans un nouveau répertoire! Si le répertoire racine se nomme /var/www/html, alors je fais tout dans /var/www/html.new et je vous invite à en faire autant! Allez-y, décompressez...

Pour ceux qui ont une politique de permissions en écriture très restrictive, n'oubliez pas de donner les droits en écriture des répertoires suivant au serveur web:

  • themes/
  • plugins/

Sinon ça marche moins bien.

Étape 2

Modification du fichier inc/config.php. C'est à cette étape que l'on va reconfigurer l'accès à la base de données en utilisant la socket Unix. Dans le nouveau fichier (/var/www/html.new/inc/config.php), remplacer:

define('DC_DBHOST','nom_d_hote_du_serveur');

par:

define('DC_DBHOST','localhost:/run/mariadb/mariadb.socket');

La clé ici c'est "localhost:". Après vous pouvez renseigner n'importe quel chemin vers le fichier verrou. Toutes les autres options de configuration restent inchangées.

Restez vigilent par rapport au nom d'utilisateur mariadb, l'accès par le fichier verrou est encore différent des hôtes '@192.168.0.X', '@localhost' et '@%' (et oui, socket TCP oblige...). Il est évident qu'un léger paramétrage de l'utilisateur mariadb est requis.

Étape 3

Couper les services systemd. Pas tous les services, seulement ceux qui accèdent à la base de données, pour pouvoir faire un dernier dump de backup. On coupe:

  1. apache-casper-site.service
  2. php-fpm-casper-site.service

Étape 4

Lancer le backup de la base de données... Comment ça vous n'avez pas de script de backup automatique ?!? Non je rigole, évidemment que vous en avez un. Même quelque chose de simple, une tâche Cron.daily qui contient ce qui suit est largement suffisant:

# setup mdp user mysql
MYSQL_USER_PASSWORD=truc

# utliser mysqldump à la place
mysqldump --opt -S /contener/mariadb-casper-site/run/mariadb/mariadb.socket \
          -u casperlefantom \
          -p$MYSQL_USER_PASSWORD \
          casperlefantom > db-casperlefantom-$(date +%Y%m%d).dump

# compresser les fichiers de dump
pxz db-*-$(date +%Y%m%d).dump

# garder ici les 30 derniers jours
find . -name "db-*.dump.xz" -atime +30 -delete

Il va falloir que je remplace un jour mes tâches Cron par des timers systemd, mais on verra ça une autre fois...

Étape 5

On remplace /var/www/html par /var/www/html.new. Les services sont coupés, on peut y aller sereinement. Par mesure de précaution, on garde l'ancien répertoire sous le nom /var/www/html.old, on est jamais trop prudent.

Puis on peut relancer les services systemd précédemment coupés:

  1. php-fpm-casper-site.service
  2. apache-casper-site.service

Et le tour est joué. Grâce à ce mode opératoire, le site est resté down moins d'une minute, c'est juste parfait. Cerise sur le gâteau, Dotclear passe par la socket Unix pour mettre à jour la base de données à la dernière version installée.

Étape 6

Rendez vous sur la page web /admin/ pour terminer la mise à jour.

Capture décran_2018-01-01_09-06-08.png

Pas besoin de commenter, je trouve le message ma foi explicite. On a terminé l'upgrade de Dotclear.

Et maintenant que l'on a eu ce qu'on voulait, on peut fignoler la mise à jour des unités systemd. Il y a en effet un certain nombre de modifications à effectuer avant que tout soit parfait. Comptons-les ensemble :-)

Étape 7

Modification des unités systemd, ou plutôt nettoyage de printemps.

Souvenez-vous, en début d'article j'avais écrit que MariaDB devait avoir un nom de container constant afin que le linkage inter-container fonctionne à tous les coups. Le linkage, c'est pour les ports d'écoute, et donc les sockets TCP. Sauf que nous ne les utilisons plus à présent, ce qui signifie que l'option --name peut être supprimée.

De même, si le container porte à présent un nom aléatoire, la commande ExecStartPre ne sert plus à rien, puisqu'il n'y a plus d'ancien container portant ce nom-là à supprimer.

Et enfin, l'option -p pour exposer le port d'écoute servait à la fois pour le script de dump de backup, mais aussi pour mes opérations de maintenance sur le serveur de base de données (gestion des utilisateurs mariadb, mots de passe, etc...). Je n'en ai plus l'utilité puisque je passe par UDS pour le backup.

Voici la version finale de mariadb-casper-site.service.

Parlons à présent de l'unité de PHP-FPM. On peut supprimer toute dépendance au service MariaDB car il n'y a plus de linkage inter-container nécessaire. Concrètement, les options BindTo et --link passent à la trappe, les services After seront juste épurés.

Et voilà le résultat final de php-fpm-casper-site.service.

Étape 8

Reload systemd. Faudrait pas oublier, quand même.

En une commande c'est réglé, et pas besoin de rebooter:

# systemctl daemon-reload

Étape 9

Modifier le script de dump de backup.

L'infrastructure vient d'être profondément remaniée. Ce remaniement engendre des modifications et des adaptations de tout ce qu'il y a autour, notamment les scripts de backup. N'oubliez pas de contrôler tout ce qui gravite autour des services principaux, c'est malheureusement trop facile de casser un backup automatique avec un petit changement d'architecture de rien du tout.

En hivers met tes chaussettes

Matthieu Saulnier

Et oui! c'est la saison des chaussettes, histoire de pas attraper froid. On peut même enfiler plusieurs paires, pour avoir encore plus chaud! Dans mon précédent article, je vous parlais de Dotclear, et d'une feature très attendue, à propos de socket. Depuis la sortie de la toute dernière version, il est désormais possible de brancher l'application PHP au serveur de base de données via socket Unix (aussi appelé UDS: Unix Domain Socket).

Avant, on avait pas le choix, on était obligé de passer par le socket TCP. La plupart d'entre nous, pour ne pas dire "tout le monde", passe par les sockets TCP. Lorsque qu'une application quelconque se connecte au serveur de base de données par son port d'écoute, on passe par le socket TCP sans même s'en rendre compte. Et pourquoi on fait tous cela ? Parce que c'est facile, il faut l'admettre. Pourtant, des fichiers verrou (socket Unix), il y en a beaucoup dans les systèmes GNU/Linux et pour cause, ils sont plus performants et plus rapides que les sockets TCP. Je laisse le soin au lecteur de chercher des comparatifs de test de performances, c'est pas ce qui manque sur le web. Et donc des fichiers verrou il y en a partout, il y en a même un fourni par le serveur de base de données MariaDB.

Dans l'optique de faire gagner quelques millisecondes à Dotclear, d'augmenter la réactivité du site, et d'alléger la charge sur la machine, le choix d'UDS s'impose de par ses perfs au banc d'essai. Pour rajouter un peu de challenge (sinon où est le fun ?), la migration aura lieu dans un environnement entièrement full stack Docker, avec SELinux activé.

Présentation du système

L'infrastructure se découpe en trois containers docker, le premier est pour Apache, il communique déjà avec PHP-FPM par UDS. Le second est pour PHP-FPM, il communique initialement avec MariaDB par socket TCP. Enfin la 3ème brique est pour MariaDB, qui doit maintenir un nom de container constant pour permettre le linkage entre containers avec PHP-FPM (à cause du socket TCP).

Avant toute opération de mise à jour des unités systemd, un travail préparatoire avait déjà été réalisé sur les containers Docker de PHP-FPM et Mariadb quelques mois auparavant. Les unités systemd de MariaDB et PHP-FPM s'étaient vu assigner un volume supplémentaire pour la socket Unix de MariaDB: /run/mariadb/. Comme vous le constaterez dans les unités systemd, les images Docker utilisées sont des images custom, les sources sont disponibles dans mes dépôts Git.

À titre de comparatif uniquement, je joins la version initiale de mes unités systemd:

Les contextes SELinux de certains volumes ne sont pas en MLS (option :Z) dès que le volume est partagé entre deux containers (par exemple /run/mariadb), sinon cela entraine des conflits, et indubitablement des AVC denied. Il sont donc volontairement abaissés en Targeted (option :z) ce qui reste toutefois raisonnable.

Étape 1

Mise à jour manuelle du code de Dotclear. Ce mode de mise à jour est très bien documenté, aussi je ne ne m'attarderais pas trop sur cette étape, à un détail près: Je travaille dans un nouveau répertoire! Si le répertoire racine se nomme /var/www/html, alors je fais tout dans /var/www/html.new et je vous invite à en faire autant! Allez-y, décompressez...

Pour ceux qui ont une politique de permissions en écriture très restrictive, n'oubliez pas de donner les droits en écriture des répertoires suivant au serveur web:

  • themes/
  • plugins/

Sinon ça marche moins bien.

Étape 2

Modification du fichier inc/config.php. C'est à cette étape que l'on va reconfigurer l'accès à la base de données en utilisant la socket Unix. Dans le nouveau fichier (/var/www/html.new/inc/config.php), remplacer:

define('DC_DBHOST','nom_d_hote_du_serveur');

par:

define('DC_DBHOST','localhost:/run/mariadb/mariadb.socket');

La clé ici c'est "localhost:". Après vous pouvez renseigner n'importe quel chemin vers le fichier verrou. Toutes les autres options de configuration restent inchangées.

Restez vigilent par rapport au nom d'utilisateur mariadb, l'accès par le fichier verrou est encore différent des hôtes '@192.168.0.X', '@localhost' et '@%' (et oui, socket TCP oblige...). Il est évident qu'un léger paramétrage de l'utilisateur mariadb est requis.

Étape 3

Couper les services systemd. Pas tous les services, seulement ceux qui accèdent à la base de données, pour pouvoir faire un dernier dump de backup. On coupe:

  1. apache-casper-site.service
  2. php-fpm-casper-site.service

Étape 4

Lancer le backup de la base de données... Comment ça vous n'avez pas de script de backup automatique ?!? Non je rigole, évidemment que vous en avez un. Même quelque chose de simple, une tâche Cron.daily qui contient ce qui suit est largement suffisant:

# setup mdp user mysql
MYSQL_USER_PASSWORD=truc

# utliser mysqldump à la place
mysqldump --opt -S /contener/mariadb-casper-site/run/mariadb/mariadb.socket \
          -u casperlefantom \
          -p$MYSQL_USER_PASSWORD \
          casperlefantom > db-casperlefantom-$(date +%Y%m%d).dump

# compresser les fichiers de dump
pxz db-*-$(date +%Y%m%d).dump

# garder ici les 30 derniers jours
find . -name "db-*.dump.xz" -atime +30 -delete

Il va falloir que je remplace un jour mes tâches Cron par des timers systemd, mais on verra ça une autre fois...

Étape 5

On remplace /var/www/html par /var/www/html.new. Les services sont coupés, on peut y aller sereinement. Par mesure de précaution, on garde l'ancien répertoire sous le nom /var/www/html.old, on est jamais trop prudent.

Puis on peut relancer les services systemd précédemment coupés:

  1. php-fpm-casper-site.service
  2. apache-casper-site.service

Et le tour est joué. Grâce à ce mode opératoire, le site est resté down moins d'une minute, c'est juste parfait. Cerise sur le gâteau, Dotclear passe par la socket Unix pour mettre à jour la base de données à la dernière version installée.

Étape 6

Rendez vous sur la page web /admin/ pour terminer la mise à jour.

Capture décran_2018-01-01_09-06-08.png

Pas besoin de commenter, je trouve le message ma foi explicite. On a terminé l'upgrade de Dotclear.

Et maintenant que l'on a eu ce qu'on voulait, on peut fignoler la mise à jour des unités systemd. Il y a en effet un certain nombre de modifications à effectuer avant que tout soit parfait. Comptons-les ensemble :-)

Étape 7

Modification des unités systemd, ou plutôt nettoyage de printemps.

Souvenez-vous, en début d'article j'avais écrit que MariaDB devait avoir un nom de container constant afin que le linkage inter-container fonctionne à tous les coups. Le linkage, c'est pour les ports d'écoute, et donc les sockets TCP. Sauf que nous ne les utilisons plus à présent, ce qui signifie que l'option --name peut être supprimée.

De même, si le container porte à présent un nom aléatoire, la commande ExecStartPre ne sert plus à rien, puisqu'il n'y a plus d'ancien container portant ce nom-là à supprimer.

Et enfin, l'option -p pour exposer le port d'écoute servait à la fois pour le script de dump de backup, mais aussi pour mes opérations de maintenance sur le serveur de base de données (gestion des utilisateurs mariadb, mots de passe, etc...). Je n'en ai plus l'utilité puisque je passe par UDS pour le backup.

Voici la version finale de mariadb-casper-site.service.

Parlons à présent de l'unité de PHP-FPM. On peut supprimer toute dépendance au service MariaDB car il n'y a plus de linkage inter-container nécessaire. Concrètement, les options BindTo et --link passent à la trappe, les services After seront juste épurés.

Et voilà le résultat final de php-fpm-casper-site.service.

Étape 8

Reload systemd. Faudrait pas oublier, quand même.

En une commande c'est réglé, et pas besoin de rebooter:

# systemctl daemon-reload

Étape 9

Modifier le script de dump de backup.

L'infrastructure vient d'être profondément remaniée. Ce remaniement engendre des modifications et des adaptations de tout ce qu'il y a autour, notamment les scripts de backup. N'oubliez pas de contrôler tout ce qui gravite autour des services principaux, c'est malheureusement trop facile de casser un backup automatique avec un petit changement d'architecture de rien du tout.

En hivers met tes chaussettes

Matthieu Saulnier

Et oui! c'est la saison des chaussettes, histoire de pas attraper froid. On peut même enfiler plusieurs paires, pour avoir encore plus chaud! Dans mon précédent article, je vous parlais de Dotclear, et d'une feature très attendue, à propos de socket. Depuis la sortie de la toute dernière version, il est désormais possible de brancher l'application PHP au serveur de base de données via socket Unix (aussi appelé UDS: Unix Domain Socket).

Avant, on avait pas le choix, on était obligé de passer par le socket TCP. La plupart d'entre nous, pour ne pas dire "tout le monde", passe par les sockets TCP. Lorsque qu'une application quelconque se connecte au serveur de base de données par son port d'écoute, on passe par le socket TCP sans même s'en rendre compte. Et pourquoi on fait tous cela ? Parce que c'est facile, il faut l'admettre. Pourtant, des fichiers verrou (socket Unix), il y en a beaucoup dans les systèmes GNU/Linux et pour cause, ils sont plus performants et plus rapides que les sockets TCP. Je laisse le soin au lecteur de chercher des comparatifs de test de performances, c'est pas ce qui manque sur le web. Et donc des fichiers verrou il y en a partout, il y en a même un fourni par le serveur de base de données MariaDB.

Dans l'optique de faire gagner quelques millisecondes à Dotclear, d'augmenter la réactivité du site, et d'alléger la charge sur la machine, le choix d'UDS s'impose de par ses perfs au banc d'essai. Pour rajouter un peu de challenge (sinon où est le fun ?), la migration aura lieu dans un environnement entièrement full stack Docker, avec SELinux activé.

Présentation du système

L'infrastructure se découpe en trois containers docker, le premier est pour Apache, il communique déjà avec PHP-FPM par UDS. Le second est pour PHP-FPM, il communique initialement avec MariaDB par socket TCP. Enfin la 3ème brique est pour MariaDB, qui doit maintenir un nom de container constant pour permettre le linkage entre containers avec PHP-FPM (à cause du socket TCP).

Avant toute opération de mise à jour des unités systemd, un travail préparatoire avait déjà été réalisé sur les containers Docker de PHP-FPM et Mariadb quelques mois auparavant. Les unités systemd de MariaDB et PHP-FPM s'étaient vu assigner un volume supplémentaire pour la socket Unix de MariaDB: /run/mariadb/. Comme vous le constaterez dans les unités systemd, les images Docker utilisées sont des images custom, les sources sont disponibles dans mes dépôts Git.

À titre de comparatif uniquement, je joins la version initiale de mes unités systemd:

Les contextes SELinux de certains volumes ne sont pas en MLS (option :Z) dès que le volume est partagé entre deux containers (par exemple /run/mariadb), sinon cela entraine des conflits, et indubitablement des AVC denied. Il sont donc volontairement abaissés en Targeted (option :z) ce qui reste toutefois raisonnable.

Étape 1

Mise à jour manuelle du code de Dotclear. Ce mode de mise à jour est très bien documenté, aussi je ne ne m'attarderais pas trop sur cette étape, à un détail près: Je travaille dans un nouveau répertoire! Si le répertoire racine se nomme /var/www/html, alors je fais tout dans /var/www/html.new et je vous invite à en faire autant! Allez-y, décompressez...

Pour ceux qui ont une politique de permissions en écriture très restrictive, n'oubliez pas de donner les droits en écriture des répertoires suivant au serveur web:

  • themes/
  • plugins/

Sinon ça marche moins bien.

Étape 2

Modification du fichier inc/config.php. C'est à cette étape que l'on va reconfigurer l'accès à la base de données en utilisant la socket Unix. Dans le nouveau fichier (/var/www/html.new/inc/config.php), remplacer:

define('DC_DBHOST','nom_d_hote_du_serveur');

par:

define('DC_DBHOST','localhost:/run/mariadb/mariadb.socket');

La clé ici c'est "localhost:". Après vous pouvez renseigner n'importe quel chemin vers le fichier verrou. Toutes les autres options de configuration restent inchangées.

Restez vigilent par rapport au nom d'utilisateur mariadb, l'accès par le fichier verrou est encore différent des hôtes '@192.168.0.X', '@localhost' et '@%' (et oui, socket TCP oblige...). Il est évident qu'un léger paramétrage de l'utilisateur mariadb est requis.

Étape 3

Couper les services systemd. Pas tous les services, seulement ceux qui accèdent à la base de données, pour pouvoir faire un dernier dump de backup. On coupe:

  1. apache-casper-site.service
  2. php-fpm-casper-site.service

Étape 4

Lancer le backup de la base de données... Comment ça vous n'avez pas de script de backup automatique ?!? Non je rigole, évidemment que vous en avez un. Même quelque chose de simple, une tâche Cron.daily qui contient ce qui suit est largement suffisant:

# setup mdp user mysql
MYSQL_USER_PASSWORD=truc

# utliser mysqldump à la place
mysqldump --opt -S /contener/mariadb-casper-site/run/mariadb/mariadb.socket \
          -u casperlefantom \
          -p$MYSQL_USER_PASSWORD \
          casperlefantom > db-casperlefantom-$(date +%Y%m%d).dump

# compresser les fichiers de dump
pxz db-*-$(date +%Y%m%d).dump

# garder ici les 30 derniers jours
find . -name "db-*.dump.xz" -atime +30 -delete

Il va falloir que je remplace un jour mes tâches Cron par des timers systemd, mais on verra ça une autre fois...

Étape 5

On remplace /var/www/html par /var/www/html.new. Les services sont coupés, on peut y aller sereinement. Par mesure de précaution, on garde l'ancien répertoire sous le nom /var/www/html.old, on est jamais trop prudent.

Puis on peut relancer les services systemd précédemment coupés:

  1. php-fpm-casper-site.service
  2. apache-casper-site.service

Et le tour est joué. Grâce à ce mode opératoire, le site est resté down moins d'une minute, c'est juste parfait. Cerise sur le gâteau, Dotclear passe par la socket Unix pour mettre à jour la base de données à la dernière version installée.

Étape 6

Rendez vous sur la page web /admin/ pour terminer la mise à jour.

Capture décran_2018-01-01_09-06-08.png

Pas besoin de commenter, je trouve le message ma foi explicite. On a terminé l'upgrade de Dotclear.

Et maintenant que l'on a eu ce qu'on voulait, on peut fignoler la mise à jour des unités systemd. Il y a en effet un certain nombre de modifications à effectuer avant que tout soit parfait. Comptons-les ensemble :-)

Étape 7

Modification des unités systemd, ou plutôt nettoyage de printemps.

Souvenez-vous, en début d'article j'avais écrit que MariaDB devait avoir un nom de container constant afin que le linkage inter-container fonctionne à tous les coups. Le linkage, c'est pour les ports d'écoute, et donc les sockets TCP. Sauf que nous ne les utilisons plus à présent, ce qui signifie que l'option --name peut être supprimée.

De même, si le container porte à présent un nom aléatoire, la commande ExecStartPre ne sert plus à rien, puisqu'il n'y a plus d'ancien container portant ce nom-là à supprimer.

Et enfin, l'option -p pour exposer le port d'écoute servait à la fois pour le script de dump de backup, mais aussi pour mes opérations de maintenance sur le serveur de base de données (gestion des utilisateurs mariadb, mots de passe, etc...). Je n'en ai plus l'utilité puisque je passe par UDS pour le backup.

Voici la version finale de mariadb-casper-site.service.

Parlons à présent de l'unité de PHP-FPM. On peut supprimer toute dépendance au service MariaDB car il n'y a plus de linkage inter-container nécessaire. Concrètement, les options BindTo et --link passent à la trappe, les services After seront juste épurés.

Et voilà le résultat final de php-fpm-casper-site.service.

Étape 8

Reload systemd. Faudrait pas oublier, quand même.

En une commande c'est réglé, et pas besoin de rebooter:

# systemctl daemon-reload

Étape 9

Modifier le script de dump de backup.

L'infrastructure vient d'être profondément remaniée. Ce remaniement engendre des modifications et des adaptations de tout ce qu'il y a autour, notamment les scripts de backup. N'oubliez pas de contrôler tout ce qui gravite autour des services principaux, c'est malheureusement trop facile de casser un backup automatique avec un petit changement d'architecture de rien du tout.

PHPUnit 7.0

Remi Collet

Les RPM de PHPUnit version 7.0 sont disponibles dans le dépôt remi pour Fedora ≥ 24 et pour Enterprise Linux (CentOS, RHEL...)

Documentation :

emblem-notice-24.pngCette nouvelle version nécessite PHP ≥ 7.1 et n'est pas rétro-compatible avec les versions précédentes, donc s'installe en parallèle des versions 5 et 6.

Installation, Fedora :

dnf --enablerepo=remi install phpunit7

Installation, Enterprise Linux :

yum --enablerepo=remi install phpunit7

Remarque: cet outil est une pièce essentielle de la QA PHP dans Fedora. Je prévois rapidement, une mise à jour dans Fedora 28, dès que les revues des dépendances seront approuvées :

  • 1541346: phpunit7 - The PHP Unit Testing framework
  • 1541343: php-phpunit-php-code-coverage6 - PHP code coverage information
  • 1541342: php-phpunit-php-token-stream3 - Wrapper around PHP tokenizer extension
  • 1541340: php-phpunit-mock-objects6 - Mock Object library for PHPUnit
  • 1541337: php-sebastian-diff3 - Diff implementation
  • 1541334: PHP Utility class for timing - php-phpunit-php-timer2
  • 1539554: php-phpunit-php-invoker2 - Invoke callables with a timeout

Appel à tests de l'autonomie des ordinateurs portables, partie 2

Charles-Antoine Couret

Le développeur de Red Hat, Hans de Goede, travaille pour Fedora 28 afin d'améliorer l'autonomie des ordinateurs portables avec notre système préféré. J'en avais déjà parlé dans un article précédent mais ici un nouveau test est requis pour activer une nouvelle fonctionnalité.

Notons que ce test ne concerne pas uniquement Fedora, tout test avec un noyau récent est la bienvenue.

L'un des travaux pour cela est d'activer l'économie d'énergie (Panel Self Refresh) de la communication entre l'écran de l'ordinateur portable et de la carte graphique (à priori ceux d'Intel uniquement) ce qui permettrait de sauver environ 0.5W (ce qui peut représenter entre 1 et 10% de la consommation d'un ordinateur portable).

Si vous souhaitez donner un coup de main, ce serait apprécié. Il faut bien entendu d'un ordinateur portable disposant d'un écran eDP ce que Linux peut vous faire savoir via la commande :

ls /sys/class/drm | grep "-eDP-1"

Un résulat doit apparaître suite à cette commande.

Procédure de tests

Le test est plutôt simple. À partir d'une Fedora la plus fraîche possible (désactivez toutes les optimisations que vous avez fait avec powertop éventuellement). Lancez powertop pendant 5-10 minutes, sans aucun autre logiciel de lancé, uniquement powertop dans le terminal.

Récupérez la plus basse valeur de consommation durant cette période, qui doit être entre 5-30W environ.

Ensuite, répétez la procédure en ajoutant l'option de démarrage i915.enable_psr=1.

Au redémarrage, vérifiez que tout est OK ainsi :

cat /sys/kernel/debug/dri/0/i915_edp_psr_status

existe et est OK.

Après la mesure, vérifiez que l'éteinte reprise de l'écran fonctionne, de même que la mise en veille.

À la fin du test, vous pouvez contacter hdegoede@redhat.com directement en précisant :

  • Si cela a été un succès, sinon quels problèmes il y a eu ;
  • La différence de consommation entre avant et après le correctif ;
  • La marque et modèle de votre ordinateur ;
  • La sortie des commandes
cat /proc/cpuinfo | grep "model name"
cat /sys/class/dmi/id/modalias

Suivant les résultats de ces analyses, l'option sera activée nativement, ou alors sous forme de liste noire ou blanche pour en faire bénéficier que ceux dont cela est efficace et ne pose pas de régressions. Plus de modèles sont testés, mieux c'est.

Vacance...

Sylvain Réault Vacance... VINDICATORs jeu 01/02/2018 - 18:48

PHP version 7.1.14 et 7.2.2

Remi Collet

Les RPM de PHP version 7.2.2 sont disponibles dans le dépôt remi-php72 pour Fedora 25-27 et et Enterprise Linux 6 (RHEL, CentOS) ainsi qu'en Software Collection dans le dépôt remi-safe.

Les RPM de PHP version 7.1.14 sont disponibles dans le dépôt remi pour Fedora 26-27 et dans le dépôt remi-php71 pour Fedora 24-25 et Enterprise Linux (RHEL, CentOS).

emblem-notice-24.pngPas de correctifs de sécurité ce mois ci, donc pas de mise à jour des versions 5.6.33 et 7.0.27.

emblem-important-2-24.pngPHP version 5.5 a atteint sa fin de vie et n'est plus maintenu par le projet.

Ces versions sont aussi disponibles en Software Collections.

Annonces des versions :

emblem-notice-24.pngInstallation : voir l'assistant de configuration et choisir la version et le mode d'installation.

Remplacement du PHP par défaut du système par la version 7.2 (le plus simple) :

yum-config-manager --enable remi-php72
yum update

Installation en parallèle, en Software Collection de PHP 7.2 (x86_64 uniquement) :

yum install php72

Remplacement du PHP par défaut du système par la version 7.1 (le plus simple) :

yum-config-manager --enable remi-php71
yum update

Installation en parallèle, en Software Collections de PHP 7.1 (x86_64 uniquement) :

yum install php71

Et bientôt dans les mises à jour officielles:

emblem-important-2-24.pngÀ noter :

  • la version EL7 est construite avec RHEL-7.4
  • la version EL6 est construite avec RHEL-6.9
  • beaucoup de nouvelles extensions sont aussi disponible, voir PECL extension RPM status page

emblem-notice-24.pngInformations, lire :

Paquets de base (php)

Software Collections (php56 / php70 / php71 / php72)

Fedora : comparaison des performances pour les versions 32 bits

Patrice Kadionik

Salut.

Cela fait depuis la version 25 que je ne sors plus mon traditionnel test de comparaison des performances pour les versions 32 bits de Fedora.

En effet, le projet Fedora a décidé de ne plus produire à partir de la version 26 de Live CDs ou de spins d'installation pour machine 32 bits.

Je produirai donc à l'avenir des tests de comparaison des performances pour les versions 64 bits de Fedora...

Les premiers tests que j'ai pu faire remontent déjà à plus de 10 ans avec Fedora 7. Le temps passe :

++

Compte rendu de l'Assemblée Générale de Borsalinux-fr du 20 janvier 2018

Association Borsalinux-Fr

Le samedi 20 janvier 2018 a eu lieu l'Assemblée Générale de l'association Borsalinux-fr à la Fondation pour le Progrès de l'Homme à Paris.

Le bilan moral et financiers de 2017 ont été validés.

Les goodies sont revenus au centre de lattention. Manquant toujours de volontaires pour demander les devis, commander et recevoir les colis. Charles-Antoine devrait commander des flyers, et on envisage un partenariat avec En vente libre pour distribuer certains goodies via Internet.

La documentation continuera ses travaux et cherchera à réduire sa barrière d'entrée.

Guillaume est toujours en attente de la mise à disposition du successeur de fluxBB pour mettre à jour le forum.

L'association devra impérativement améliorer la communication cette année pour avoir plus de membres actifs lors de l'élection du prochain conseil d'administration.

Pour plus de détails, n'hésitez pas à consulter le procès verbal de cette assemblée générale.

Résultats des élections de Fedora 01/18

Charles-Antoine Couret

Comme je vous le rapportais il y a peu, Fedora a organisé des élections pour renouveler partiellement le collège de ses organes.

Le scrutin est comme toujours un vote par valeurs. Nous pouvons attribuer à chaque candidat un certain nombre de points, dont la valeur maximale est celui du nombre de candidat, et le minimum 0. Cela permet de montrer l'approbation à un candidat et la désapprobation d'un autre sans ambiguïté. Rien n'empêchant de voter pour deux candidats avec la même valeur.

Les résultats pour le Conseil sont (seul les deux premiers sont élus) :

  # votes |  name
- --------+----------------------
     459  | Dennis Gilmore (dgilmore / ausil)
     350  | Nick Bebout (nb)
- --------+----------------------
     334  | Langdon White (langdon)
     309  | Jona Azizaj (jonatoni)
     239  | Russ Herrold (herrold / orc_fedo)

À titre indicatif le score maximal possible était de 5 * 142 (pour 142 votants) soit 710.

Les résultats pour le FESCo sont (seuls les cinq premiers sont élus) :


  # votes |  name
- --------+----------------------
     703  | Kevin Fenzi (nirik)
     579  | Adam Miller (maxamillion)
     512  | Jared Smith (jsmith)
     503  |  Josh Boyer ( jwboyer/jwb )
     483  | Zbigniew Jędrzejewski-Szmek (zbyszek)
- --------+----------------------
     469  | Justin Forbes (jforbes)
     420  | Dominik Mierzejewski (rathann)

À titre indicatif le score maximal possible était de 7 * 143 (pour 143 votants) soit 1001.

Les résultats pour le Mindshare sont donc (seuls les deux premiers sont élus) :

  # votes |  name
- --------+----------------------
     344  | Jared Smith (jsmith)
     325  | Nick Bebout (nb)
- --------+----------------------
     302  | Jona Azizaj (jonatoni)
     280  |  Gabriele Trombini (mailga)
     235  |  Radka Janek (rhea)

À titre d'indication, la valeur maximale possible est de 5 * 124 (car il y a eu 124 votants) soit 620.

Nous pouvons noter que globalement le nombre de votants pour chaque scrutin était proche aux alentours de 175-150 votants.. Les scores sont aussi plutôt éparpillés, avec souvent quelques membres assez largement en tête de chaque scrutin.

Bravo aux participants et aux élus, que le projet Fedora avance. :-)" class="smiley

Élections pour le Conseil, FESCo et Mindshare cette semaine

Charles-Antoine Couret

Comme le projet Fedora est communautaire, une partie du collège des organisations suivantes doit être renouvelée : Council, FESCo et Mindshare. Et ce sont les contributeurs qui décident. Chaque candidat a bien sûr un programme et un passif qu'ils souhaitent mettre en avant durant leur mandat pour orienter le projet Fedora dans certaines directions. Je vous invite à étudier les propositions des différents candidats pour cela.

J'ai voté

Pour voter, il est nécessaire d'avoir un compte FAS actif et de faire son choix sur le site du scrutin. Vous avez jusqu'au mercredi 25 janvier à 1h heure française pour le faire. Donc n'attendez pas trop.

Je vais profiter de l'occasion pour résumer le rôle de chacun de ces comités afin de clarifier l'aspect décisionnel du projet Fedora mais aussi visualiser le caractère communautaire de celui-ci.

Council

Le Council est ce qu'on pourrait qualifier le grand conseil du projet. C'est donc l'organe décisionnaire le plus élevé de Fedora. Le conseil définit les objectifs à long terme du projet Fedora et participe à l'organisation de celui-ci pour y parvenir. Cela se fait notamment par le biais de discussions ouvertes et transparentes vis à vis de la communauté.

Mais il gère également l'aspect financier. Cela concerne notamment les budgets alloués pour organiser les évènements, produire les goodies, ou des initiatives permettant de remplir les dits objectifs. Ils ont enfin la charge de régler les conflits personnels importants au sein du projet, tout comme les aspects légaux liés à la marque Fedora.

Les rôles au sein du conseil sont complexes.

Ceux avec droit de vote complet

Tout d'abord il y a le FPL (Fedora Project Leader) qui est le dirigeant du conseil et de facto le représentant du projet. Son rôle est lié à la tenue de l'agenda et des discussions du conseil, mais aussi de représenter le projet Fedora dans son ensemble. Il doit également servir à dégager un consensus au cours des débats. Ce rôle est tenu par un employé de Red Hat et est choisi avec le consentement du conseil en question.

Il y a aussi le FCAIC (Fedora Community Action and Impact Coordinator) qui fait le lien entre la communauté et l'entreprise Red Hat pour faciliter et encourager la coopération. Comme pour le FPL, c'est un employé de Red Hat qui occupe cette position avec l'approbation du conseil.

Il y a deux places destinées à la représentation technique et à la représentation plus marketing / ambassadrice du projet. Ces deux places découlent d'une nomination décidée au sein des organes dédiées à ces activités : le FESCo et le Mindshare. Ces places sont communautaires mais ce sont uniquement ces comités qui décident des attributions.

Il reste deux places communautaires totalement ouvertes et dont tout le monde peut soumettre sa candidature ou voter. Cela permet de représenter les autres secteurs d'activité comme la traduction ou la documentation mais aussi la voix communautaire au sens la plus large possible. C'est pour ces places que le vote est ouvert cette semaine !

Ceux avec le droit de vote partiel

Un conseiller en diversité est nommé par le FPL avec le soutien du conseil pour favoriser l'intégration au sein du projet des populations le plus souvent discriminées. Son objectif est donc de déterminer les programmes pour régler cette problématique et résoudre les conflits associés qui peuvent se présenter.

Un gestionnaire du programme Fedora qui s'occupe du planning des différentes versions de Fedora. Il s'assure du bon respect des délais, du suivi des fonctionnalités et des cycles de tests. Il fait également office de secrétaire du conseil. C'est un employé de Red Hat qui occupe ce rôle toujours avec l'approbation du conseil.

FESCo

Le FESCo (Fedora Engineering Steering Committee) est un conseil entièrement composé de membres élus et totalement dévoués à l'aspect technique du projet Fedora.

Ils vont donc traiter en particulier les points suivants :

  • Les nouvelles fonctionnalités de la distribution ;
  • Les sponsors pour le rôle d'empaqueteur (ceux qui pourront donc superviser un débutant) ;
  • La création et la gestion des SIGs (Special Interest Group) pour organiser des équipes autour de certaines thématiques ;
  • La procédure d'empaquetage des paquets.

Le responsable de ce groupe est tournant. Les 9 membres sont élus pour un an, sachant que chaque élection renouvelle la moitié du collège.

Mindshare

Mindshare est une évolution du FAmSCo (Fedora Ambassadors Steering Committee) qu'il remplace. Il est l'équivalent du FESCo sur l'aspect plus humain du projet. Pendant que le FESCo se préoccupera beaucoup plus des empaqueteurs, la préoccupation de ce conseil est plutôt l'ambassadeur et les nouveaux contributeurs.

Voici un exemple des thèmes dont il a compétence qui viennent du FAmSCo :

  • Gérer l'accroissement des ambassadeurs à travers le mentoring ;
  • Pousser à la création et au développement des communautés plus locales comme la communauté française par exemple ;
  • Réaliser le suivi des évènements auxquels participent les ambassadeurs ;
  • Accorder les ressources aux différentes communautés ou activités, en fonction des besoin et de l'intérêt ;
  • S'occuper des conflits entre ambassadeurs.

Et ses nouvelles compétences :

  • La communication entre les équipes, notamment entre la technique et le marketing ;
  • Motiver les contributeurs à s'impliquer dans différents groupes de travail ;
  • Gérer l'arrivé de nouveaux contributeurs pour les guider, essayer de favoriser l'inclusion de personnes souvent peu représentées dans Fedora (femmes, personnes non américaines et non européennes, étudiants, etc.) ;
  • Gestion de l'équipe marketing.

Il y a 9 membres pour gérer ce nouveau comité. Un gérant, 2 proviennent des ambassadeurs, un du design et web, un de la documentation, un du marketing, un de la commops et les deux derniers sont élus. C'est pour ces deux derniers sièges que les scrutins sont ouverts.

PHP version 7.1.14RC1 et 7.2.2RC1

Remi Collet

Les versions Release Candidate sont disponibles dans le dépôt remi-test pour Fedora et Enterprise Linux (RHEL / CentOS) afin de permettre au plus grand nombre de les tester. Elles sont  fournit en Software Collections, pour une installation en parallèle, solution idéale pour ce type de tests. (uniquement pour x86_64) et également en paquets de base.

Les RPM de PHP version 7.2.2RC1 sont disponibles en SCL dans le dépôt remi-test et les paquets de base dans le dépôt remi-php72-test pour Fedora 25-27 et Enterprise Linux.

Les RPM de PHP version 7.1.14RC1 sont disponibles en SCL dans le dépôt remi-test et les paquets de base dans le dépôt remi-test pour Fedora 26-27 ou  remi-php71-test pour Fedora 24-25 et Enterprise Linux.

PHP Version 7.0 est désormais en mode maintenance de sécurité, il n'y aura donc plus de Release Candidate.

emblem-notice-24.pngInstallation : voir la Configuration du dépôt et choisir la version.

Installation en parallèle, en Software Collections de PHP 7.2 :

yum --enablerepo=remi-test install php72

Installation en parallèle, en Software Collections de PHP 7.1 :

yum --enablerepo=remi-test install php71

Mise à jour, de PHP 7.2 :

yum --enablerepo=remi-php72,remi-php72-test update php\*

Mise à jour, de PHP 7.1:

yum --enablerepo=remi-php71,remi-php71-test update php\*

A noter : la version 7.2.2RC1 est aussi disponible dans Fedora rawhide pour la QA.

emblem-notice-24.pngLes paquets pour EL-7 on été construit à partir de RHEL-7.4.

emblem-notice-24.pngLa version RC est généralement identique à la version finale (aucun changement accepté, à l'exception de correctifs de sécurité).

Software Collections (php71, php72)

Paquets standards (php)

Sortie officielle de Dotclear 2.13

Matthieu Saulnier

La Devteam du CMS Dotclear vient de dévoiler le cru 2018. La version 2.13 est une importante version, elle contient toutes les modifications de la version 2.12.2 en plus des nouvelles features de la 2.13.

Ce modeste weblog tourne lui-même en ce moment sur la 2.13

On va pas se voiler la face, depuis 2012 j'ai testé beaucoup de moteurs de blog : Hugo, Pelican, Mezzanine, Wordpress... Seul Dotclear est resté. Il faut avouer qu'il fait le job avec excellence. Il est le seul à fournir une interface admin complète mais pas compliquée. Aucune faille de sécurité, des perfs à faire chavirer, bref, Dotclear représente pour moi une valeur sûre pour les années à venir.

Et si cette version se révélait être un très bon cru

Il y a une fonctionnalité que j'attendais avec impatience! Pour vous situer le contexte, j'avais posé une question toute bête à la Devteam il y a quelques temps déjà, l'issue de la discussion était un fix prévu dans cette version.

Capture décran_2017-12-30_10-12-55.png

Il est beau le Changelog, pas vrai? Et donc la fonctionnalité que j'attendais sous le sapin est : « Cope with MySQLi connection via socket ». Je prévois d'écrire un petit article sur le sujet.

Du fun

Cette version s'annonce très prometteuse, c'est moi qui vous le dit...

Sortie officielle de Dotclear 2.13

Matthieu Saulnier

La Devteam du CMS Dotclear vient de dévoiler le cru 2018. La version 2.13 est une importante version, elle contient toutes les modifications de la version 2.12.2 en plus des nouvelles features de la 2.13.

Ce modeste weblog tourne lui-même en ce moment sur la 2.13

On va pas se voiler la face, depuis 2012 j'ai testé beaucoup de moteurs de blog : Hugo, Pelican, Mezzanine, Wordpress... Seul Dotclear est resté. Il faut avouer qu'il fait le job avec excellence. Il est le seul à fournir une interface admin complète mais pas compliquée. Aucune faille de sécurité, des perfs à faire chavirer, bref, Dotclear représente pour moi une valeur sûre pour les années à venir.

Et si cette version se révélait être un très bon cru

Il y a une fonctionnalité que j'attendais avec impatience! Pour vous situer le contexte, j'avais posé une question toute bête à la Devteam il y a quelques temps déjà, l'issue de la discussion était un fix prévu dans cette version.

Capture décran_2017-12-30_10-12-55.png

Il est beau le Changelog, pas vrai? Et donc la fonctionnalité que j'attendais sous le sapin est : « Cope with MySQLi connection via socket ». Je prévois d'écrire un petit article sur le sujet.

Du fun

Cette version s'annonce très prometteuse, c'est moi qui vous le dit...

Page générée le 08 nov 2018 à 20:02