Le Blog Utux

HTTP 200 GET /

Solo

Rédigé par uTux Aucun commentaire

Solo est un film que personne n'attendait ni même ne voulait. Moi si. Je ne suis pas particulièrement intéressé par l'origin story de Han Solo mais les deux derniers Star Wars que j'ai vu (Rogue One et l'Episode 8) m'ont beaucoup plu. De plus je trouvais les affiches originales. Et en fait c'est pas mal du tout, j'ai beaucoup aimé, même si le film a pas mal de défauts.

Affiche Solo

J'ai aimé la cohérence du film avec le personnage. Ce qui a toujours caractérisé Han Solo, c'est d'avoir sa tête mise à prix et de s'en sortir en négociant des choses quasi impossible (comme rembourser une cargaison hors de prix ou rarissime). Et cet aspect se retrouve très bien dans le film. Han Solo n'aide pas les rebelles, il ne se bat pas pour le bien, il essaie simplement de sauver sa peau, même s'il y a quelques écarts que l'on peut mettre sur le compte de sa jeunesse. J'ai également aimé les différentes planètes que je ne spoilerai pas, les compagnons, le lore issue de l'univers étendu (personnages, syndicats du crime...) et ce petit côté Rogue One qui se ressent.

Parlons maintenant des défauts, qui sont assez nombreux et semblent coûter cher au film. Le premier est cet abus d'explications, comme on à affaire à une origin story, il faut tout voir. Et le ridicule est poussé au point d'expliquer l'origine même du nom Solo... ce détail va devenir comme la scène de Leia dans l'espace de l'épisode 8. Ensuite le film est bourré de fan service, il y en a trop, c'est gras. Et puis il est très prévisible puisqu'il utilise les ficelles vues et revues dans des milliers de film.

Pour conclure, même s'il y a des défauts et que le consensus semble être de ne pas aimer ce film, moi j'ai beaucoup aimé. Il respecte le personnage, il s'inscrit dans l'univers Star Wars, il est rythmé, il est bien fait. Je le recommande.

Doctor Strange, Black Panther, Marvel a changé

Rédigé par uTux Aucun commentaire

Quand j'entends parler de Marvel, je pense immédiatement au cinéma à gros budget, aux blockbuster, aux divertissements décérébrés assumés, aux films de commande et surtout a un modèle à bout de souffle. Je sature tellement que pour moi Marvel c'était fini, je ne regardais plus voir leurs films.

Avec pas mal de retard j'ai finalement regardé Doctor Strange et Black Panther, deux films que je ne serai jamais allé voir en tant normal mais dont on dit beaucoup de bien. Et c'est dingue mais avec ces deux films j'ai réalisé que Marvel a changé. Même s'il faut avouer que l'histoire ne casse pas des briques et que le schema de base est toujours le même, on sent le réalisateur dispose d'une grande liberté artistique, qu'il y a des idées et des prises de risques.

Doctor Strange offre du grand spectacle avec ses environnements qui se modèlent à volonté et cette touche de fantastique avec la magie qui nous fait presque oublier que nous sommes dans le même univers que Iron Man qui est plutôt science fiction. Au niveau de la prise de risque c'est zéro, mais au niveau artistique il faut avouer que ça claque.

Black Panther est certainement le film de super-héros le plus orignal et le plus rafraichissant vu cette année. Imaginez que dans un des pays du tiers-monde au milieu de l'Afrique se cache en fait une citée très avancée comme l'Atlantide avec un niveau technologique bien supérieur au reste du monde. Va-t-on y trouver une société aseptisée avec des gens vêtus de toges blanches ? Pas du tout, c'est même l'inverse avec des tribu en costume traditionnel qui font des cérémonies et dansent tout en se déplaçant en avion ou train futuriste. Et c'est ce mélange qui fonctionne bien. J'ai aussi adoré les trouvailles visuelles comme l'espèce de matière ferrofluide qui permet de modeler des objets 3D en temps réel ou tous ces drones que l'on pilote à distance. Côté histoire on peut également y voir un timide écho à certains événements stigmatisant la communauté afro-américaine aux États-Unis. Là aussi c'est assez couillu pour du Marvel. Un des points négatifs du film par contre est qu'il est clairement pollué par la publicité.

Après avoir vu ces deux films ainsi que Star Wars Episode 8 je commence à changer d'avis sur les blockbuster Disney. On veut des choses nouvelles, on veut des prises de risque, on veut une plus grande liberté pour les réalisateurs, et on commence à l'avoir. Marvel a changé.

Ansible: récupérer les clés SSH depuis BitBucket

Rédigé par uTux Aucun commentaire

Je m'attaque aux API REST et en particulier celle de BitBucket pour y récupérer mes clés SSH que je déploie ensuite sur mes serveurs, le tout avec Ansible. Voilà un petit bout de code sur lequel j'ai passé une bonne soirée car autant c'est facile d'interroger l'API, autant ça l'est un peu moins de faire rentrer les bons champs dans des variables ;)

Pré requis:

  • Sur votre compte BitBucket
  • Settings > App passwords
  • Créez un password avec l'autorisation Account / read.

Allons-y (à mettre dans votre tasks/main.yml par exemple):

---

  - name: GET authorized_keys from REST API
    uri:
      url: "{{ authorized_keys.api_url }}"
      method: "{{ authorized_keys.api_method }}"
      user: "{{ authorized_keys.api_user }}"
      password: "{{ authorized_keys.api_password }}"
      force_basic_auth: "{{ authorized_keys.api_force_basic }}"
    register: authorized_keys__json_response
    delegate_to: localhost
    run_once: True
    # Delegate to localhost and run 1 time because
    # we don't need to query the API from each remote host

  - name: Set Keys as a Var
    set_fact:
      authorized_keys__keys: "{{ authorized_keys__json_response.json | json_query('values[*].key') }}"
    delegate_to: localhost
    run_once: True
    # Extract the fields 'key' in a variable

  - name: Concatenate Keys
    set_fact:
      authorized_keys__keys_concatenate: "{{ authorized_keys__keys | join('\n') }}"
    delegate_to: localhost
    run_once: True
    # Ansible authorized_keys module with 'exclusive' option requires all keys in one batch
    # separated by a newline \n

La variable authorized_keys__keys contient la liste des clés publiques. La variable authorized_keys__keys_concatenate n'est pas une liste mais un champ contenant toutes les clés séparées par un retour à la ligne et elle est utile si vous souhaitez utiliser le module authorized_keys avec exclusive: yes car ce dernier ne marche pas bien avec une liste, il faut donc lui fournir 1 seul "batch".

Complétez ensuite vos variables, par exemple:

# group_vars/all/vars.yml

authorized_keys:
  api_user: john
  api_url: "https://api.bitbucket.org/2.0/users/john/ssh-keys"
  api_method: GET
  api_force_basic: yes
  api_password: password créé dans l'interface bitbucket

Bien sûr en vrai on mettra le password dans un vault ;)

Et voilà, vous pouvez utiliser authorized_keys__keys ou authorized_keys__keys_concatenate pour la suite!

Rip hardware.fr :'(

Rédigé par uTux 1 commentaire

C'est un coup dur :( Hardware.fr va cesser de publier des articles il ne restera donc que le forum et la boutique. J'étais fan des articles longs et détaillés comme les tests des CPU ou des cartes graphiques, le testeur avait même identifié un problème de latence entre les cœurs des RyZen... A chaque fois qu'un site fermait ou devenait payant, je me disais "pas grave il reste toujours hardware.fr".

RIP Hardware...

FreeBSD: jouons avec iocage

Rédigé par uTux Aucun commentaire

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