Au début des années 2000 on pouvait trouver des hébergements web gratuit moyennement l'ajout de bandeaux publicitaires. Si vous êtes nostalgique de cette époque, remerciez Wikipedia qui a décidé de remettre ça en couvrant l'écran d'horribles publicités agressives et omniprésentes, mendiant de l'argent au visiteur:
Je ne lis même pas, ça m'agace. Vous allez me dire que j'exagère, Wikipedia c'est le savoir de l'humanité, libre et gratuit, et s'il venait à disparaître ce serait une catastrophe. C'est vrai, mais en quoi Wikipédia est plus légitime qu'un autre ? C'est aussi l'argument utilisé par la presse en ligne, désactive uBlock et bouffe notre pub ou crève, on a des salariés à faire vivre et on veut pas mourir. Pourrir l'expérience utilisateur avec de mauvaises pratiques publicitaires est impardonnable, il ne fait qu'agacer les visiteurs et inciter les autres à faire pareil.
Du coup y'en a marre, Wikipedia tu vas dans uBlock, ça t'apprendra le respect:
Un petit billet hors sujet pour parler d'un phénomène que je trouve intriguant. Étant toujours en panne de voiture je redécouvre les joies du covoiturage avec blablacar, le site de partage que tout le monde connait et dont les tarifs ont beaucoup augmenté depuis ma première visite (2014), les joies du monopole, mais ce n'est pas le sujet.
Qu'est-ce que le covoiturage ? C'est avant tout un partage. Le conducteur partage sa voiture et les passagers partagent le coût du voyage. C'est un système entre particuliers, un arrangement plus rentable économiquement que le train (dont le coût du billet est exorbitant), plutôt convivial et écologique.
Il y a bien entendu des règles de base qui tiennent du savoir vivre: communiquer rapidement les bonnes informations à ses compagnons, être amical, faire preuve de souplesse dans vos horaires ou trajets si cela est possible, etc. Mais il y a une chose plutôt récente que j'ai remarqué, c'est que certaines personnes prennent cela beaucoup trop au sérieux. L'exemple que j'ai en tête c'est le conducteur qui vous confirme 10 fois par SMS que votre trajet est validé (vous le savez déjà), vous propose d'office de venir vous prendre là où ça vous arrange (alors que vous n'avez rien demandé), vous fait presque des courbettes ce qui en soit est plutôt gentil mais on a l'impression d'être dans une relation entreprise - client alors que ce n'est pas le cas, nous sommes deux particuliers qui s'arrangent pour partager un voyage.
Faut-il y voir une course aux étoiles ? Car oui nous sommes jugés à l'aide d'un système de notation qui peut d'abord paraître légitime vu qu'on voyage la plupart du temps avec des inconnus mais qui à mon avis s'étend un peu plus. On peut juger la conduite, la ponctualité, l'humeur mais mon exemple précédent semble indiquer qu'il y a d'autres critères. On juge le service rendu voire la personne elle-même et on créé une concurrence entre les usagers, une uberisation ou macronisation du service ce qui à mon avis va un peu trop loin.
Dans le cas où je serai amené à utiliser le service en tant que conducteur, ma philosophie serait la suivante: je conduits bien, je suis fiable, ponctuel, je vous donne toutes les infos nécessaires et vous tient au courant en cas de changement, mais je considère mes passagers comme mes égaux et non comme des clients. Je ne leur vend pas un service, c'est un échange de bons procédés entre particuliers.
En tant que passager, je n'ai jamais eu de mauvaise surprise. Si le chauffeur est à l'heure et conduit bien, je mets un 5/5. Si le courant ne passe pas bien ou si la conduite n'est pas idéale, je m'abstiens de noter et ce n'est arrivé qu'une seule fois.
Conclusion ? En fait non, ce n'est qu'une observation, je ne prétends pas avoir assez de statistiques ou même une qualification me permettant de livrer une explication à tout ceci car cela ferait appel à un mélange de sciences sociales et d'économie. Je livre simplement un constat et invite les gens à ne pas surjouer et rester eux-mêmes. Le covoiturage est à mon sens une des révolutions positives les plus importantes des 10 dernières années permises grâce à internet et on y fait beaucoup de rencontres sympathiques. Ne changez pas le système!
Dans l'article Configuration et déploiement avec Ansible je livrais déjà quelques conseils issus de mon expérience. J'ai eu la chance de continuer à travailler sur cette technologie en entreprise et je livre donc les compléments suivants:
L'idempotence est importante, c'est à dire la capacité à rejouer le même rôle une seconde fois. Si votre playbook doit créer un utilisateur (Unix ou mysql), pensez à ce qui peut se passer au bout de 6 mois. Imaginez qu'entre temps un collègue a changé le mot de passe root de Mysql et ne l'a pas mis à jour dans Ansible. Si vous rejouez le rôle, il sera écrasé et votre prod pourra potentiellement tomber. Pour cela restez à l'affut des options des modules, par exemple pour mysql_user on a update_password: on_create (on ne change le mot de passe que lors de la création du user, on y touche pas s'il existe déjà). C'est pareil avec le module user, si vous mettez le groupe "sudo", l'utilisateur sera mis dans ce groupe et retiré des autres! A moins d'utiliser l'option append: yes. Idempotence et anticipation!
La documentation et le guide des bonnes pratiques de Ansible recommandent de faire des playbook webservers.yml, dbservers.yml, etc. Mais en pratique il est parfois plus approprié d'avoir 1 playbook par serveur (srv-web-01.yml, srv-web-02.yml, etc). Car dans la réalité de la production on a pas toujours la même chose sur les serveurs.
Évitez d'éparpiller vos variables partout. Mettez-les dans le .yml du serveur si possible, puis dans le group_vars/groupe et c'est tout. Évitez les host_vars ou encore les roles/truc/vars car cela peut rapidement devenir un enfer de retrouver où sont définies les variables. Parfois il vaut mieux faire moins optimisé mais plus lisible.
Ne faites pas trop de groupes, car l'inventaire de base (constitué d'un fichier) peut rapidement devenir impossible à maintenir. On peut être tenté de faire des groupes par location géographique, par type d'environnement, par type d'applicatif, mais il sera alors chargé et illisible ce qui entrainera des erreurs dans les playbook (oubli de certains serveurs).
Soyez verbeux, utilisez le module debug pour afficher des informations. Pour les opérations sensibles utilisez le module pause permettant de valider l'exécution d'une opération, exemple: "Installation de Gluster 3.5.2-4 sur Debian Jessie, infra Paris. Enter pour valider ou CTRL+C pour annuler" (un cluster constitué de différentes versions de Gluster peut crasher, d'où l'intérêt de bien vérifier les versions).
Documentez clairement, faites des README dans chaque rôle expliquant leur utilité.
Faites des templates pour que vos collègues/successeurs aient des exemples de playbook utilisant vos rôles.
C'est lisible mais le mot de passe ('secret') se promène en clair, ce qui n'est pas top surtout si vous stockez votre projet sur un dépôt. La solution est d'utiliser ansible vault pour stocker dans un fichier sécurisé le mot de passe.
Ça marche, mais c'est un peu lourd car il faut taper le mot de passe vault à chaque exécution du playbook. Heureusement on peut le définir dans un fichier. On prendra soin de faire un gitignore pour ce fichier, voire même le placer dans un autre dossier:
On doit ensuite spécifier à Ansible où trouver ce fichier. Vous pouvez le définir au niveau du /etc/ansible/ansible.cfg ou dans le ansible.cfg local du projet (ce que je préfère faire, ainsi il est commité dans le dépôt et tout le monde a la bonne version):
Après le semi-marathon Nantes 2017, j'ai décidé de m'attaquer à celui de Auray-Vannes. Malheureusement j'ai perdu l'enregistrement Strava, mon téléphone s'est éteint à cause de la pluie :( Du coup j'ai du attendre le classement officiel. Mes stats :
21,1km
01h54
5,4 min/km
Distance
Temps réel
Pace
C'est 4min de mieux que le semi-marathon de Nantes (~2h00 en temps réel)! Petit aperçu du parcours tiré de la page Strava d'une des participantes:
Mon ressenti :
Énorme ambiance! La musique au départ, la foule qui nous acclame, les spectateurs dans le fossé sur quasiment tout le parcours, l'homme costumé en tortue qui lançait des bonbons dans son sillage, c'était quelque chose de fort!
Conscient qu'il y avait pas mal de dénivelé je visais un temps honorable de 2h, j'ai finalement fait 1h54 ce dont je suis plutôt satisfait! J'ai pu tenir un rythme constant du début à la fin et surtout je suis arrivé dans un état à peu près convenable alors que j'avais vraiment souffert lors du semi-marathon de Nantes 2017. J'attribue cet excellent résultat à plusieurs facteurs:
L'entrainement, j'ai beaucoup bossé pour améliorer mon cardio et appris à gérer certains éléments (ne pas trop se couvrir, bien boire et manger même si on ne ressent pas le besoin).
La météo, pas de soleil et un petit vent frais, ça facilite la gestion de son eau et ça aide à évacuer la chaleur du corps.
Les 370km à vélo sur les côtes bretonnes qui m'ont habitué à gravir les cotes, je n'ai pas senti les dénivelés alors que cela semblait affecter beaucoup d'autres participants.
Une bonne gestion de l'eau et la nourriture: je me suis forcé à boire et manger dès les premiers ravitaillements pour éviter "le mur" qui peut frapper si on gère mal même sur de petites distances.
L'effet de nouveauté du parcours et sa non-redondance, ça motive.
Les derniers km se sont fait sous la pluie, à chaque fois qu'un de mes pieds frappait le sol, de l'eau jaillissait de chaque cm2 de mes vêtements et ma peau, j'étais vraiment trempé. L'arrivée a été marquée par le froid car une fois qu'on franchit la ligne d'arrivée et qu'on s'arrête, on commence immédiatement à se refroidir et la pluie + le vent deviennent alors mordants, il faut vite se couvrir ou rentrer se mettre à l'abri!
En conclusion le semi-marathon Auray-Vannes c'est génial, très bon parcours, excellente ambiance et bon défi! J'espère le refaire l'année prochaine!