PageSourceSearch

https://stranix.net/tag/devops/

html stranix.net collected 2026-10-02 01:05:31 UTC 19,881 bytes, 335 lines download raw bytes

1<!DOCTYPE html>
2<html lang="fr">
3<head>
4    <meta charset="utf-8" />
5    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6    <title>devops - STRANIX.net</title>
7    <link rel="preconnect" href="https://rsms.me" crossorigin />
8    <link rel="stylesheet" href="https://rsms.me/inter/inter.css" />
9    <link rel="preconnect" href="https://fonts.googleapis.com" />
10    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
11    <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;600;700&display=swap" />
12    <link rel="stylesheet" type="text/css" href="/assets/built/screen.css?v=5cf00d3149" />
13    <link rel="canonical" href="https://stranix.net/tag/devops/">
14    <meta name="referrer" content="no-referrer-when-downgrade">
15    
16    <meta property="og:site_name" content="STRANIX.net">
17    <meta property="og:type" content="website">
18    <meta property="og:title" content="devops - STRANIX.net">
19    <meta property="og:url" content="https://stranix.net/tag/devops/">
20    <meta property="og:image" content="https://stranix.net/content/images/size/w1200/2026/02/gilles1.png">
21    <meta name="twitter:card" content="summary_large_image">
22    <meta name="twitter:title" content="devops - STRANIX.net">
23    <meta name="twitter:url" content="https://stranix.net/tag/devops/">
24    <meta name="twitter:image" content="https://stranix.net/content/images/size/w1200/2026/02/gilles1.png">
25    <meta name="twitter:site" content="@stranix_79">
26    <meta property="og:image:width" content="1200">
27    <meta property="og:image:height" content="465">
28    
29    
29<script type="application/ld+json">
30{
31    "@context": "https://schema.org",
32    "@type": "Series",
33    "publisher": {
34        "@type": "Organization",
35        "name": "STRANIX.net",
36        "url": "https://stranix.net/",
37        "logo": {
38            "@type": "ImageObject",
39            "url": "https://stranix.net/content/images/2026/02/stranix-avatar.png",
40            "width": 60,
41            "height": 60
42        }
43    },
44    "url": "https://stranix.net/tag/devops/",
45    "name": "devops",
46    "mainEntityOfPage": "https://stranix.net/tag/devops/"
47}
48    </script>
48
49
50    <meta name="generator" content="Ghost 6.45">
51    <link rel="alternate" type="application/rss+xml" title="STRANIX.net" href="https://stranix.net/rss/">
52    
52<script defer src="https://cdn.jsdelivr.net/ghost/portal@~2.69/umd/portal.min.js" data-i18n="true" data-ghost="https://stranix.net/" data-key="359b251e2963557c1fbbfb148c" data-api="https://stranix.net/ghost/api/content/" data-locale="fr" crossorigin="anonymous"></script>
52<style id="gh-members-styles">.gh-post-upgrade-cta-content,
53.gh-post-upgrade-cta {
54    display: flex;
55    flex-direction: column;
56    align-items: center;
57    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
58    text-align: center;
59    width: 100%;
60    color: #ffffff;
61    font-size: 16px;
62}
63
64.gh-post-upgrade-cta-content {
65    border-radius: 8px;
66    padding: 40px 4vw;
67}
68
69.gh-post-upgrade-cta h2 {
70    color: #ffffff;
71    font-size: 28px;
72    letter-spacing: -0.2px;
73    margin: 0;
74    padding: 0;
75}
76
77.gh-post-upgrade-cta p {
78    margin: 20px 0 0;
79    padding: 0;
80}
81
82.gh-post-upgrade-cta small {
83    font-size: 16px;
84    letter-spacing: -0.2px;
85}
86
87.gh-post-upgrade-cta a {
88    color: #ffffff;
89    cursor: pointer;
90    font-weight: 500;
91    box-shadow: none;
92    text-decoration: underline;
93}
94
95.gh-post-upgrade-cta a:hover {
96    color: #ffffff;
97    opacity: 0.8;
98    box-shadow: none;
99    text-decoration: underline;
100}
101
102.gh-post-upgrade-cta a.gh-btn {
103    display: block;
104    background: #ffffff;
105    text-decoration: none;
106    margin: 28px 0 0;
107    padding: 8px 18px;
108    border-radius: 4px;
109    font-size: 16px;
110    font-weight: 600;
111}
112
113.gh-post-upgrade-cta a.gh-btn:hover {
114    opacity: 0.92;
115}</style>
116    
116<script defer src="https://cdn.jsdelivr.net/ghost/sodo-search@~1.8/umd/sodo-search.min.js" data-key="359b251e2963557c1fbbfb148c" data-styles="https://cdn.jsdelivr.net/ghost/sodo-search@~1.8/umd/main.css" data-sodo-search="https://stranix.net/" data-locale="fr" crossorigin="anonymous"></script>
116
117    
118    <link href="https://stranix.net/webmentions/receive/" rel="webmention">
119    
119<script defer src="/public/cards.min.js?v=5cf00d3149"></script>
119
120    <link rel="stylesheet" type="text/css" href="/public/cards.min.css?v=5cf00d3149">
121    
121<script defer src="/public/member-attribution.min.js?v=5cf00d3149"></script>
121<style>:root {--ghost-accent-color: #F5842A;}</style>
122    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css">
123</head>
124<body class="tag-template tag-devops">
125    <header class="site-head">
126        <div class="wrap head-inner">
127            <a class="brand" href="https://stranix.net">
128                    <img class="brand-logo" src="https://stranix.net/content/images/2026/02/stranix-avatar.png" alt="STRANIX.net" />
129                <span class="brand-name">stranix<span class="dim">.net</span></span>
130            </a>
131            <div class="head-right">
132                <nav class="nav-main">
133                    <ul class="nav">
134    <li class="nav-accueil"><a href="https://stranix.net/">Accueil</a></li>
135    <li class="nav-a-propos"><a href="https://stranix.net/about/">À propos</a></li>
136    <li class="nav-apps"><a href="https://apps.stranix.net">Apps</a></li>
137    <li class="nav-cheatsheets"><a href="https://stranix.net/cheatsheets/">Cheatsheets</a></li>
138</ul>
139
140                </nav>
141                <nav class="socials" aria-label="Réseaux">
142    <a href="https://x.com/stranix_79" target="_blank" rel="me noopener" aria-label="X (Twitter)">
143        <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24h-6.657l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231 5.45-6.231Zm-1.161 17.52h1.833L7.084 4.126H5.117L17.083 19.77Z"/></svg>
144    </a>
145    <a href="https://github.com/stranix79" target="_blank" rel="me noopener" aria-label="GitHub">
146        <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.605-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23A11.5 11.5 0 0 1 12 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222 0 1.606-.014 2.898-.014 3.293 0 .322.216.694.825.576C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg>
147    </a>
148    <a href="https://www.linkedin.com/in/fauviegilles/" target="_blank" rel="me noopener" aria-label="LinkedIn">
149        <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286ZM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065Zm1.782 13.019H3.555V9h3.564v11.452ZM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.225 0Z"/></svg>
150    </a>
151</nav>
152                <a class="hub-badge" href="https://code79.com" target="_blank" rel="noopener">part of <b>code79.com</b></a>
153            </div>
154        </div>
155    </header>
156
157    <main class="site-main">
158        
159
160<section class="section">
161    <div class="wrap">
162        
163        <div class="post-feed">
164                <article class="card">
165    <a class="card-link" href="/terraform-cloudflare-mes-dns-en-infrastructure-as-code-et-lunderscore-qui-ma-fait-peter-un-cable/">
166        <div class="card-thumb">
167                <img src="/content/images/size/w800/2026/07/tf-cf-cover.png" alt="Terraform + Cloudflare : mes DNS en Infrastructure as Code (et l&#x27;underscore qui m&#x27;a fait péter un câble)" loading="lazy" />
168        </div>
169        <div class="card-body">
170            <span class="card-tag">DNS</span>
171            <h3 class="card-title">Terraform + Cloudflare : mes DNS en Infrastructure as Code (et l&#x27;underscore qui m&#x27;a fait péter un câble)</h3>
172            <p class="card-excerpt">
172Gérer toute sa config DNS Cloudflare en Infrastructure as Code avec Terraform : mon retour d&#39;expérience concret, avec le piège du token qui rend fou.</p>
173            <div class="card-meta">4 min read · 2 juil. 2026</div>
174        </div>
175    </a>
176</article>
177                <article class="card">
178    <a class="card-link" href="/adieu-dyndns-gerer-vos-ip-dynamiques-avec-cloudflare-et-un-peu-de-script-magique/">
179        <div class="card-thumb">
180                <img src="/content/images/size/w800/2026/02/cloudflare-diagram.png" alt="Adieu DynDNS : Gérer vos IP dynamiques avec Cloudflare (et un peu de script magique)" loading="lazy" />
181        </div>
182        <div class="card-body">
183            <span class="card-tag">DNS</span>
184            <h3 class="card-title">Adieu DynDNS : Gérer vos IP dynamiques avec Cloudflare (et un peu de script magique)</h3>
185            <p class="card-excerpt">Bonjour, bande de hackers des internets !
186
187Aujourd’hui, je vais vous montrer comment mettre à jour automatiquement votre</p>
188            <div class="card-meta">2 min read · 20 août 2025</div>
189        </div>
190    </a>
191</article>
192                <article class="card">
193    <a class="card-link" href="/hashicorp-vault-enfin-une-video-claire-pedagogique-et-sexy-ou-presque/">
194        <div class="card-thumb">
195                <img src="/content/images/size/w800/2026/02/thumbnail_with_correct_stranix_logo.png" alt="HashiCorp Vault : enfin une vidéo claire, pédagogique et sexy (ou presque)" loading="lazy" />
196        </div>
197        <div class="card-body">
198            <span class="card-tag">News</span>
199            <h3 class="card-title">HashiCorp Vault : enfin une vidéo claire, pédagogique et sexy (ou presque)</h3>
200            <p class="card-excerpt">Bon, pour une fois, je vais faire un truc rare ici : ce contenu n’est pas de moi. Mais il est tellement bien fichu que j</p>
201            <div class="card-meta">2 min read · 27 mars 2025</div>
202        </div>
203    </a>
204</article>
205                <article class="card">
206    <a class="card-link" href="/sssd-ldap-active-directory-authentification-centralisee-sous-linux-sans-peter-un-cable/">
207        <div class="card-thumb">
208                <img src="/content/images/size/w800/2026/02/ldap--1-.jpg" alt="SSSD + LDAP/Active Directory : Authentification Centralisée sous Linux (Sans Péter un Câble)" loading="lazy" />
209        </div>
210        <div class="card-body">
211            <span class="card-tag">Linux</span>
212            <h3 class="card-title">SSSD + LDAP/Active Directory : Authentification Centralisée sous Linux (Sans Péter un Câble)</h3>
213            <p class="card-excerpt">Tu en as marre de jongler entre des comptes utilisateurs sur chaque machine Linux de ton infra ? LDAP + SSSD, c’est la s</p>
214            <div class="card-meta">3 min read · 17 mars 2025</div>
215        </div>
216    </a>
217</article>
218                <article class="card">
219    <a class="card-link" href="/openvpn-en-docker-securiser-ses-services-sans-exposer-son-infra/">
220        <div class="card-thumb">
221                <img src="/content/images/size/w800/2026/02/IMG_1431.jpg" alt="OpenVPN en Docker : Sécuriser ses services sans exposer son infra" loading="lazy" />
222        </div>
223        <div class="card-body">
224            <span class="card-tag">devops</span>
225            <h3 class="card-title">OpenVPN en Docker : Sécuriser ses services sans exposer son infra</h3>
226            <p class="card-excerpt">Aujourd’hui, on va parler VPN. Mais pas de ces VPN commerciaux qui promettent l’anonymat et la liberté numérique tout en</p>
227            <div class="card-meta">3 min read · 12 mars 2025</div>
228        </div>
229    </a>
230</article>
231        </div>
232        <nav class="pagination">
233    <span class="page-number">Page 1 of 1</span>
234</nav>
235
236    </div>
237</section>
238
239    </main>
240
241    <footer class="site-foot">
242        <div class="wrap">
243            <div class="foot-grid">
244                <div>
245                    <a class="brand" href="https://stranix.net">
246                        <img class="brand-logo" src="https://stranix.net/content/images/2026/02/stranix-avatar.png" alt="STRANIX.net" />
247                        <span class="brand-name">stranix<span class="dim">.net</span></span>
248                    </a>
249                    <p class="foot-tag">La tech de terrain, sans langue de bois. Linux, PostgreSQL, DevOps &amp; homelab.</p>
250                    <nav class="socials" aria-label="Réseaux">
251    <a href="https://x.com/stranix_79" target="_blank" rel="me noopener" aria-label="X (Twitter)">
252        <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24h-6.657l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231 5.45-6.231Zm-1.161 17.52h1.833L7.084 4.126H5.117L17.083 19.77Z"/></svg>
253    </a>
254    <a href="https://github.com/stranix79" target="_blank" rel="me noopener" aria-label="GitHub">
255        <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.605-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23A11.5 11.5 0 0 1 12 5.803c1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222 0 1.606-.014 2.898-.014 3.293 0 .322.216.694.825.576C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg>
256    </a>
257    <a href="https://www.linkedin.com/in/fauviegilles/" target="_blank" rel="me noopener" aria-label="LinkedIn">
258        <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286ZM5.337 7.433a2.062 2.062 0 0 1-2.063-2.065 2.064 2.064 0 1 1 2.063 2.065Zm1.782 13.019H3.555V9h3.564v11.452ZM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.225 0Z"/></svg>
259    </a>
260</nav>
261                </div>
262                <div>
263                    <h4>L'écosystème</h4>
264                    <a href="https://code79.com" target="_blank" rel="noopener"><b>code79.com</b> — l'atelier</a>
265                    <a href="https://dbfactory.io" target="_blank" rel="noopener"><b>dbfactory.io</b> — PostgreSQL managé</a>
266                    <a href="https://sygnet.app" target="_blank" rel="noopener"><b>sygnet.app</b> — sync de favoris</a>
267                </div>
268                <div>
269                    <h4>Explorer</h4>
270                    <a href="https://stranix.net">Tous les articles</a>
271                    <a href="https://stranix.nettags/">Catégories</a>
272                    <a href="https://stranix.net#/portal/signup" data-portal="signup">Newsletter</a>
273                </div>
274            </div>
275            <div class="foot-bottom">
276                <span class="hosted">Conçu, hébergé &amp; bichonné par <a href="https://code79.com" target="_blank" rel="noopener"><b>code79.com</b></a> — sans cloud US.</span>
277                <span>&copy; 2026 STRANIX.net</span>
278            </div>
279        </div>
280    </footer>
281
282    <div style="text-align:center; font-size:20px;">
283  <a href="https://instagram.com/stranix_79" target="_blank" style="margin:0 10px;">
284    <i class="fab fa-instagram"></i>
285  </a>
286  <a href="https://www.linkedin.com/company/stranix-net" target="_blank" style="margin:0 10px;">
287    <i class="fab fa-linkedin"></i>
288  </a>
289  <a href="https://github.com/stranix79" target="_blank" style="margin:0 10px;">
290    <i class="fab fa-github"></i>
291  </a>
292</div>
293    
293<script src="/assets/js/main.js?v=5cf00d3149"></script>
293
294
295    
295<script>
296      window.dataLayer = window.dataLayer || [];
297      function gtag() { dataLayer.push(arguments); }
298      gtag('consent', 'default', { ad_storage: 'denied', ad_user_data: 'denied', ad_personalization: 'denied', analytics_storage: 'denied', wait_for_update: 500 });
299      try { if (localStorage.getItem('sn-analytics') === 'granted') gtag('consent', 'update', { analytics_storage: 'granted' }); } catch (e) {}
300    </script>
vendor: 68 bytes, lines 300-301
300
301    <script async src="https://www.googletagmanager.com/gtag/js?id=
301G-VYSTEPJMS7
vendor: 16 bytes, lines 301-302
301"></script>
302    
302<script>
303      gtag('js', new Date());
304      gtag('config', 'G-VYSTEPJMS7', { anonymize_ip: true });
305    </script>
305
306    <div id="sn-bar" class="sn-bar" hidden role="dialog" aria-label="Préférences de mesure d'audience">
307      <p>On utilise Google Analytics pour comprendre l'audience du site. <a href="https://policies.google.com/privacy" target="_blank" rel="noopener">En savoir plus</a>.</p>
308      <div class="sn-actions">
309        <button type="button" id="sn-no" class="sn-btn sn-ghost">Refuser</button>
310        <button type="button" id="sn-yes" class="sn-btn sn-primary">Accepter</button>
311      </div>
312    </div>
313    <style>
314      .sn-bar { position: fixed; left: 1rem; right: 1rem; bottom: max(1rem, env(safe-area-inset-bottom)); max-width: 520px; margin-inline: auto; background: #1c1b16; border: 1px solid #33322a; border-radius: 12px; padding: 1rem 1.1rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem; z-index: 2147483000; pointer-events: auto; box-shadow: 0 18px 40px -20px rgba(0,0,0,.7); font-family: 'JetBrains Mono', ui-monospace, monospace; }
315      .sn-bar[hidden] { display: none !important; }
316      .sn-bar p { margin: 0; font-size: .8rem; color: #a39d8c; flex: 1 1 240px; line-height: 1.5; }
317      .sn-bar a { color: #f5842a; }
318      .sn-actions { display: flex; gap: .5rem; }
319      .sn-btn { font-family: inherit; font-size: .8rem; font-weight: 600; padding: .6rem 1rem; min-height: 44px; border-radius: 7px; cursor: pointer; pointer-events: auto; border: 1px solid #33322a; background: transparent; color: #ece7dc; }
320      .sn-ghost:hover { border-color: #f5842a; color: #f5842a; }
321      .sn-primary { background: #f5842a; color: #1a1206; border-color: #f5842a; }
322    </style>
323    
323<script>
324      (function () {
325        var bar = document.getElementById('sn-bar'); if (!bar) return;
326        var choice = null; try { choice = localStorage.getItem('sn-analytics'); } catch (e) {}
327        if (!choice) bar.hidden = false;
328        function set(v) { try { localStorage.setItem('sn-analytics', v); } catch (e) {} bar.hidden = true; if (v === 'granted' && typeof gtag === 'function') gtag('consent', 'update', { analytics_storage: 'granted' }); }
329        var yes = document.getElementById('sn-yes'); var no = document.getElementById('sn-no');
330        if (yes) yes.addEventListener('click', function () { set('granted'); });
331        if (no) no.addEventListener('click', function () { set('denied'); });
332      })();
333    </script>
333
334</body>
335</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.