diff --git a/content/slides/cri/ansible.html b/content/slides/cri/ansible.html
new file mode 100644
index 0000000000000000000000000000000000000000..81035b800d1739ae139442172dfaa545d4e8cad1
--- /dev/null
+++ b/content/slides/cri/ansible.html
@@ -0,0 +1,59 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
+
+    <title>ansible</title>
+
+    <link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css">
+    <link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/white.css">
+
+    <!-- Theme used for syntax highlighting of code -->
+    <link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css">
+    <link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css">
+    <link rel="stylesheet" href="../main.css">
+
+    <!-- Printing and PDF exports -->
+    <script>
+      var link = document.createElement( 'link' );
+      link.rel = 'stylesheet';
+      link.type = 'text/css';
+      link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css';
+      document.getElementsByTagName( 'head' )[0].appendChild( link );
+    </script>
+  </head>
+  <body>
+    <div class="reveal">
+      <div class="slides">
+        <section data-markdown="md/ansible.md"
+         data-separator="^\n\n\n"
+         data-separator-vertical="^\n\n"
+         data-separator-notes="^Note:"
+         data-charset="utf-8">
+       </section>
+      </div>
+    </div>
+
+    <script src="../../node_modules/reveal.js/lib/js/head.min.js"></script>
+    <script src="../../node_modules/reveal.js/js/reveal.js"></script>
+
+    <script>
+      // More info about config & dependencies:
+      // - https://github.com/hakimel/reveal.js#configuration
+      // - https://github.com/hakimel/reveal.js#dependencies
+      Reveal.initialize({
+        controls: true,
+        progress: true,
+        history: true,
+        center: false,
+        dependencies: [
+          { src: '../../node_modules/reveal.js/plugin/markdown/marked.js' },
+          { src: '../../node_modules/reveal.js/plugin/markdown/markdown.js' },
+          { src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true },
+          { src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
+        ]
+      });
+    </script>
+  </body>
+</html>
diff --git a/content/slides/cri/aws.html b/content/slides/cri/aws.html
new file mode 100644
index 0000000000000000000000000000000000000000..ca0127532a8f96868057425aff08ba0ccb82b89c
--- /dev/null
+++ b/content/slides/cri/aws.html
@@ -0,0 +1,59 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
+
+    <title>aws</title>
+
+    <link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css">
+    <link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/white.css">
+
+    <!-- Theme used for syntax highlighting of code -->
+    <link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css">
+    <link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css">
+    <link rel="stylesheet" href="../main.css">
+
+    <!-- Printing and PDF exports -->
+    <script>
+      var link = document.createElement( 'link' );
+      link.rel = 'stylesheet';
+      link.type = 'text/css';
+      link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css';
+      document.getElementsByTagName( 'head' )[0].appendChild( link );
+    </script>
+  </head>
+  <body>
+    <div class="reveal">
+      <div class="slides">
+        <section data-markdown="md/aws.md"
+         data-separator="^\n\n\n"
+         data-separator-vertical="^\n\n"
+         data-separator-notes="^Note:"
+         data-charset="utf-8">
+       </section>
+      </div>
+    </div>
+
+    <script src="../../node_modules/reveal.js/lib/js/head.min.js"></script>
+    <script src="../../node_modules/reveal.js/js/reveal.js"></script>
+
+    <script>
+      // More info about config & dependencies:
+      // - https://github.com/hakimel/reveal.js#configuration
+      // - https://github.com/hakimel/reveal.js#dependencies
+      Reveal.initialize({
+        controls: true,
+        progress: true,
+        history: true,
+        center: false,
+        dependencies: [
+          { src: '../../node_modules/reveal.js/plugin/markdown/marked.js' },
+          { src: '../../node_modules/reveal.js/plugin/markdown/markdown.js' },
+          { src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true },
+          { src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
+        ]
+      });
+    </script>
+  </body>
+</html>
diff --git a/content/slides/cri/images/ansible.png b/content/slides/cri/images/ansible.png
new file mode 100644
index 0000000000000000000000000000000000000000..7eaf8576436fab41350860435650d195a908293a
Binary files /dev/null and b/content/slides/cri/images/ansible.png differ
diff --git a/content/slides/cri/images/aws.png b/content/slides/cri/images/aws.png
new file mode 100644
index 0000000000000000000000000000000000000000..75a597cec11d80e741a87f4e068c7491837fdfab
Binary files /dev/null and b/content/slides/cri/images/aws.png differ
diff --git a/content/slides/cri/images/terraform.png b/content/slides/cri/images/terraform.png
new file mode 100644
index 0000000000000000000000000000000000000000..9fe7c5b869d7940a78f405e30e38d980e6ae69cc
Binary files /dev/null and b/content/slides/cri/images/terraform.png differ
diff --git a/content/slides/cri/images/vault.png b/content/slides/cri/images/vault.png
new file mode 100644
index 0000000000000000000000000000000000000000..007f594268113918babeae75c23e2cf51d0fe660
Binary files /dev/null and b/content/slides/cri/images/vault.png differ
diff --git a/content/slides/cri/md/ansible.md b/content/slides/cri/md/ansible.md
new file mode 100644
index 0000000000000000000000000000000000000000..41c051cea0027bc7ccf3a86e5228f0fe487dc43c
--- /dev/null
+++ b/content/slides/cri/md/ansible.md
@@ -0,0 +1,41 @@
+# ansible
+
+![ansible](images/ansible.png "ansible")<!-- .element width="30%" -->
+
+
+* task
+  * register
+  * debug
+  * loop
+  * set_fact
+  * pre_task
+* roles
+
+* playbook
+  * ligne de commande
+  * --check --diff
+  * verbosité
+  * tags
+* variable (see debug task)
+  * hierarchie
+  * from env ou Vault
+  * acces dynamique
+  * ansible-vault : utiliser vault
+* plugin
+  * callback
+  * filter
+  * lookup
+* modules ansible utile
+  * pexpect
+* remote roles
+
+
+### Récupérer les roles nécessaires
+
+* mettre à jour `requirements.yml` avec les rôles nécessaires
+
+* récupérer les rôles
+
+```
+ansible-galaxy install -f -r requirements.yml -p ansible/roles/public
+```
diff --git a/content/slides/cri/md/aws.md b/content/slides/cri/md/aws.md
new file mode 100644
index 0000000000000000000000000000000000000000..58bb94000fccec6f3e496772c10462b8b6468e10
--- /dev/null
+++ b/content/slides/cri/md/aws.md
@@ -0,0 +1,5 @@
+# aws
+
+![aws](images/aws.png "aws")<!-- .element width="30%" -->
+
+aka **AW**esome **S**tack
diff --git a/content/slides/cri/md/terraform.md b/content/slides/cri/md/terraform.md
new file mode 100644
index 0000000000000000000000000000000000000000..c36396af1717a31c14f8994e5afc66dfd0dcc624
--- /dev/null
+++ b/content/slides/cri/md/terraform.md
@@ -0,0 +1,3 @@
+# terraform
+
+![terraform](images/terraform.png "terraform")<!-- .element width="30%" -->
diff --git a/content/slides/cri/md/vault.md b/content/slides/cri/md/vault.md
new file mode 100644
index 0000000000000000000000000000000000000000..04bb22af5911afc8858084880e479e5f5bb414c4
--- /dev/null
+++ b/content/slides/cri/md/vault.md
@@ -0,0 +1,65 @@
+# vault
+**By HashiCorp**
+
+![vault](images/vault.png "vault")<!-- .element width="30%" -->
+
+[https://vault.isima.fr](https://vault.isima.fr)
+
+
+# Secrets
+
+Il existe deux étages deux secrets dans la stack
+
+* les **secrets locaux**: sont gérés par la commande `ansible-vault` et peuvent être lus simplement avec la commande `avq` de la stack (accessible une fois l'environnement activé). Les **secrets locaux** sont chiffrés en local, mais le fait qu'ils ne soient pas versionnés rend ce chiffrement non indispensable.
+
+* les **secrets globaux**: sont gérés par la commande `vault` de HashiCorp et peuvent être lus simplement avec la commande `hvq` de la stack (accessible une fois l'environnement activé). les secrets sont disponibles selon les permissions du jeton utilisés. les **secrets globaux** sont utilisés pour construire les **secrets locaux**
+
+## Générer un secret
+
+Un secret robuste en ligne de commande se génère avec la commande `openssl` comme suit
+
+```
+$ openssl rand -base64 256
+```
+
+écrire le secret dans un fichier
+
+```
+$ openssl rand -base64 256 > ~/.ansible_secrets/stack
+```
+
+Stocker le secret directement dans hashicorp vault
+
+```
+$ openssl rand -base64 256 @TODO
+```
+
+## Vault
+
+```
+vault login -method=ldap username=vimazeno # vault login token=<token>
+vault kv put cri/clusters/ovh/duncan/proxmoxapi password=itsasecret
+vault read cri/clusters/ovh/duncan/proxmoxapi
+vault read cri/clusters/ovh/duncan/proxmoxapi -format=json
+vault read cri/clusters/ovh/duncan/proxmoxapi -format=json | jq .data
+vault read cri/clusters/ovh/duncan/proxmoxapi -format=json | jq .data.password
+vault delete cri/clusters/ovh/duncan/proxmoxapi
+```
+
+l'authentification ldap créée un fichier dans ~/.vault-token contenant votre token utilisateur avec vos permissions associées
+
+```
+vault kv patch cri/clusters/ovh/duncan/proxmoxapi password="$(openssl rand -base64 25)"
+```
+
+**N.B.** patch met à jour l'entrée avec KV2 et écrase les autres avec KV1 (on a activé KV2)
+
+##  Stocker un secret
+
+Ce secret devrait être stocké dans https://vault.isima.fr
+
+Avec la commande `vault` [@TODO vault install] dans le path adéquat.
+
+Interroger la structure du vault avec la command `vault-tree` avant de choisir le path du secret semble une bonne idée [vault-tree]().
+
+Ces consignes sont valables pour tous le secrets de ce tutoriel
diff --git a/content/slides/cri/terraform.html b/content/slides/cri/terraform.html
new file mode 100644
index 0000000000000000000000000000000000000000..f57a5f49197e2d71a94c55fb8958e8a852a10585
--- /dev/null
+++ b/content/slides/cri/terraform.html
@@ -0,0 +1,59 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
+
+    <title>terraform</title>
+
+    <link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css">
+    <link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/white.css">
+
+    <!-- Theme used for syntax highlighting of code -->
+    <link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css">
+    <link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css">
+    <link rel="stylesheet" href="../main.css">
+
+    <!-- Printing and PDF exports -->
+    <script>
+      var link = document.createElement( 'link' );
+      link.rel = 'stylesheet';
+      link.type = 'text/css';
+      link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css';
+      document.getElementsByTagName( 'head' )[0].appendChild( link );
+    </script>
+  </head>
+  <body>
+    <div class="reveal">
+      <div class="slides">
+        <section data-markdown="md/terraform.md"
+         data-separator="^\n\n\n"
+         data-separator-vertical="^\n\n"
+         data-separator-notes="^Note:"
+         data-charset="utf-8">
+       </section>
+      </div>
+    </div>
+
+    <script src="../../node_modules/reveal.js/lib/js/head.min.js"></script>
+    <script src="../../node_modules/reveal.js/js/reveal.js"></script>
+
+    <script>
+      // More info about config & dependencies:
+      // - https://github.com/hakimel/reveal.js#configuration
+      // - https://github.com/hakimel/reveal.js#dependencies
+      Reveal.initialize({
+        controls: true,
+        progress: true,
+        history: true,
+        center: false,
+        dependencies: [
+          { src: '../../node_modules/reveal.js/plugin/markdown/marked.js' },
+          { src: '../../node_modules/reveal.js/plugin/markdown/markdown.js' },
+          { src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true },
+          { src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
+        ]
+      });
+    </script>
+  </body>
+</html>
diff --git a/content/slides/cri/vault.html b/content/slides/cri/vault.html
new file mode 100644
index 0000000000000000000000000000000000000000..15fa86ec86e349a6b2116afa94b24b507a2c9221
--- /dev/null
+++ b/content/slides/cri/vault.html
@@ -0,0 +1,59 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
+
+    <title>vault</title>
+
+    <link rel="stylesheet" href="../../node_modules/reveal.js/css/reveal.css">
+    <link rel="stylesheet" href="../../node_modules/reveal.js/css/theme/white.css">
+
+    <!-- Theme used for syntax highlighting of code -->
+    <link rel="stylesheet" href="../../node_modules/reveal.js/lib/css/zenburn.css">
+    <link rel="stylesheet" href="../../node_modules/font-awesome/css/font-awesome.min.css">
+    <link rel="stylesheet" href="../main.css">
+
+    <!-- Printing and PDF exports -->
+    <script>
+      var link = document.createElement( 'link' );
+      link.rel = 'stylesheet';
+      link.type = 'text/css';
+      link.href = window.location.search.match( /print-pdf/gi ) ? '../../node_modules/reveal.js/css/print/pdf.css' : '../../node_modules/reveal.js/css/print/paper.css';
+      document.getElementsByTagName( 'head' )[0].appendChild( link );
+    </script>
+  </head>
+  <body>
+    <div class="reveal">
+      <div class="slides">
+        <section data-markdown="md/vault.md"
+         data-separator="^\n\n\n"
+         data-separator-vertical="^\n\n"
+         data-separator-notes="^Note:"
+         data-charset="utf-8">
+       </section>
+      </div>
+    </div>
+
+    <script src="../../node_modules/reveal.js/lib/js/head.min.js"></script>
+    <script src="../../node_modules/reveal.js/js/reveal.js"></script>
+
+    <script>
+      // More info about config & dependencies:
+      // - https://github.com/hakimel/reveal.js#configuration
+      // - https://github.com/hakimel/reveal.js#dependencies
+      Reveal.initialize({
+        controls: true,
+        progress: true,
+        history: true,
+        center: false,
+        dependencies: [
+          { src: '../../node_modules/reveal.js/plugin/markdown/marked.js' },
+          { src: '../../node_modules/reveal.js/plugin/markdown/markdown.js' },
+          { src: '../../node_modules/reveal.js/plugin/notes/notes.js', async: true },
+          { src: '../../node_modules/reveal.js/plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } }
+        ]
+      });
+    </script>
+  </body>
+</html>
diff --git a/content/slides/index.html b/content/slides/index.html
index cc57c29b06c9dc44a45e8c3aa1c02a600ce26ac3..058d0bd4e2d78481a89e628bf614b038ff06f524 100644
--- a/content/slides/index.html
+++ b/content/slides/index.html
@@ -67,6 +67,10 @@
 <h3>cri</h3>
 
 <li><a href="cri/criprod.html">criprod</a></li>
+<li><a href="cri/vault.html">vault</a></li>
+<li><a href="cri/ansible.html">ansible</a></li>
+<li><a href="cri/terraform.html">terraform</a></li>
+<li><a href="cri/aws.html">aws</a></li>
 
 <h3>privacy</h3>