Je suis un peu en retard, mais je découvre que Video DownloadHelper, célèbre extension pour Firefox / Chrome permettant de télécharger les flux vidéo que l'on regarde dans les pages web, requiert depuis fin 2017 l'installation d'un logiciel additionnel sur la machine de l'utilisateur (appelé "Companion App"). Comme beaucoup j'ai été tenté de crier à l'adware, mais il est expliqué que cela serait du à des changements dans l'API de Firefox >= 57. Bon point: le code source est disponible sous github. En ce qui me concerne, j'ai tout de même préféré basculer sur youtube-dl.
On m'a confié un ordinateur portable Asus qui fonctionne bien mais sur lequel "on peut rien copier, il n'y a pas de place du tout alors qu'il est tout neuf". Il s'agit d'un L402S, donc le stockage est assuré par... 32 Go de eMMC. Oui vous avez bien lu, Windows 10 est installé sur un C: de 32 Go, clin d’œil à Cyrille qui a déjà eu affaire à ce genre de machine.
On se doute qu'avec aussi peu d'espace disque, on ne peut pas faire grand chose, pas même installer les mises à jour du système. Heureusement Asus a eu le bon goût de proposer un emplacement 2,5" il est donc possible en théorie d'y mettre un SSD et installer Windows dessus (le bios est accessible).
J'ai récupéré un Samsung R525 qui dormait dans une armoire. On trouve des articles évoquant cette machine en 2010, on a donc affaire à quelque chose de pas très récent. Equipé d'un Athlon II X2 M320 et de 3 Go de RAM, on a clairement affaire à un produit d'entrée de gamme, à une époque où AMD était le choix du pauvre pour les laptop.
La dalle LCD est cassée, je l'ai donc remplacée par une autre achetée sur eBay et en ai profité pour nettoyer la poussière, changer la pâte thermique et installer un SSD. Après avoir installé Windows 10 en 32 bit, la machine fonctionne mais redémarre brutalement de manière intempestive. Un memtest affiche du rouge, il y a donc une barrette défectueuse qu'il faudra remplacer. Au passage la température CPU qui varie de 84°c à 93°c, c'est monstrueux.
J'ai toujours été opposé au passage au 100% payant de NextINpact, j'avais même décidé de ne pas renouveler mon abonnement pour cette raison. Suite à un appel à l'aide lancé en Aout, j'ai choisi de me réabonner. A l'heure où j'écris cet article il y a 473 commentaires dont beaucoup émanant de mécontents qui critiquent la politique du site. Les principaux reproches: Trop de juridique (Hadopi), la promesse non tenue du magasine papier, la situation économique mauvaise et les appels à l'aide qui se répète tous les ans. Il y a certainement du vrai, mais si je refusais de m'abonner je ne ferai qu’aggraver la situation.
Valve ressort la licence Half Life de la cave avec Alyx, un spin-off qui se déroule entre les événements de Half Life 1 et Half Life 2, conçu pour être joué en VR car oui le but est de promouvoir le casque SteamVR. Je suis aigri car je fais partie des joueurs qui attendent depuis bientôt 13 ans une suite à Half Life 2 Episode 2, et par ailleurs je ne suis pas convaincu par les jeux en VR que je trouve lents et rapidement lassants un peu comme si on jouait à une super Wii. Une prise de risque minimale donc pour Valve qui rappelle une fois de plus à son public que la plateforme de vente rapporte plus que les jeux...
Je me connecte régulièrement avec mon laptop à des partages Samba/CIFS de mon NAS. Pour cela j'utilise la commande suivante à chaque démarrage:
$ sudo mount -t cifs //192.168.1.1/partage /mnt/partage/ -o user=utux
J'aimerai que ce soit automatique. Le problème est que je ne peux pas utiliser le /etc/fstab car au moment où il est exécuté le réseau n'est pas prêt (wifi ou client openvpn). Il existe bien l'option _netdev mais elle n'a jamais fonctionné pour moi. Ce cas d'usage montre bien les limites des montages Linux qui ne sont pas adaptés à la mobilité et aux environnements dynamiques.
Bonne nouvelle, il existe une alternative: autofs qui s'appuie sur automount. Contrairement à mount, il connecte le partage lorsqu'on y accède (et pas au démarrage) et le déconnecte si on ne l'utilise pas. Il a aussi de nombreuses autres fonctionnalités:
- Un système de templates utile quand on a de nombreux partages.
- Support de plusieurs protocoles (cifs, nfs, raw...).
- Auto-découverte des partages.
- Consommation de ressources moindre (déconnecte les partages non utilisés)
- Meilleure tolérance aux coupures réseau.
Installation sous Debian / Ubuntu:
$ sudo apt install autofs
Créer/éditer le /etc/auto.master:
/mnt /etc/auto.nas --timeout 300 --browse
Créer/éditer le /etc/auto.nas:
partage -fstype=cifs,credentials=/home/utux/.autofs_creds,user=utux,uid=utux,rsize=8192,wsize=8192 ://192.168.1.1/partage
Créer le fichier /home/utux/.autofs_creds:
username=utux
password=secret
Mettre le /home/utux/.autofs_creds en chmod 0600:
$ chmod 0600 /home/utux/.autofs_creds
Mettre le /etc/auto.nas en chmod 0644
$ sudo chmod 0644 /etc/auto.nas
Démarrer le service:
$ sudo systemctl start autofs
Tester:
$ ls /mnt/partage
Si cela ne fonctionne pas:
$ sudo systemctl stop autofs
$ sudo automount -f –v
Notez que cela ne fonctionnera pas si le /etc/auto.nas est exécutable:
$ sudo chmod -x /etc/auto.nas
Autofs est génial et solutionne mes problèmes de montage de partages en mobilité.
EDIT 15/03/2020: Smb version 4, ajout uid
pour corriger des problèmes de droits.
J'adore gitlab, alternative libre à github installable chez soi ou utilisable en tant que service. Il a énormément de fonctionnalités: gestion du https avec letsencrypt, embarque sa BDD Postgresql, du CI avec des runnners, des issues, un registry Docker, et même de la métrologie... le tout avec une interface graphique intuitive et bien léchée.
Le problème de gitlab, c'est qu'il est monolithique et gourmand. Trop gourmand. J'ai installé une instance de gitlab-ce sur un serveur équipé de 2G de RAM, et au bout de quelques jours des erreurs 502 sont apparues. En me connectant sur le serveur j'ai constaté qu'il était quasi saturé: 1,7G ! Et en effet, après avoir consulté la page des requirements, j'a rapidement compris. Le minimum du minimum, c'est 4G de RAM + 4G de swap! Et la recommandation est de 8G!
Pour un usage perso, il est quand même ennuyeux de devoir louer un VPS à 8G de RAM, c'est pas donné, on tape dans la dizaine d'euros par mois voire plus. J'ai essayé quelques optimisations, comme diminuer le nombre de workers, le cache Postgresql, la métrologie... et après un redémarrage je suis à 1,5G de RAM.
Moui, ce n'est pas une franche réussite. Au moindre pic de consommation le serveur va ookill des processus. Gitlab est cool mais c'est un peu une usine à gaz en terme de ressources.
Même si je suis toujours fan de Gitlab et le recommande pour les entreprises et les organisations, je vais me mettre en recherche d'une alternative plus propice aux usages persos.
Depuis la publication de ce billet, vscode est à la mode. Et pourtant il y a de quoi grincer des dents, on pense immédiatement à Visual Studio et à Microsoft, s'agit-il d'une usine à gaz propriétaire qui sert à pondre du code pour IE6? Pas du tout.
vscode n'est pas Visual Studio, c'est un éditeur de texte avancé plutôt léger, sous licence libre (Expat), avec pas mal de plugins pour les différents langages. Et oui il s'agit de Microsoft, mais comme beaucoup j'ai passé l'âge de jouer à l'intégriste, et on peut dire qu'ils font des efforts depuis quelques années. En ce qui me concerne j'ai toujours codé avec vim, mon premier contact avec vscode fut donc un premier contact avec ce genre d'éditeur de texte. Et pour le moment je me prends au jeu, j'utilise vscode, c'est vraiment pas mal.
J'aime la possibilité de visionner mon arborescence, travailler sur un fichier tout en ayant un terminal à disposition (par exemple pour tester des playbook Ansible). Il y a un léger temps d'adaptation pour apprendre les raccourcis (ctrl+s), mais ça reste plus facile que vim :) Je n'ai pas réussi à configurer l'utilisation d'un proxy http (oui, ça existe encore dans certaines entreprises...) ce qui m'a obligé à passer par proxychains.
Je n'aime pas l'autocomplétion, par exemple quand je veux ajouter un <strong> devant un mot, il ajoute automatiquement le </strong> mais pas au bon endroit. Pareil quand on manipule les double quote " dans les yaml, l'ajout et suppression peut devenir un enfer. Mais bon c'est toujours moins pire que vim et son indentation agaçante dans les dernières versions :) et ça se maîtrise.
Je continue à utiliser vscode, on verra si dans 6 mois je suis revenu sur vim ou pas :)
En 2018, en matière de containers il n'y a pas que Docker ou LXC, il y a aussi FreeBSD et ses jails :) en fait ça existait longtemps avant et c'est plutôt bien fichu. J'ai longtemps utilisé le framework ezjail qui a l'avantage d'être simple et de fonctionner sans ZFS (j'avais un serveur anémique à base d'Atom 32 bit).
J'utilise FreeNAS et bien que leur web-ui permette depuis longtemps de créer des jails, cette solution est trop rigide, il est par exemple impossible d'upgrader une jail :( Bonne nouvelle, dans les dernières versions (avec le web-ui en beta ou via la ligne de commandes) on a droit à iocage qui est plus souple et supporte (entre autres) les upgrades.
Création d'une jail FreeBSD
Tout comme iohyve, il faut commencer par définir un pool de stockage ZFS. Cela peut être un pool existant, il ne l'écrase pas mais créé quelques datasets. Par exemple pour utiliser le pool data:
[root@freenas] ~# iocage activate data
ZFS pool 'data' successfully activated.
Ensuite on télécharge un template qui va servir à créer nos jails. Par exemple pour récupérer 11.1-RELEASE:
[root@freenas] ~# iocage fetch
[0] 9.3-RELEASE (EOL)
[1] 10.1-RELEASE (EOL)
[2] 10.2-RELEASE (EOL)
[3] 10.3-RELEASE
[4] 10.4-RELEASE
[5] 11.0-RELEASE (EOL)
[6] 11.1-RELEASE
Type the number of the desired RELEASE
Press [Enter] to fetch the default selection: (11.1)
Type EXIT to quit: 6
Fetching: 11.1-RELEASE
Downloading : MANIFEST [####################] 100% 0Mbit/s
Downloading : base.txz [####################] 100% 13.44Mbit/s
Downloading : lib32.txz [####################] 100% 12.66Mbit/s
Downloading : doc.txz [####################] 100% 10.76Mbit/s
Downloading : src.txz [####################] 100% 11.94Mbit/s
11.94Mbit/sExtracting: base.txz...
Extracting: lib32.txz...
Extracting: doc.txz...
Extracting: src.txz...
* Updating 11.1-RELEASE to the latest patch level...
src component not installed, skipped
Looking up update.FreeBSD.org mirrors... 3 mirrors found.
Fetching public key from update4.freebsd.org... done.
Fetching metadata signature for 11.1-RELEASE from update4.freebsd.org... done.
Fetching metadata index... done.
Fetching 2 metadata files... done.
Inspecting system... done.
Preparing to download files... done.
Fetching 151 patches.....10....20....30....40....50....60....70....80....90....100....110....120....130....140....150 done.
Applying patches... done.
The following files will be updated as part of updating to 11.1-RELEASE-p9:
[--- blablabla ---]
Installing updates... done.
On peut créer une jail nommée "unbound":
root@freenas:~ # iocage create -r 11.1-RELEASE -n unbound
unbound successfully created!
On lui met une adresse IP (en mode shared car j'ai encore quelques soucis avec le VNET):
root@freenas:~ # iocage set vnet=off unbound
Property: vnet has been updated to off
root@freenas:~ # iocage set ip4_addr="em0|192.168.0.201/24" unbound
Property: ip4_addr has been updated to em0|192.168.0.201/24
On démarre la jail:
root@freenas:~ # iocage start unbound
* Starting unbound
+ Started OK
+ Starting services OK
On entre dans la jail:
root@freenas:~ # iocage console unbound
FreeBSD 11.1-RELEASE (GENERIC) #0 r321309: Fri Jul 21 02:08:28 UTC 2017
Welcome to FreeBSD!
Release Notes, Errata: https://www.FreeBSD.org/releases/
Security Advisories: https://www.FreeBSD.org/security/
FreeBSD Handbook: https://www.FreeBSD.org/handbook/
FreeBSD FAQ: https://www.FreeBSD.org/faq/
Questions List: https://lists.FreeBSD.org/mailman/listinfo/freebsd-questions/
FreeBSD Forums: https://forums.FreeBSD.org/
Documents installed with the system are in the /usr/local/share/doc/freebsd/
directory, or can be installed later with: pkg install en-freebsd-doc
For other languages, replace "en" with a language code like de or fr.
Show the version of FreeBSD installed: freebsd-version ; uname -a
Please include that output and any error messages when posting questions.
Introduction to manual pages: man man
FreeBSD directory layout: man hier
Edit /etc/motd to change this login announcement.
root@unbound:~ #
Autres features
- Créer ses propres templates, utile pour créer des jails prêtes à l'emploi (avec SSH + authorized_keys, par exemple).
- Upgrade des jails
- Snapshots (et oui, zfs...)
- VNET (la jail a sa propre stack réseau, utile pour les manipulations pare-feu ou vpn)
- Limitations CPU & mémoire
- Installation automatique de paquets
- Montage de volumes bind
- Création de jails kFreeBSD (à titre de proof of concept)
- A la manière des dataset/pool zfs, chaque jail a des propriétés modifiables (get/set)
- Ecrit en python
Conclusion
J'utilise iocage pour une jail backuppc et j'en suis plutôt content. Si l'aspect VNET reste à améliorer, on a quand même fait un grand pas par rapport à la solution maison de FreeNAS.
iocage c'est le meilleur de FreeBSD: les jails et zfs. La syntaxe est claire, facile à retenir et me donne presque envie de m'y remettre et de migrer tous mes services dessus. Je vous encourage à l'essayer! Je vous encourage aussi à manger du FreeNAS, c'est bon pour la santé.
Fil RSS des articles de cette catégorie