<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>CICD on Teddy Ferdinand</title><link>https://tferdinand.net/tags/cicd/</link><description>Recent content in CICD on Teddy Ferdinand</description><generator>Hugo</generator><language>fr-FR</language><lastBuildDate>Wed, 29 Apr 2026 13:19:30 +0000</lastBuildDate><atom:link href="https://tferdinand.net/tags/cicd/index.xml" rel="self" type="application/rss+xml"/><item><title>Pourquoi `curl | bash` est une mauvaise habitude dangereuse</title><link>https://tferdinand.net/pourquoi-curl-bash-est-une-mauvaise-habitude-dangereuse/</link><pubDate>Wed, 29 Apr 2026 09:42:21 +0000</pubDate><guid>https://tferdinand.net/pourquoi-curl-bash-est-une-mauvaise-habitude-dangereuse/</guid><description>&lt;p&gt;Dernièrement, je suis retombé sur une vieille mauvaise habitude du monde Linux/DevOps/Cloud : installer un outil avec une commande du type :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -sSL https://example.com/install.sh | bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ou pire :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;curl -sSL https://example.com/install.sh | sudo bash
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;On l’a tous déjà vue.&lt;br&gt;
On l’a probablement tous déjà utilisée.&lt;/p&gt;
&lt;p&gt;Et soyons honnêtes deux minutes : dans beaucoup de documentations officielles, c’est encore présenté comme la manière “simple” d’installer un outil.&lt;/p&gt;
&lt;p&gt;Sauf que cette commande pose un vrai problème de sécurité : elle revient à dire :&lt;/p&gt;</description></item><item><title>Un blog Hugo sur Scaleway avec Github et Github actions - Partie 3/3</title><link>https://tferdinand.net/un-blog-hugo-sur-scaleway-avec-github-et-github-actions-partie-3-3/</link><pubDate>Mon, 07 Feb 2022 05:00:00 +0000</pubDate><guid>https://tferdinand.net/un-blog-hugo-sur-scaleway-avec-github-et-github-actions-partie-3-3/</guid><description>&lt;h2 id="résumé-des-épisodes-précédents"&gt;Résumé des épisodes précédents&lt;/h2&gt;
&lt;p&gt;Dans les deux premiers billets de cette série, nous avons vu comment créer notre bucket de base, configurer notre nom de domaine, et manipuler rapidement Hugo.&lt;/p&gt;
&lt;p&gt;Dans ce dernier billet de la série, nous allons donc passer à l&amp;rsquo;étape manquante : le déploiement.&lt;/p&gt;
&lt;h2 id="automatiser-le-déploiement-sur-scaleway"&gt;Automatiser le déploiement sur Scaleway&lt;/h2&gt;
&lt;h3 id="créer-un-utilisateur-api"&gt;Créer un utilisateur API&lt;/h3&gt;
&lt;p&gt;Nous allons commencer par créer un utilisateur API sur la console Scaleway.&lt;/p&gt;
&lt;p&gt;Pour cela, rendez-vous sur le menu en haut à droite, puis &amp;ldquo;Identifiants&amp;rdquo;&lt;/p&gt;</description></item><item><title>Un blog Hugo sur Scaleway avec Github et Github actions - Partie 2/3</title><link>https://tferdinand.net/un-blog-hugo-sur-scaleway-avec-github-et-github-actions-partie-2-3/</link><pubDate>Mon, 31 Jan 2022 05:00:00 +0000</pubDate><guid>https://tferdinand.net/un-blog-hugo-sur-scaleway-avec-github-et-github-actions-partie-2-3/</guid><description>&lt;h2 id="résumé-de-lépisode-précédent"&gt;Résumé de l&amp;rsquo;épisode précédent&lt;/h2&gt;
&lt;p&gt;Dans mon billet précédent, nous avons créer le socle nécessaire pour recevoir notre code et notre site terminé.&lt;/p&gt;
&lt;p&gt;Si vous ne l&amp;rsquo;avez pas lu, vous pouvez le retrouver ici:&lt;/p&gt;






&lt;a class="bookmark-card" href="https://tferdinand.net/un-blog-hugo-sur-scaleway-avec-github-et-github-actions-partie-1-3/" target="_blank" rel="noopener noreferrer"&gt;
 

 &lt;div class="bookmark-card__content"&gt;
 &lt;div class="bookmark-card__title"&gt;Un blog Hugo sur Scaleway avec Github et Github actions - Partie 1/3&lt;/div&gt;

 
 &lt;div class="bookmark-card__description"&gt;Héberger un blog ne demande pas forcément une énorme infrastructure et beaucoup de moyens. Il est possible de créer un blog simplement pour quelques euros par an (et encore). Il y a quelques mois, j’avais écrit un billet indiquant l’importance de publier son contenu “chez soi”, que vous pouvez retro…&lt;/div&gt;
 

 &lt;div class="bookmark-card__meta"&gt;
 
 Teddy FERDINAND
 
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/a&gt;
&lt;p&gt;Cette semaine, nous allons passer à Hugo. Nous allons voir comment l&amp;rsquo;utiliser de manière très basique pour créer notre blog, et nous créerons le repository Github qui hébergera le code de notre blog.&lt;/p&gt;</description></item><item><title>Un blog Hugo sur Scaleway avec Github et Github actions - Partie 1/3</title><link>https://tferdinand.net/un-blog-hugo-sur-scaleway-avec-github-et-github-actions-partie-1-3/</link><pubDate>Mon, 24 Jan 2022 05:00:00 +0000</pubDate><guid>https://tferdinand.net/un-blog-hugo-sur-scaleway-avec-github-et-github-actions-partie-1-3/</guid><description>&lt;p&gt;Héberger un blog ne demande pas forcément une énorme infrastructure et beaucoup de moyens. Il est possible de créer un blog simplement pour quelques euros par an (et encore).&lt;/p&gt;
&lt;p&gt;Il y a quelques mois, j&amp;rsquo;avais écrit un billet indiquant l&amp;rsquo;importance de publier son contenu &amp;ldquo;chez soi&amp;rdquo;, que vous pouvez retrouver ci-dessous.&lt;/p&gt;






&lt;a class="bookmark-card" href="https://tferdinand.net/pourquoi-cest-important-de-publier-chez-soi/" target="_blank" rel="noopener noreferrer"&gt;
 
 &lt;div class="bookmark-card__image"&gt;
 &lt;img src="bookmark-1.jpg" alt=""&gt;
 &lt;/div&gt;
 

 &lt;div class="bookmark-card__content"&gt;
 &lt;div class="bookmark-card__title"&gt;Pourquoi c’est important de publier chez soi&lt;/div&gt;

 
 &lt;div class="bookmark-card__description"&gt;Je vois nombre de personnes que je suis publier des contenus sur les espaces prévus sur les réseaux sociaux, ou sur des plateformes comme YouTube, TikTok, etc. Je ne pense pas que ce soit forcément une bonne idée : plutôt que de mettre en avant votre contenu à coup de “like”&lt;/div&gt;
 

 &lt;div class="bookmark-card__meta"&gt;
 
 Teddy FERDINAND
 
 &lt;/div&gt;
 &lt;/div&gt;
&lt;/a&gt;
&lt;p&gt;Suite à ce dernier, beaucoup m&amp;rsquo;ont contacté pour me demander des exemples concrets de ce que j&amp;rsquo;entendais par là.&lt;/p&gt;</description></item><item><title>API VS bibliothèques : comprendre l'intérêt</title><link>https://tferdinand.net/api-vs-bibliotheques-comprendre-linteret/</link><pubDate>Mon, 21 Jun 2021 04:35:47 +0000</pubDate><guid>https://tferdinand.net/api-vs-bibliotheques-comprendre-linteret/</guid><description>&lt;p&gt;Lorsque l&amp;rsquo;on doit communiquer avec des services tiers, des APIs sont souvent mises en place pour simplifier l&amp;rsquo;échange d&amp;rsquo;information.&lt;/p&gt;
&lt;p&gt;Très souvent, en parallèle de ces dernières, on peut trouver des SDK, fourni par l&amp;rsquo;éditeur ou bien en open source.&lt;/p&gt;
&lt;p&gt;Aujourd&amp;rsquo;hui, nous allons voir pourquoi l&amp;rsquo;utilisation des SDK est souvent à préférer à celles des API au travers d&amp;rsquo;un exemple simple : AWS et son SDK Boto3.&lt;/p&gt;
&lt;p&gt;Le choix d&amp;rsquo;AWS est arbitraire, tout autant que Boto3, simplement parce que ce sont des technologies que je maîtrise, mais cet exemple est transposable à beaucoup de fournisseurs et langages de programmations différents. Les codes indiqués dans ce billet n&amp;rsquo;ont pas été testés et sont simplement indiqués à titre d&amp;rsquo;illustration.&lt;/p&gt;</description></item><item><title>Cloudflare : configurer rapidement avec Terraform et Traefik</title><link>https://tferdinand.net/cloudflare-configurer-rapidement-avec-terraform-et-traefik/</link><pubDate>Mon, 19 Apr 2021 06:23:00 +0000</pubDate><guid>https://tferdinand.net/cloudflare-configurer-rapidement-avec-terraform-et-traefik/</guid><description>&lt;p&gt;Depuis quelques semaines maintenant ce blog est derrière Cloudflare.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Bascule sur &lt;a href="https://twitter.com/Cloudflare?ref_src=twsrc%5Etfw"&gt;@Cloudflare&lt;/a&gt;, c&amp;rsquo;est fait! :) &lt;a href="https://t.co/pZyq0x6Juy"&gt;pic.twitter.com/pZyq0x6Juy&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;— Teddy FERDINAND (@TeddyFERDINAND1) &lt;a href="https://twitter.com/TeddyFERDINAND1/status/1371736321883049986?ref_src=twsrc%5Etfw"&gt;March 16, 2021&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Dans ce billet, je vais vous expliquer pourquoi et comment j&amp;rsquo;ai configuré Cloudflare devant Traefik.&lt;/p&gt;
&lt;h2 id="cloudflare--pourquoi-utiliser-un-cdn"&gt;Cloudflare : Pourquoi utiliser un CDN?&lt;/h2&gt;
&lt;p&gt;Cloudflare est avant tout un CDN, un &lt;em&gt;&lt;strong&gt;C&lt;/strong&gt;ontent &lt;strong&gt;D&lt;/strong&gt;elivery &lt;strong&gt;N&lt;/strong&gt;etwork&lt;/em&gt;. Le rôle d&amp;rsquo;un CDN est de réduire autant que possible la latence de réponse pour l&amp;rsquo;utilisateur final, en exploitant plusieurs points.&lt;/p&gt;</description></item><item><title>Comment mon serveur est revenu rapidement en ligne</title><link>https://tferdinand.net/comment-mon-serveur-est-revenu-rapidement-en-ligne/</link><pubDate>Mon, 22 Mar 2021 04:20:10 +0000</pubDate><guid>https://tferdinand.net/comment-mon-serveur-est-revenu-rapidement-en-ligne/</guid><description>&lt;p&gt;Dernièrement, j&amp;rsquo;ai rencontré plusieurs soucis sur mon serveur dédié qui héberge (entre autres) ce blog.&lt;/p&gt;
&lt;p&gt;Aujourd&amp;rsquo;hui, je vous propose de voir comment j&amp;rsquo;ai réussi à remettre rapidement mon serveur en ligne, en le réinstallant intégralement, et en changeant d&amp;rsquo;OS.&lt;/p&gt;
&lt;h2 id="un-drame-en-3-actes"&gt;Un drame en 3 actes&lt;/h2&gt;
&lt;p&gt;Durant la nuit, à 2h du matin le 8, mon serveur a redémarré suite à un kernel panic. Arbre qui cache souvent la forêt, le kernel panic est une erreur grave que le système n&amp;rsquo;a pas réussi à empêcher et qui a eu trop d&amp;rsquo;impact pour qu&amp;rsquo;il maintienne sa stabilité. Pour les amateurs de Windows, nous pourrions comparer ça à un écran bleu (BSOD).&lt;/p&gt;</description></item><item><title>Transformez votre pipeline AWS DevSecOps en bunker - Partie 1</title><link>https://tferdinand.net/transformez-votre-pipeline-aws-devsecops-en-bunker-partie-1/</link><pubDate>Thu, 18 Jun 2020 15:16:01 +0000</pubDate><guid>https://tferdinand.net/transformez-votre-pipeline-aws-devsecops-en-bunker-partie-1/</guid><description>&lt;blockquote&gt;
&lt;p&gt;Ce billet a été co-écrit par &lt;a href="https://zoph.me/"&gt;Victor Grenu&lt;/a&gt;. Qui travaille en tant que Cloud Architect&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Dans cette série, nous parlerons de l&amp;rsquo;émergence du mouvement DevSecOps, et plus particulièrement, quels sont les avantages de l&amp;rsquo;introduction d&amp;rsquo;une approche DevSecOps sur vos pipelines CI/CD existants.&lt;/p&gt;
&lt;h2 id="pipeline-cicd"&gt;Pipeline CI/CD&lt;/h2&gt;
&lt;p&gt;Pour vous donner un peu de contexte, vous trouverez dans le diagramme ci-dessous un pipeline standard de CI/CD.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://tferdinand.net/transformez-votre-pipeline-aws-devsecops-en-bunker-partie-1/image-1.png" alt=""&gt;&lt;/p&gt;
&lt;h2 id="devsecquoi"&gt;DevSecQuoi?&lt;/h2&gt;
&lt;p&gt;Le DevSecOps pourraient être définies comme un passage d&amp;rsquo;une équipe centrale de sécurité interne à l&amp;rsquo;inclusion de pratiques de sécurité dans les équipes DevOps existantes : DevSecOps&lt;/p&gt;</description></item><item><title>Déployer automatiquement ses thèmes Ghost avec CircleCI</title><link>https://tferdinand.net/deployer-automatiquement-ses-themes-ghosts-avec-circleci/</link><pubDate>Tue, 07 Apr 2020 07:26:56 +0000</pubDate><guid>https://tferdinand.net/deployer-automatiquement-ses-themes-ghosts-avec-circleci/</guid><description>&lt;p&gt;Comme vous pouvez le voir, ce site utilise le CMS Ghost. De plus, j&amp;rsquo;utilise un thème que je modifie ponctuellement en fonction de mes besoins, comme par exemple pour ajouter le multi-auteur qui n&amp;rsquo;était pas actif nativement.&lt;/p&gt;
&lt;p&gt;Néanmoins, le défaut est que Ghost nécessite à chaque fois de redéployer le thème via le backoffice. Il faut de plus le compresser avec un nom unique à chaque fois.&lt;/p&gt;
&lt;p&gt;Rien d&amp;rsquo;énormément bloquant, sauf que lorsqu&amp;rsquo;on travaille sur certaines améliorations, les allers-retours pour les tests peuvent être nombreux.&lt;/p&gt;</description></item></channel></rss>