PROJET AUTOBLOG


Le blog de Genma

Site original : Le blog de Genma

⇐ retour index

Mise à jour

Mise à jour de la base de données, veuillez patienter...

Cours sur les serveurs web par Luc Didry

jeudi 1 janvier 1970 à 01:00

Luc Didry, qui se présent lui-même comme un Administrateur Systèmes, Perliste fou, Debianeux convaincu, Libriste radical, est également connu sous son pseudonyme de Framasky et pour ses activités d' Administrateur systèmes au sein de l'association Framasoft.

Il est (a été ?) également enseignant pour la formation de la Licence Professionnelle Administration de Systèmes, Réseaux et Applications à base de Logiciels Libres (asrall.fr, adresse qui redirige vers le programme de la formation.

Ses cours (avec quelques exercices en bas de page) sont mis à disposition sur son site https://luc.frama.io/cours-asrall/serveurs_web/index.html. Au sommaire :
- Introduction
- Autres élément de configuration
- Les hôtes virtuels & les journaux
- Redirections, contrôles d'accès & chiffrement
- CGI & cache
- Mesures de performance

Des tutoriels sur Apache et Nginx et leurs configurations, j'en ai lu un certain nombre et ce cours est probablement le meilleur que j'ai lu. A la sortie, on a une très bonne référence pour la compréhension des fichiers de configuration d'Apache et Nginx, avec une comparaison entre eux, leurs spécificités et caractéristiques, avec les différentes options et leurs rôles respectifs.

Pour tout comprendre du contenu des fichiers de configuration d'Apache et Nginx, dans le détail, mais de façon claire, précise et pédagogue, je ne peux donc que recommander de lire ce cours. J'ai compilé tout ça dans un document LibreOffice, il y en a pour 70 pages... De quoi s'occuper quelques heures. Et un grand MERCI à Luc aka Framasky pour ce super boulot et sa mise à disposition.

Yunohost - Goaccess - Rapport HTML depuis des logs d'un serveur web

jeudi 1 janvier 1970 à 01:00

Présentation de GoAcess

GoAccess présente des statistiques en lisant les logs de votre serveur Web, non pas en exécutant du code côté utilisateur.

Site : https://goaccess.io/

GoAccess fonctionne en ligne de commande et présente par défaut ses résultats dans la console, en temps réel. Une série de panels (que l'on peut étendre individuellement) présentent les différents types de données : nombres de visiteurs uniques, URL non trouvées, OS, etc. Classique. Il est également possible de générer une − plutôt jolie − page html

Le site GoAccess : analyse simple et efficace des logs d'un serveur Web - https://hal-9000.fr/?s11R3Q a fait un tutoriel qui montre qu'il est assez simple d'installer et d'utiliser GoAccess.

Autres tutoriels présentant des astuces complémentaires :
- Goaccess : un autre outil de Web Analytics par Denis Szalkowski
- GoAccess – Des logs web en temps réel et en cli

GoAccess répond à mon besoin

J'ai étudié différents systèmes permettant de générer des rapports à partir de logs, je connais un peu ELK (ElasticSearch, LogStash, Kibana), mais ça reste très complexe et un peu usine à gaz pour mon besoin qui est de tout simplement superviser / avoir des rapports issus des logs de mon serveur Yunohost. Donc GoAcess correspond bien à mon besoin.

Par défaut, Yunohost conserve les logs du serveur Nginx un certain temps (il faudra que je regarde en détail la configuration de logrotate), cela convient

Automatisons un peu tout ça...

L'objectif est d'avoir des rapports réguliers en HTML. Pour ça, j'ai mis en place une tâche CROn qui va faire une concatènation des différents fichiers de logs et générer un seul et même rapport HTML via GoAccess qui contient donc une visualisation graphique de l'ensemble des données issues de ces logs. Je peux ensuite m'envoyer le rapport par mail, le récupérer, le mettre à disposition dans un espace dédié du serveur web...

#/bin/bash

# On fait le cat dans /tmp pour que ce soit effacer ensuite
cat /var/log/nginx/blog.genma.fr-access.log* > /tmp/blog.genma.fr-access.full.log
echo "Goacess - Lancement de la generation des rapports HTML"
goaccess --log-format=COMBINED -f /tmp/blog.genma.fr-access.full.log -a -o BlogFullReport.html
# Le fichier BlogFullReport.html contient un beau rapport HTML complet généré par Goaccess.
echo "Goacess - Fini"

Yunohost ?

Yunohost propose la création de coquille vide pour des applications, via les Multi Custom Webapp, une version forkée des Custom Webapp qui permettent d'en créer plusieurs.

J'installe l'application en indiquant comme paramétrage :
- Nom de l'application : GoAccess
- Adresse et chemin : moninstanceyunohost.fr et /goacess comme sous répertoire
- Utilisateur : genma

Ca mouline (il y a la création et modification de la configuration nginx qui se fait) et ensuite j'ai bien une tuile "GoAccess" dans la liste des applications et un dossier "/var/www/webapp_genma/GoAccess" dans lequel j'ai par défaut le fichier "index.html".

Il ne reste qu'à ajouter au script ci-dessus une ligne du type

mv /tmp/BlogFullReport.html /var/www/webapp_genma/GoAccess

et depuis un navigateur web, en étant connecté à Yunohost d'aller sur
https://moninstanceyunohost.org/goacess/BlogFullReport.html

pour avoir le beau rapport généré par GoAccess !

Aller plus loin ?

Il suffit de faire un script un peu plus avancé, de le mettre en tâche planifiée (cron) et de créer par exemple un fichier index.html qui contiendra par exemple une série de liens :
- BlogFullReport_Jour1.html
- BlogFullReport_Jour2.html
- BlogFullReport_Jour3.html
- InstanceFullReport_Jour1.html
- InstanceFullReport_Jour2.html
- InstanceFullReport_Jour3.html

Ici les fichers InstanceFullReport_JourX.html étant généré par une ligne faisant appel à GoAcess mais pour un cumul de logs de fichiers Nginx pour l'instance (cumul des fichiers de log nginx pour monistanceyunohost.fr).

Il y a un an - Ma lettre de motivation

jeudi 1 janvier 1970 à 01:00

Dans le cadre des entretiens que je suis amené à faire passé et c'est la plupart du temps du très classique et conventionnel, parfois même minimaliste. Il manque le petit plus, le côté qui apporte quelque chose. J'avais d'ailleurs fait un billet sur le sujet Où sont les passionné.e.s ? (qui m'a permit de faire de belles rencontres dont deux ont abouties sur des embauches de personnes qui travailleront dans mon équipe).

Dans le présent billet je voudrais tout simplement copier coller le contenu de ma lettre de motivation que j'avais envoyé à la mi-septembre 2016 et qui avait conduit à mon entretien et à mon changement de vie.

Cette lettre, elle avait été travaillée et retravaillée un certain nombre de fois, depuis des mois, car je cherchais un nouvel emploi depuis le début de l'année et j'avais eu quelques retours et entretiens ; j'en profitais alors pour la remanier.

Pour moi, cette lettre se voulait complémentaire de mon CV complet (que je fournissais). Avec CV (de deux pages) et cette lettre de motivation (qui fait un format A4), je joignais aussi un résumé de carrière, complémentaire du CV qui expliquait en une page A4 le parcours, la cohérence entre les différentes missions de ma carrière et mon parcours personnel. Ce résumé (qu'on retrouvera ci-dessous) présentais donc à la fois mon parcours professionnel et mon parcours personnel sous pseudonyme. Je liais alors définitivement les deux comme je l'ai expliqué dans mon billet Du pseudonymat au pseudonyme.

Avec ces trois documents, j'estimais donner ainsi toutes les informations nécessaires aux recruteurs, ce qui permettait d'avoir un entretien où on savait déjà qui j'étais, ce que je prétendais savoir faire, mon parcours.. Cela a permis une discussion plus directe et me semble donc avoir été bénéfique.

Voici donc ma lettre

Par la présente lettre, je vous présenterai mes motivations et aspirations quand à ma candidature que je présente à Linagora.

Ce que je recherche ?
Je suis arrivé à un moment de ma vie où j'ai besoin de travailler et mobiliser mes compétences pour des valeurs qui me sont chères, pour m'épanouir au sein de mon travail, dans un cadre motivant et avec une équipe qui me tire vers le haut et me permet d'exploiter mon plein potentiel. Je souhaite en particulier pouvoir travailler avec le système d'exploitation de mon choix (Debian ou Ubuntu) sur des technologies à base de logiciel libre - open-source. Et je pense que Linagora répond à ces différents critères.

Pour moi, l'informatique est un outil destiné à répondre aux besoins "métiers" du client. Le cœur de son métier n'étant pas l'informatique, nous pouvons l'accompagner dans la mise en place des meilleures solutions afin de satisfaire ses impératifs tout en respectant ses contraintes. Je considère que l'informaticien doit être l'interface entre le client et les architectes, développeurs et autres équipes techniques spécialisées, en leur donnant des directives précises, ciblées et faisant appel à leur meilleur niveau de technicité.
Je recherche donc un poste dans de la MOA, avec à la fois du relationnel et de l'accompagnement client, et de la gestion d'équipe technique et développeur.

Ce que je peux apporter à Linagora ?

Mon expérience. Mes parcours professionnel et personnel sont présentés dans le document ci-joint et mon CV, mais en quelques mots, il y a mon expérience de consultant et la maturité acquise au cours de mes 11 années passées au sein de Capgemini. Et mon expérience du monde du logiciel libre et de l'open-source, étant donné que je suis un utilisateur, autodidacte, depuis plus de 12 ans, impliqué au sein de différentes communautés du logiciel libre.

Mon expérience de consultant et ma maturité dans ce domaine, tout comme mon expérience personnelle riche dans le monde du logiciel libre, ma capacité de communication écrite et mon aisance orale, seront des atouts pour Linagora. Avoir quelqu'un qui puisse comprendre les besoins du client, les exprimer en spécifications fonctionnelles et techniques, qui sachent présenter aux clients les avantages et spécificités des produits open-source et plus particulièrement ceux de Linagora, la plus value qu'à Linagora pour mener à bien les projets informatiques des clients, les accompagner dans leur transition informatique. Cette personne, c'est moi.

De plus j'ai une très forte capacité d'adaptabilité. Selon les besoins du moment, les temps forts, je pourrais également intervenir pour faire de la revue de code, tester des applications, rédiger des cahiers des charges. Je pourrais contribuer à de la localisation d'applications, valider l'accessibilité des tutoriaux d'installation, aider à leur amélioration. Je pourrais aider à la gestion et aux interactions avec les différentes communautés de l'open-source et du logiciel libre...

Me contacter ?

Je vois, de mon point de vue, plein de choses diverses et variées au sein desquelles je pourrais m'épanouir pleinement, contribuant au déploiement et au rayonnement de Linagora... Si ma présentation et mon profil vous intéressent, je me tiens disponible pour répondre aux questions éventuelles, donner des informations complémentaires et m'entretenir avec des membres de Linagora.
Jérôme « Genma »

Résumé de carrière

Résumé de carrière

Voici un résumé de carrière qui apporte quelques précisions sur mon parcours. J'ai donc commencé ma carrière en 2005 chez Capgemini en tant que consultant AMOA. Le client était l'Etablissement Français du Sang et ma mission a consisté à assurer le suivi de la migration (du lancement du projet au suivi en garantie en passant par la mise en production) de leur logiciel métier au sein de différentes régions. J'ai travaillé sur l'accompagnement et la conduite du changement, les reprises des données, le suivi du projet... J'ai en particulier été sensibilisé aux problématiques des données personnelles médicales et à l'importance de la cohérence et de l'intégrité de ces dernières.

De 2008 à 2011, j'ai été développeur junior sur les technologies Java/J2EE, dans le cadre d'un grand projet pour la Direction générale des Finances publiques (DGFiP) puis le Ministère de l'Education Nationale.

Entre 2011 et 2013, j'ai travaillé sur un petit projet d'évolution d'un logiciel métier pour la société Sécuritas. Ce travail consistait en l'accompagnement du client dans la rédaction des spécifications en langue anglaise, le développement de ces dernières en .NET/C# ou la gestion du développement en offshore (au Vietnam) avec revue de code et recettes, la tenue et le suivi des réunions parfois en anglais. Le tout en méthodologie AGIL.

Depuis mars 2013, je suis sur une TMA d'un projet aux technologies obsolètes (.NET 1.1, PL/SQL, VBS). Sur ce projet, j'ai effectué la rédaction des spécifications et des évolutions fonctionnelles. Pour palier les problématiques des pannes matérielles, j'ai participé à la virtualisation des serveurs (Windows Server 2003) sous VMWare ESX.

Résumé du parcours personnel

A titre personnel, depuis plus de 12 ans, je suis intéressé par les nouvelles technologies (je fais beaucoup de veille sur ces sujets) et l'open-source. J'utilise GNU/Linux comme système d'exploitation pour mon serveur (Debian) et mon desktop (Ubuntu). Je suis impliqué au sein de différentes communautés (Mozilla, CozyCloud, Yunohost, Debian, Framasoft). Je participe à des install-party, je fais de l'auto-hébergement (administration système et devops), du support, je donne régulièrement des conférences (Ubuntu-Party, JDLL de Lyon, Capitole du Libre de Toulouse, ou encore en médiathèque parisienne) Je rédige des tutoriels, un peu de documentation et surtout un blog, depuis plus de 12 ans sur lequel je synthétise et partage toutes mes connaissances nouvellement acquises : https://blog.genma.fr.

Je m'intéresse également aux technologies liées au chiffrement, à la virtualisation, au Cloud, ainsi qu'aux problématiques concernant les données personnelles et la vie privée (par exemple, je suis un utilisateur de Tor dont je suis les développements et évolutions, j'utilise TrueCrypt - maintenant Veracrypt - depuis 2008, je chiffre mes mails avec GPG, je chiffre mes disques durs (Luks), pour ne citer que ces technologies). Je suis sensible aux problématiques des fuites de données, de pentest, de hacking, de failles de sécurité, d'injection SQL et autres techniques utilisées par les attaquants potentiels. Je coanime des café vie privée / cryptoparty, et je donne à ce titre des cours et des conférences dans des domaines qui vont de l'hygiène numérique (pour le grand public, sensibilisation à différentes problématiques autour des données personnelles..) à l'autodéfense numérique (formation de journalistes aux techniques de chiffrement, par exemple).

Yunohost et les applications Framasoft

jeudi 1 janvier 1970 à 01:00

Comme je le disais dans mon billet et ma conférence De Framasoft à Yunohost, réapproprions nous le cloud un partenariat avait été mis en place entre Framasoft et Yunohost avec du temps d'un salarié de Framasoft consacré au packaging d'application Framasoft pour Yunohost.

Quelques mois après, où en est-on ?

L'idée n'est pas de parler au nom de Framasoft mais plus de remettre en avant cette collaboration et de faire un petit suivi de l'avancement. Une image valant mieux qu'un long discours :

On peut donc voir qu'il reste donc encore des applications à packagées, il faut maintenir les packages existant (en les faisant évoluer pour que les applications installées sur une instance Yunohost soient mises à jour ou qu'une installation fraîche installe la dernière version de l'application...)

Si vous souhaitez aider, si vous avez un peu de temps ou tout simplement des retours d'expérience à faire, il y a un topic dédié dans le forum Yunohost sur le sujet.

Contribuez à Yunohost

D'une façon plus générale, Yunohost a besoin de contributeurs pour tous les aspects du projet. A savoir :
- backend : python (simple), bash (lua)
- frontend : html/js (sammy.js)
- packging des apps : full bash, et des connaissance en sysadmin sont nécessaires (configuration nginx)
- sécurité : revue de code
- infrastructure du projet : debian, deb toolchain, ruby
- relation avec la communauté : communication, support via le forum, dans les issues de Git...
- aide à la traduction et à la documentation
- testing (les versions beta) avec rapport de bugs
- ...

Debian - Rester sur une version ; passer de stable en stable

jeudi 1 janvier 1970 à 01:00

Yunohost n'est pas compatible avec Stretch

Debian Stretch est sortie en version stable au début de l'été. Pour le détail, voir la dépêche Linuxfr Debian 9 : Stretch déploie ses tentacules.

Les changements apportés par cette version sont suffisamment importantes pour que Yunohost ne soit pas encore compatible. Pour rappel, Yunohost repose sur Debian en n'étant qu'une surcouche (les manipulations spécifiques à Debian restent possibles, même si il faut savoir ce que l'on fait pour ne pas casser la compatibilité avec Yunohost).

Pour en savoir plus, voir le sujet dans le forum : Debian Stretch | YunoHost is NOT YET compatible | YunoHost N'EST PAS ENCORE compatible

Comment rester sur une version de Debian

Comme indiqué dans le message du forum, il faut donc conserver la mention "jessie" comme version dans le fichier sources.list et autres.

$ cat /etc/apt/sources.list
deb http://url_du_depot.fr jessie main
deb-src http://url_du_depot.fr jessie main
deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main

Autre façon de faire, avec la commande sed, pour remplacer "main" par "jessie".
Dans le fichier "install" de l'application non officielle (à utiliser en connaissance de cause)
no_stretch_ynh

# Backup old sources.list
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

sudo cp -R /etc/apt/sources.list.d /etc/apt/sources.list.d.bak

# Change sources.list with "stable" as distribution
sudo sed -i "s@ stable \+main@ jessie main@g" /etc/apt/sources.list
sudo sed -i "s@ stable-updates @ jessie-updates @g" /etc/apt/sources.list
sudo sed -i "s@ stable/updates @ jessie/updates @g" /etc/apt/sources.list

# Idem for sources.list.d/*.list
sudo sed -i "s@ stable \+main@ jessie main@g" /etc/apt/sources.list.d/*.list
sudo sed -i "s@ stable-updates @ jessie-updates @g" /etc/apt/sources.list.d/*.list
sudo sed -i "s@ stable/updates @ jessie/updates @g" /etc/apt/sources.list.d/*.list

Ou au contraire, comment migrer d'une version stable à une autre

Si on souhaite faire des montées de version stable en version stable pour suivre les évolutions de Debian (pour un serveur ou un poste bureautique sur lequel cela est possible), au contraire, on aura un fichier sources.list du type :

$ cat /etc/apt/sources.list
deb http://url_du_depot.fr stable main
deb-src http://url_du_depot.fr stable main
deb http://security.debian.org/ stable/updates main
deb-src http://security.debian.org/ stable/updates main

Et si c'est en version testing de Debian que l'on veut être (pourquoi pas), ce sera donc :

$ cat /etc/apt/sources.list
deb http://url_du_depot.fr testing main
deb-src http://url_du_depot.fr testing main
deb http://security.debian.org/ testing/updates main
deb-src http://security.debian.org/ testing/updates main