Le SSH ForwardAgent
est déconseillé car il peut potentiellement exposer les clés SSH (cf. https://julien.mailleret.fr/links/?QRAuyw). Il est désormais recommender d'utiliser ProxyJump
sur les versions d'OpenSSH > 7.3 qui remplace ProxyCommand
.
Voir également: https://heipei.io/2015/02/26/SSH-Agent-Forwarding-considered-harmful/
Example d'utilisation de pre-commit git pour forcer le formattage de code python avec black et flake8
Terratest est un framework de test en Go pour automatiser les tests d'infrastructure Terraform, mais aussi Packer et Docker build.
12 bonnes pratiques a mettre en place quand on publie du code python en open source
Firecracker est un VMM (Virtual Machine Manager) open source light qui s'interface avec KVM pour créer des microvm qui démarrent en moins de 125ms. Le but de Firecracker est de pouvoir bénéficier de la rapidité d'instanciation d'un container avec l'isolation d'une VM. C'est développé par AWS qui l'utilise en interne pour faire tourner AWS Lambda et AWS Fargate.
Super utile pour créer, reviewer et merger des PR GitHub depuis VS Code
L'article propose d'optimiser les coûts d'infrastructures et de bénéficier d'un pseudo chaos engineering sur les clusters k8s en utilisant des spots instances aws (ou équivalent dans les autres clouds).
Des retours d'expériences et conseils pour bien gérer le travail en full-remote
- Habit 1: You analyze every change in the context of the (much) bigger picture
- Habit 2: You’re pragmatic and forward-thinking about that analysis
- Habit 3: You are willing to move on when something isn’t actually helping
- Habit 4: You embrace every opportunity to automate
- Habit 5: You can persuade organizations to do what needs to be done
- Habit 6: You expand your existing skill set to include new tools and approaches
- Habit 7: You trust the process
Une liste de services cloud disposant d'une offre free tier suffisante pour faire tourner un SAAS gratuitement
Atlantis permet d'orchestrer la planification et l'application topologies Terraform depuis des pull requests GitHub, GitLab où BitBucket.
Atlantis fait désormais partie d'Hashicorm (cf. https://medium.com/runatlantis/joining-hashicorp-200ee9572dc5)
- Distinguer la documentation conceptuelle (why-doc) de la documentation pratique (how-doc)
- La documentation conceptuelle (why-doc) a rarement besoin de changement. Celle-ci a toujours sa place dans un wiki ou README
- La documentation pratique (how-doc) a un cycle de vie beaucoup plus court. Elle est composée de snippets immutables d'une ligne qui peuvent être ajoutés et recherchés via un bot Slack.
L'utilisation de Slack a ici plusieurs intérêts:
- Chaque snippet est timestampé et relié a un auteur
- Les snippets sont triés par ordre chronologique du plus récent (Doc la plus fraîche) au plus ancien (potentiellement obsolète)
- L'ajout de snippet est directement intégré au système de communication qui sers aux questions/réponses, quand on pose une question sur Slack, le coût pour ajouter la réponse dans la doc est donc quasi-nul
- En revanche si l'on souhaite se passer de Slack ou d'un équivalent, on pourrait très facilement développer un script permettant d'ajouter/rechercher des snippet timestampés dans un backend (simple fichier versionné, service rest très simple, bdd SQLite) en s'inspirant de certains outils de gestion de todo-list en ligne de commande par example
Erreur rencontrée avec Ansible 2.6.5, Python 2.7.15 et MacOS 10.13 lors de l'execution d'un playbook sur un Windows 2016 Server:
$ ansible-playbook playbook.yml
PLAY [Prepare instance] *********************************************************************************************************************************************************************************************************************************************
TASK [Gathering Facts] **********************************************************************************************************************************************************************************************************************************************
Friday 05 October 2018 11:32:23 +0200 (0:00:00.072) 0:00:00.072 ********
objc[11299]: +[__NSPlaceholderDate initialize] may have been in progress in another thread when fork() was called.
objc[11299]: +[__NSPlaceholderDate initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug.
^C [ERROR]: User interrupted execution
A priori c'est lié à la gestion des forks dans MacOS High Sierra. Le workaround est de faire un export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
avant de lancer Ansible
Le texte d'une conférence qui défend l'idée que l'augmentation de la complexité technologique pour en améliorer l'efficacité ne permet pas de réduire la consommation, bien au contraire. Le texte montre aussi que la basse technologique (Low Tech), ou une société sobre, ne signifie pas non plus le retour à la caverne.
Superbe discours de François Ruffin contre les politiques de croissance.
Un tuto pour faire tourner une webapp sur un cluster K8S GKE minimal (3 nodes f1-micro / 600Mb RAM) pour 5$ par mois
Amazon permet désormais d'ouvrir un shell sur les instances EC2 sans passer par SSH via la console web ou la cli AWS.
La doc de l'API S3 avec pour chaque endpoint les permissions IAM nécessaires.
C'est super utile quand on essaie de debugger un provisionning de bucket avec terraform qui plante parce qu'il manque des droits:
TF_LOG=debug terraform apply --target aws_s3_bucket.mon_bucket
puis on cherche l'appel qui plante et on va voir dans la doc les permissions à ajouter à sa policy IAM.
Le simulateur de policy AWS IAM, url à garder sous le coude
Un linter et formatter JSON, c'est super utile pour trouver et corriger les erreurs dans un gros json qui est mal formaté