Subscribe: Le blog de LLaumgui
http://www.llaumgui.com/index.php/feed/rss2
Added By: Feedage Forager Feedage Grade A rated
Language: French
Tags:
avec  dans  dell xps  des  docker  donc  est  les  mais  mon  pas  pip  pour  qui  suis  sur  tout  une  vous 
Rate this Feed
Rate this feedRate this feedRate this feedRate this feedRate this feed
Rate this feed 1 starRate this feed 2 starRate this feed 3 starRate this feed 4 starRate this feed 5 star

Comments (0)

Feed Details and Statistics Feed Statistics
Preview: Le blog de LLaumgui

Guillaume Kulakowski's blog



Le journal d'un architecte technique en solutions open-source, contributeur à des projets libres.



Published: Mon, 19 Sep 2016 11:46:35 +0000

Copyright: http://creativecommons.org/licenses/by-sa/4.0/
 



Dell XPS (2015), carte Intel i915 et kernel >= 4.6

Sun, 18 Sep 2016 12:33:00 +0000

Depuis le passage de Fedora au kernel 4.6, mon portable (Dell XPS 13 édition 2015) freeze au lancement de Gnome... Je n'avais pas pris le temps de corriger ça et je me disais que le 4.7 le corrigerait bien... Malheureusement ce ne fût pas le cas à là sortie du kernel 4.7. En faisant un peu de recherche il semblerait que les drivers i915 soient daubés depuis la 4.6 et ceci entraine toutes sortes de bugs divers. Du coup je me suis lancé dans la recherche de paramètres à passer au kernel pour arriver enfin à faire tourner mon XPS avec un kernel 4.7. Et les bons paramètres semblent être les suivants :
 

 

i915.enable_execlists=0 idle.max_cstate=1 i915.semaphores=1 i915.enable_psr=0

Pour les déployer, rien de plus simple, on édite /etc/default/grub, on rajoute le paramètres dans GRUB_CMDLINE_LINUX, on reconstruit grub, dans mon cas, en boot EFI, ça donne :

LANG=C grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Ensuite on croise les doigts et on reboot (image)




Certificat Let's Encrypt configuré au top

Sat, 17 Sep 2016 21:38:00 +0000

Dernièrement j'ai dû, pour le compte d'un client, faire une étude pour rendre un site compatible ATS au niveau de la sécurité. Il en est ressorti plusieurs problèmes :

  • La CVE-2016-2107 pour cause de lib-openssl pas à jour.
  • Des Ciphers et des protocoles pas top...
  • Pas de  PFS.

Le bilan : une note de "F".

Du coup, j'ai regardé un de mes domaines SSL et je me suis rendu compte que moi aussi je n'étais pas au top... Du coup une petite correction s'imposée.

Première étape : mettre à jour le container apache pour avoir les dernières versions de lib-openssl et d'apache.

Pour ça, rien de plus simple :

docker-compose build llaumgui_httpd24 ; docker-compose stop llaumgui_httpd24 ; docker-compose rm llaumgui_httpd24 ; docker-compose up -d llaumgui_httpd24

Seconde étapes : aller sur Mozilla SSL Configuration Generator pour trouver la configuration qui vous va bien. Pour moi je suis parti là dessus.

Troisième étape : faire le ménage dans la configuration de base de RHEL7.

Quatrième étape : aller sur Let'sEncrypt pour avoir un certificats SSL gratuit ! Alors là, faites gaffe, il existe plein de truc plus ou moins lourd pour générer des certificats SSL chez Let's Encrypt. Perso j'ai retenu acme-tiny car je n'ai rien trouvé de plus petit !

Il faut juste ouvrir votre port 80 et tout rediriger sur le 443 sauf bien sûr le chalenge Let's Encrypt :


    ServerName sub.domain.ltd
    ServerAdmin me@domain.ltd

    ### Let's encrypt
    Alias /.well-known/acme-challenge/ /var/www/challenges/
    
        # Allow open access:
        Require all granted
    

    ### Redirect to HTTPs
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge/
    RewriteRule (.*) https://sub.domain.ltd$1 [R=301,L]

Et c'est tout ! Plus qu'à controller avec Qualys SSL Labs.

(image)



Nouveau serveur et stack LAMP propulsée par Docker !

Tue, 30 Aug 2016 21:17:00 +0000

Afin de réduire les coûts d'hébergement de Scenario-PaintBall, site/forums qui partagent le même serveur que ce blog, nous avons étudié le remplacement de notre vieux Kimsufi 16G à 49€ TTC / mois. En effet, changer de serveur permet (presque) toujours d'avoir un serveur plus récent mais surtout tout aussi voir plus puissant que l'ancien et le tout pour moins cher. Après une rapide étude des solutions du marché, nous avons retenu une Dedibox XC 2016 à 19€20 TTC / mois. Pour l'occasion j'en ai profité pour refondre complètement l'architecture d'hébergement : Utilisation de CentOS 7 à la place de RHEL 6. Pourquoi passer de Red Hat vers CentOS ? Car, bien qu'en tant que contributeur, j'ai toujours des licences gratuites, je dois les faire renouveler tous les ans et ça me prend du temps et de l'énergie... et je suis fainéant. Activation de SELinux ! Si j'ai déjà sauté le pas sur mes postes de travail (Fedora) depuis bien longtemps, l'ancien serveur était encore en mode désactivé ! Du coup je pourrais arborer fièrement le T-Shirt "setenforce 1" et ainsi faire plaisir à Dan. Utilisation d'un cache HTTP : Varnish. Mise en place d'une stack LAMP full Docker ! Et c'est ce dernier point dont je vais discuter.   Description de la stack LAMP dockérisée Choix du moteur de stockage Concernant le choix du moteur de stockage, je ne suis pas parti sur le natif CentOS, à savoir Device Mapper, mais j'ai retenu OverlayFS. J'ai fais ce choix sur les conseils de ce tutoriel et aussi de cette page de la documentation de Docker mais surtout à la lecture de cette phrase : Many people consider OverlayFS as the future of the Docker storage drive Gestion de l'envoi des mails et impact sur le réseau Premier choix qui peut être discuté, j'ai fait le choix de ne pas mettre de container pour envoyer les mails mais d'envoyer les mails directement depuis l'host. En effet, j'ai pour habitude de considérer qu'un serveur doit posséder un MTA, c'est d’ailleurs une recommandation du Red Hat LSB. Ceci implique donc que j'ai une communication des containers vers l'host. Comme j'ai un firewall (FirewallD) et que je veux sécuriser les choses au maximum, ceci implique une interface de communication avec un nom fixe. C'est à dire que j'exploite l'interface docker0 et non une interface créée par Compose qui serait créé avec un nom imprédictible (brd-hashquelconque). Du coup pour ouvrir les ports : # On associe l'interface docker0 à une zone de confiance : firewall-cmd --permanent --zone=trusted --change-interface=docker0 # On ouvre le service pour cette zone firewall-cmd --permanent --zone=trusted --add-service=smtp # On recharge : firewall-cmd --reload Pour que Compose utilise le réseau par défaut de docker, appelée "bridge" et utilisant l'interface docker0, il suffit de rajouter la ligne suivante dans Compose : network_mode: "bridge" Architecture et typologie de containers Pour le moment Scénario PaintBall et ce blog partagent les mêmes versions de PHP (5.6) et Apache (2.4). J'utilise donc les mêmes images mais chaque infrastructure possède son propre container apache ainsi que son propre container PHP(-FPM). Bien entendu, un container Varnish mutualisé est présent en amont afin de dispatcher les requêtes sur la bonnes stack mais également pour assurer un rôle de cache HTTP. Concernant la base de données, j'ai fait le choix (discutable là encore) d'utiliser le même container pour les 2 stacks, c'est quand même plus simple à administrer, optimiser, backuper, etc.... De plus, j'ai également fait le choix de ne pas porter les applications Web (IPB, Dotrclear, WordPress) au sein des containers mais au sein de volumes. Ceci me permet de pouvoir mettre à jour les applications directement depuis l'host. Ceci me permet également de faire la migration de serveur plus rapidement. Schéma d'architecture Dans un mode 100% Dockerisé, j'aurais 1 groupe de container (Apache, PHP, Memcach[...]



Script & raccourcis pour désactiver son touchpad sous GNOME

Sat, 31 Oct 2015 19:25:00 +0000

Mon Dell XPS 13 ne possède pas de touche Fn pour désactiver mon touchpad de manière hardware. Je me suis donc fait un petit script shell, permettant de détecter l'état de mon touchpad est de l'inverser.

Il ne restait ensuite plus qu'à associer ce script à un raccourcis clavier via le centre de contrôle GNOME.

(image)

 




Fedora 22, Dell XPS 13 & hibernation

Thu, 03 Sep 2015 21:39:00 +0000

Le Mac addict est quelqu'un d'irrationnel: pour lui il n'existe rien de mieux qu'un Mac ! Un Mac est compatible avec 100% du matériel (oui, le Mac addict ne sais pas qu'on peut acheter des choses ailleurs que dans un Apple Store), le Mac est beau, le Mac est parfait, il y a un logo avec une pomme sur un Mac et en plus elle s'allume ! Bref vous l'aurez compris, toute discussion avec un Mac addict est inutile... Il y a cependant une feature que je trouve géniale sur Mac c'est la facilité d'hiberner et de revenir sur son espace de travail après une hibernation.

Jusqu'à présent je n'avais pas configuré mon portable pour hiberner mais force est de constater que cette fonctionnalité est appréciable. Voici donc les étapes que j'ai exécuté pour activer l'hibernation sur mon Dell XPS 13 :

  1. Désactiver le secure boot de Windows dans le BIOS (F12 lors du boot).
  2. Installer Fedora avec une swap au minimum égale à la quantité de RAM disponible (l'installateur de Fedora le fait automatiquement si vous le laissez faire, ou du moins le laissez commencer puis optimisez le truc).
  3. Dans le fichier /etc/default/grub, rajouter un argument resum avec le chemin de votre swap comme argument du kernel, personnellement je suis en LVM avec un cryptage luks et ça donne ça :
GRUB_CMDLINE_LINUX="rd.lvm.lv=vg00/swap rd.luks.uuid=luks-22a56aa5-01c9-49a4-9d32-d48344322b06 rd.lvm.lv=vg00/root resume=/dev/mapper/vg00-swap rhgb quiet"
  1. Reconstruire grub (dans mon cas j'ai un boot EFI) :
grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
  1. Rajouter l'extension Hibernate Status Button (bien pratique).

Et c'est tout !

Pour fignoler les choses, il peut être intéressant de mettre le portable en hibernation lors de la fermeture du capot. Pour cela, éditez le fichier "/etc/systemd/logind.conf" en rajoutant sous la ligne suivante :

HandleLidSwitch=hibernate



stargazer, mon nouveau portable (Dell XPS 13) !

Tue, 01 Sep 2015 22:26:00 +0000

Après plusieurs années de bons et loyaux services, ma station de travail (enterprise) ainsi que mon portable (zhukov) viennent de prendre leur retraite (pour le portable pas vraiment car je l'ai recyclé pour ma femme...). Je suis donc, depuis 1 semaine, le (très) heureux possésseur d'un Dell XPS 13" / Core i7 / 8Go de RAM / SSD / Full HD. J'ai mis pas mal de temps à valider cette config' car je recherchais : Un PC 100% compatible Linux / Fedora, Une configuration solide mais si possible pas typée gamer (ça c'est plus dur), 1 seule carte graphique ! J'en avais marre de mon ancien portable avec 2 cartes qui m'obligent à rebooter pour utiliser mon port HDMI ! Quelque chose qui me permette de travailler mais aussi de me déplacer (bref remplacer ma station et mon portable). Bref, c'est pour toutes ces raisons que j'ai retenu l'XPS et je dois dire que je ne suis pas déçu ! Mis à part l'hibernation (qui fera l'objet d'un prochain article) le support de Fedora y est 100% out-of-the-box ! L'installation à partir d'une clef USB bootable a pris moins de 5 minutes et mon disque dur s'est automatiquement rempli grâce à Mirall, le client de synchronisation d'ownCloud. J'ai profité de ce nouveau PC pour faire quelques changements : Exit le Flash player (propriétaire), Exit Dropbox : utilisation d'ownCloud à partir de mon NAS, Utilisation de mailnag + GNOME Gmail et non plus Gmail notify (objet d'un prochain billet), Exit Rhythmbox et bonjour GNOME Music, Et bien sur un tout nouveau thème ! Concernant l'écran, possédant une tablette, je ne voyais pas l'intérêt d'un écran tactile, et la résolution Full HD sur un 13" est, selon moi, largement suffisante, c'est donc pour ça (et la différence de prix) que je me suis tourné sur une résolution full HD et non qHD. Pour finir, restant fidèle à mes règles de nommage, le nouvel hostname de cette machine est stargazer ![...]



SeedboxSync 0.9.0: synchronisez votre NAS avec votre seedbox

Tue, 25 Aug 2015 22:32:00 +0000

Imaginons que vous soyez fan de distribution linux et que vous ayez des scripts maisons pour écouter toutes les dernières sorties de distributions Linux et pour les télécharger automatiquement sur votre NAS avec BitTorrent. Imaginez ensuite que vous ne souhaitiez pas télécharger ces fichiers par vous-même (pour une raison X ou Y…) mais que vous louiez une seedbox pour ça.

C'est alors que SeedboxSync entre en jeu ! Ce script Python permet :

  • De synchroniser un répertoire local (celui contenant vos fichiers .torrent) avec un répertoire distant (le blackhole de votre seedbox par exemple).
  • De lister tous les fichiers dans votre répertoire de téléchargements finis et de télécharger automatiquement ceux qui n’ont pas encore été téléchargés (utilisation d’une base SQLite pour cela).

Le script est naturellement Open Source avec des sources disponibles sur GitHub, mais vous pouvez aussi l’installer directement via la commande pip :

pip install seedboxsync.

Pour le moment seul le protocole sFTP est géré, mais j’ai pour projet de rendre possible d’autre méthode assez rapidement.

Pour finir, si vous préférez utiliser Sick Beard, Sick Rage et CouchPotato pour télécharger d’autres types de torrents, seedboxsync marche aussi…




Synchro de Google Music à partir d'OpenMediaVault 2.1 (Debian Wheezy)

Tue, 28 Jul 2015 12:53:00 +0000

Je continue à jouer avec mon NAS DIY... Bien que j’essaie, au travers d'OwnCloud, de rapatrier un max de services chez moi, j'aime encore synchroniser ma musique avec Google Music Manager. Le problème c'est que maintenant que ma musique n'est plus sur mon PC mais sur mon NAS, il me faut synchroniser avec Google Music en ligne de commande. Certains utilisent le Google Music Manager via X11VNC, mais je recherchais une solution plus CLI.

J'ai donc opté pour gmusicapi-scripts un script en Python basé sur Unofficial-Google-Music-API. Sur OpenMediaVault 2.1, basé sur Debian Wheezy, la première étape pour l'installer est d'installer pip pour Python 2.7. En effet, python-pip n'est pas proposé de base sous Wheezy et si vous faite un apt-get python-pip, vous vous retrouverez avec du Python 2.6...

sudo apt-get install python-mutagen python-openssl
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
sudo pip install gmusicapi
sudo pip install docopt
sudo mkdir -p /opt/thebigmunch
cd /opt/thebigmunch
sudo git clone https://github.com/thebigmunch/gmusicapi-scripts.git

Remarque : la version 6.0.0 de gmusicapi souffre de warning pénibles sur urllilb3, du coup j'ai préféré partir sur la version de développement qui fixe ce problème :

sudo pip install git+https://github.com/simon-weber/gmusicapi.git@develop

Et maintenant je peux synchroniser ma musique !

(image)




Mon NAS DIY sous OpenMediaVault

Sun, 26 Jul 2015 22:05:00 +0000

Actuellement je suis en train de faire construire et dans ma nouvelle maison, le PC ne trônera plus dans le salon... Je suis donc en train de repenser mes machines. L'une des premières étapes et donc de faire en sorte d'avoir accès à mes données sans que ma station de travail ne soit allumée (si c'est pour ne pas m'en servir, pourquoi la laisser allumer alors que ça consomme de l'électricité...). C'est donc pour ça que j'ai envisagé d'acheter un NAS. Le problème c'est que les bons NAS (ex: Synology) tournent sous des systèmes fermés / propriétaires... Et bien entendu, il n'est pas envisageable que je me retrouve sur un système restreint dans son usage. Plutôt qu'un NAS tout fait, j'ai donc acheté un HP Proliant MicroServer Gen8 afin de stocker toutes mes données dessus et de le faire tourner 24/24 dans un coin. Pour le système d'exploitation (puisqu'avec un vrai serveur j'ai le choix), j’hésitais entre 4 solutions : FreeNAS que j'ai exclu (injustement) car je ne voulais pas introduire un FreeBSD chez moi (trop de systèmes d'exploitation différents à gérer). XPEnology que j'ai rapidement écarté du fait que ce système ne soit pas légal... Lui confier des données ne serait pas raisonnable. Aller encore plus dans le DIY et me construire un truc from scratch avec une CentOS 7, mais ce serait trop long. Finalement j'ai retenu OpenMediaVault qui est une interface idéale pour gérer un NAS basée sous Debian (c'est un système différent de Fedora, mais ça reste quand même plus proche que du BSD). Avec OMV, j'ai donc un NAS qui me sert à : Partager mes données sur mon réseau (NFS / CIFS / DLNA) avec ma tablette, mon téléphone, mon petit Media Center et mon PC portable (le tout soit sous Linux soit sous Android). Pour être plus rapide et histoire de ne pas trop souffrir de ma Freebox v5 et de son routeur 10/100, j'ai mis un switch Gigabyte derrière et câblé le tout en Catégorie 6 blindée Offrir un point d'entrée SSH sur mon réseau. Rendre mes données accessibles au travers du net via OwnCloud. Au passage, je ne suis pas parti du plugin pour OMV mais j'ai fait une installation depuis la dernière version from scratch. Le tout avec du RAID 1 Soft monté en 5mn tellement c'est facile à faire à partir d'OMV. Pour ceux qui se posent la question à propos de mon choix de partir sur du RAID Soft alors que mon Proliant gère le RAID hard, je me suis posé longtemps la question, mais 3 truc me chagrinaient : Les drivers de ma carte RAID ne sont pas disponibles officiellement sous Debian et ne sont pas libres. Tout disque formaté à partir de la carte contrôleur RAID de mon serveur ne peut être lu qu'à partir d'une carte contrôleur HP... Je suis peu fan de ça. Et puis même si je n'ai pas encore basculé sur SnapRAID (une autre hésitation) il est plus facile de l'envisager à partir d'un RAID Soft. Pour finir et pour garder un pied dans l'univers Trekkie, j'ai appelé ce serveur DeepSpace9 et il devrait donc me permettre de remiser ma station de travail (Enterprise).[...]



jQuery async Gravatar, chargez vos Gravatars de manière asynchrone

Tue, 26 May 2015 07:55:00 +0000

Jusqu'à présent, j'utilisais sur mon blog la librairie async-gravatars de Joseph Scott qui permettait de charger de manière asynchrone les Gravatars utilisés pour illustrer vos commentaires avec vos têtes. Je ne vais pas m'étendre sur cette méthode de chargement, d'autres l'on déjà (très bien) fait ici ou .

Le problème c'est que la dite librairie n'est plus disponible sur le compte GitHub de son auteur et que la sanction fut immédiate chez moi : ça m'a pété une erreur Bower et m'a donc fait planter la chaine de construction Grunt du thème de mon blog. Bref, j'ai contacté l'auteur, sans obtenir de réponse, pour savoir si je pouvais forker et maintenir la librairie. Sans réponse j'ai donc entrepris de la réécrire from scratch. J'y ai quand même rajouté des options de paramétrages (via data attributes) mais également des contrôles de qualité & une intégration continue :

  • Tests unitaires JavaScript avec QUnit,
  • Qualité de code JS via JSHint,
  • Code check style via JSCS,
  • et pour tous les nouveaux fichiers introduits : Markdown lint, JSON Lint, etc...
  • Le tout intégré via la Plateforme d'Intégration Continue Travis et une qualité de code contrôlée via Code Climate.

Bref, c'est actuellement la librairie qui tourne sur mon blog et vous pourrez la trouver sur GitHub ou la télécharger via Bower.