Le Blog Utux

HTTP 200 GET /

Tri des articles, Docker et Ansible

Rédigé par uTux 2 commentaires

Un petit article rapide pour signaler que :

  • J'ai fait du tri et mis hors ligne des articles que je juge peu flatteurs, peu pertinents ou obsolètes. Ce sont principalement ceux écrits sur un coup de tête ou relatifs à l'actualité. J'ai la chance d'être le dictateur de ce blog donc j'en profite pour réécrire l'histoire.
  • Le blog ne tourne plus Docker car j'aimerai refaire les images et containers de manière plus propre en me basant sur l'expérience que j'ai acquis dans cette techno. Docker est pratique et bien pensé, le problème est qu'il est peut-être trop accessible donc on trouve de tout et n'importe quoi et souvent des mauvaises pratiques ou des usages détournés.
  • J'ai réinstallé mon serveur car il a subit de nombreux bidouillages notamment pour Docker et je voulais repartir sur une base propre. J'en ai profité pour faire sa configuration avec Ansible, avec un playbook pour les bases (timezone, locales, reseau, hostname, paquets), un autre pour installer la stack web (nginx, php-fpm, letsencrypt, ufw) et enfin un pour déployer mes sites web (avec génération du certificat let's encrypt au passage). Je peux donc le gérer sans devoir y mettre les pieds en SSH, j'en reparlerai peut être plus tard :)

A quoi ressemble Ubuntu dans Windows 10 ?

Rédigé par uTux 2 commentaires

Depuis la mise à jour anniversary de Windows 10, il est possible d'installer un sous-système ubuntu 14.04 et de lancer bash (et d'autres logiciels), ça ressemble à ça :

Impressionné ? Non ? Moi non plus, on a déjà vu ça avec Cygwin (qui existe depuis 1995 d'après Wikipedia), la différence est que c'est supporté par Microsoft et que l'on a accès aux dépôts de ubuntu. Et comme il s'agit de la 14.04, pas de systemd, dommage cela aurait pu donner lieu de bons à trolls.

Tous ces efforts de Microsoft pour se rapprocher de Linux montrent à quel point ils sont largués. Bien que Windows soit solidement implanté dans le grand public (grâce à la vente liée) et le monde professionnel (A.D, Exchange qui sont plutôt de bons outils) c'est toujours Linux qui est en tête sur les serveurs présents sur internet (web et messagerie pour ne citer que deux domaines). En tant que sysadmin je ne peux pas faire mon métier depuis Windows, cet OS n'est pas conçu pour cela : où sont dig, tcpdump, ssh , grep ? Et pourquoi est-ce que je choisirais IIS qui nécessite d'acheter une licence Windows Server ainsi qu'une machine correctement dimensionnée (gros CPU, 4GB de RAM, 80GB de disque) tout ça pour avoir moins de souplesse et de performances que Debian + Nginx qui tiennent sur 256MB de RAM et 8GB de disque ?

Dans le monde du devops, là encore Microsoft est à la ramasse. Par exemple Ansible et Docker sont des outils libres, gratuits, communautaires, documentés et simples qui ont le vent en poupe et s'appuient sur des composants qui n'existent pas sur Windows : ssh pour le premier, les containers pour le second. Et c'est génial.

En conclusion ce sous-système ubuntu dans Windows ne révolutionne rien mais vient combler un manque de Windows et il en avait grandement besoin. Reste à voir comment il se comporte et s'administre, avec le temps.

Docker >_<

Rédigé par uTux 12 commentaires

Je ne vais pas me faire des amis, mais j'ai un problème avec Docker et je vais l'illustrer en le comparant avec ezjail qui permet de gérer les jails sous FreeBSD.

Pour afficher la liste des containers dans Docker :

$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
c516f8fcbc57        httpd:v5            "/bin/bash"         9 minutes ago       Up 2 seconds        80/tcp              tender_mirzakhani

Attendez, c'est pas fini ! Cette commande ne va afficher que les containers en cours d'exécution. Si on veut tout :

$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS                     PORTS               NAMES
c516f8fcbc57        httpd:v5            "/bin/bash"            9 minutes ago       Up 22 seconds              80/tcp              tender_mirzakhani
974607db9cb7        httpd:v5            "apache2-foreground"   18 minutes ago      Exited (0) 8 minutes ago                       gigantic_engelbart

Et pour entrer dans un container :

$ docker exec -t -i gigantic_engelbart /bin/bash
root@974607db9cb7:/var/www/html#

Ok. Maintenant voyons comment on fait pour lister des containers avec ezjail sous FreeBSD :

ezjail-admin list
STA JID  IP              Hostname                       Root Directory
--- ---- --------------- ------------------------------ ------------------------
DR  1    127.0.1.1       jls-web-10                     /usr/jails/jls-web-10
    1    em0|192.168.0.50
DS  N/A  127.0.1.2       jls-mail-01                    /usr/jails/jls-mail-01
    N/A  em0|192.168.0.60

Et pour entrer dans un container avec ezjail :

ezjail-admin console jls-web-10
FreeBSD 10.3-RELEASE (GENERIC) #0 r297264: Fri Mar 25 02:10:02 UTC 2016

root@jls-web-10:~ #

Voilà, une seule commande simple à retenir et pas d'options superflues.

Pourquoi les commandes Docker sont-elles aussi imbuvables ? C'est un problème courrant dans l'environnement des logiciel sous Linux, on ne sait pas faire de choses simples. git est un autre exemple symptomatique, nous sommes obligés d'avoir sous la main une anti-sèche pour ne pas nous tromper dans les commandes.

Docker étant relativement récent, pourquoi ne s'est-il pas inspiré des commandes ezjail, iohyve, iocage ou lxc qui sont beaucoup plus simples et intuitives ?

Fil RSS des articles de ce mot clé