diff --git a/content/slides/cri/images/cri.jpeg b/content/slides/cri/images/cri.jpeg
new file mode 100644
index 0000000000000000000000000000000000000000..0751e205bc62a9faf161d131f484358a1877804a
Binary files /dev/null and b/content/slides/cri/images/cri.jpeg differ
diff --git a/content/slides/cri/images/devops-toolchain.png b/content/slides/cri/images/devops-toolchain.png
new file mode 100644
index 0000000000000000000000000000000000000000..50cf752e4aaa3f9961181dc1c75ee8f5e2f227b3
Binary files /dev/null and b/content/slides/cri/images/devops-toolchain.png differ
diff --git a/content/slides/cri/images/devops-tools.png b/content/slides/cri/images/devops-tools.png
new file mode 100644
index 0000000000000000000000000000000000000000..66183012626a680e51121cc06e180edfa1546f1a
Binary files /dev/null and b/content/slides/cri/images/devops-tools.png differ
diff --git a/content/slides/cri/md/ansible.md b/content/slides/cri/md/ansible.md
index e04114c08ab7a219878d0d38b79033941d2292da..e551af2ea92628fb659231f5c27039ba4e2313d9 100644
--- a/content/slides/cri/md/ansible.md
+++ b/content/slides/cri/md/ansible.md
@@ -22,23 +22,28 @@
 * héritage
 * réutilisabilité
 * parallélisation
+* automatisation
+
+#### toute intervention manuelle sur un système est une faute ...
+
+## ... GRAVE!
 
 
 ## ansible
 
 * écrit en python
   * python 2 par défaut
-  * marche bien en python 3
+  * marche bien en python 3 <3
     * virtualenv
 
-* [ansible docs](https://docs.ansible.com/)
+* [<i class="fa fa-book" aria-hidden="true"></i> ansible](https://docs.ansible.com/)
 
 
 ## ansible
 
 * prérequis
   * sur la machine pilote (mgmt node)
-    * ansible
+    * ansible (donc python)
   * sur le(s) noeud(s)
     * une connextion ssh ou PowerShell
     * python
@@ -51,36 +56,53 @@
 
 ## terminologie
 
-* **mgmt node** (machine pilote) machine surlaquelle ansible est installé et responsable de la configuration de toutes les machines gérées.
-* **inventory** (inventaire) fichier contenant les ip de tous les serveurs à configurer
-* **playbook** gère la configuration à déployer sur chaque serveur
-* **task** fichier où sont définies les actions réalisées par le playbook
+* **mgmt node** (machine pilote)
+  * machine sur laquelle ansible est installé
+  * pilote la configuration de toutes les machines de l'inventaire
+* **inventory** (inventaire)
+  * fichier contenant les ip ou les noms de domaine de toutes les machines à configurer
+* **playbook**
+  * gère la configuration à déployer sur chaque machine
+* **task**
+  * fichier où sont définies les actions réalisées par le playbook
 
 
 ## terminologie
 
-* **module** actions plus ou moins complexe utilisables à partir des **tasks**. ansible possède de [nombreux modules natifs](https://docs.ansible.com/ansible/latest/modules/modules_by_category.html). Il est possible d'écrire ses propres modules.
-* **role** permet d'organiser les playbooks en parties claires et réutilisables
+* **module**
+  * actions plus ou moins complexes, utilisables à partir des **tasks**
+  * ansible possède de nombreux [<i class="fa fa-book" aria-hidden="true"></i> modules natifs](https://docs.ansible.com/ansible/latest/modules/modules_by_category.html)
+  * il est possible d'écrire ses propres modules.
+* **role**
+  * permet d'organiser les playbooks en parties claires et réutilisables
 
 
 ## terminologie
 
-* **play** est l'exécution d'un playbook sur un serveur
-* **facts** information collectée par ansible sur le système du serveur à configurer
-* **handlers** similaire aux **tasks** mais appelable à partir d'une **task** (redémarrage de service par exemple)
+* **play**
+  * est l'exécution d'un playbook sur une machine
+* **facts**
+  * information collectée par ansible sur le système d'une machine à configurer
+* **handlers**
+  * similaire aux **tasks** mais appelable à partir d'une **task**
+    * redémarrage de service par exemple
 
 
 ## inventory
 
 * fichier texte au format *ini*
 * organiser par groupes
-* [inventory docs](https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html)
+* fixer des configurations
+  * pour tous / par groupe / par machine
+* déclarer des variables
+  * pour tous / par groupe / par machine
+* [<i class="fa fa-book" aria-hidden="true"></i> inventory](https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html)
 
 ```ini
-[ovh]
-duncan
-ispconfig-duncan
-gitlab-runner-duncan
+[criprod]
+pvecriprod2.isima.fr
+py.criprod.isima.fr
+gitlab-runner1.criprod.isima.fr
 
 [all:vars]
 environment                = production
@@ -94,106 +116,311 @@ ansible_user               = limosadm
 * utilisez ~/.ssh/config
 
 ```
-Host duncan
+Host pvecriprod2.isima.fr
   User limosadm
   IdentityFile ~/.ssh/keys/limosadm
-  Hostname duncan.isima.fr
 
-Host ispconfig-duncan
+Host py.criprod.isima.fr
   User limosadm
-  Hostname 10.10.100.2
   IdentityFile ~/.ssh/keys/limosadm
-  ProxyCommand ssh duncan -W %h:%p
+  ProxyCommand ssh pvecriprod2.isima.fr -W %h:%p
 ```
 
 
-## ansible / ad-hoc command
+## ad-hoc command
 
 ```
 $ ansible all --inventory-file=inventory.ini --module-name ping
-$ ansible ovh -a "/usr/bin/uptime"
 
-duncan | CHANGED | rc=0 >>
- 18:15:42 up 16 days, 43 min,  1 user,  load average: 0,10, 0,10, 0,03
+pvecriprod2.isima.fr | SUCCESS => {
+    "changed": false,
+    "ping": "pong"
+}
+py.criprod.isima.fr | SUCCESS => {
+    "changed": false,
+    "ping": "pong"
+}
+gitlab-runner1.criprod.isima.fr | SUCCESS => {
+    "changed": false,
+    "ping": "pong"
+}
+```
+```
+$ ansible criprod -a "/usr/bin/uptime"
 
-gitlab-runner-duncan | CHANGED | rc=0 >>
- 18:15:45 up 15 days,  1:00,  1 user,  load average: 0.06, 0.03, 0.01
+pvecriprod2.isima.fr | CHANGED | rc=0 >>
+ 16:18:08 up 41 days, 23:11,  3 users,  load average: 0.63, 0.18, 0.10
 
-ispconfig-duncan | CHANGED | rc=0 >>
- 18:15:48 up 15 days,  1:00,  1 user,  load average: 0.02, 0.02, 0.00
+py.criprod.isima.fr | CHANGED | rc=0 >>
+ 15:18:15 up 1 day, 21:51,  1 user,  load average: 0.13, 0.03, 0.01
+
+gitlab-runner1.criprod.isima.fr | CHANGED | rc=0 >>
+ 15:18:15 up 1 day, 22:14,  1 user,  load average: 0.00, 0.00, 0.00
 ```
 
 
-## ansible / ad-hoc command
+## ad-hoc command
+
+* [<i class="fa fa-book" aria-hidden="true"></i> ad-hoc command](https://docs.ansible.com/ansible/latest/user_guide/intro_adhoc.html)
+  * [Parallelism and Shell Commands](https://docs.ansible.com/ansible/latest/user_guide/intro_adhoc.html#parallelism-and-shell-commands)
+  * [File Transfer](https://docs.ansible.com/ansible/latest/user_guide/intro_adhoc.html#file-transfer)
+  * [Managing Packages](https://docs.ansible.com/ansible/latest/user_guide/intro_adhoc.html#managing-packages)
+  * [Users and Groups](https://docs.ansible.com/ansible/latest/user_guide/intro_adhoc.html#users-and-groups)
+  * [Deploying From Source Control](https://docs.ansible.com/ansible/latest/user_guide/intro_adhoc.html#deploying-from-source-control)
+  * [Managing Services](https://docs.ansible.com/ansible/latest/user_guide/intro_adhoc.html#managing-services)
+  * [Time Limited Background Operations](https://docs.ansible.com/ansible/latest/user_guide/intro_adhoc.html#time-limited-background-operations)
+  * [Gathering Facts](https://docs.ansible.com/ansible/latest/user_guide/intro_adhoc.html#gathering-facts)
+
+
+## playbook
+
+[<i class="fa fa-book" aria-hidden="true"></i> playbooks](https://docs.ansible.com/ansible/latest/user_guide/playbooks.html)
+
+my-playbook.yml
+
+```yaml
+- name: my-playbook # ce que vous voulez
+  hosts: criprod # ou all
+                 # ou n'importe quel nom de machine
+                 # ou n'importe quel nom de groupe
+  remote_user: limosadm # prioritaire sur ansible_user de l'inventaire
+
+  roles:
 
-* [docs ad-hoc command](https://docs.ansible.com/ansible/latest/user_guide/intro_adhoc.html)
-  * shell
-  * packages
-  * users / groups
-  * déploiement (git)
-  * services
+    - role: debug # le rôle debug sera exécuté par le playbook
+      tags: debug # le tag debug sera ajouté à toutes les tâches du role debug
+      my-variable: "pipo" # il ya d'autres endroit où mettre les variables
+                          # à suivre ...
+    - role: vault-cli # le rôle vault-cli sera exécuté par le playbook
+      tags: vault # le tag vault sera ajouté à toutes les tâches du role vault-cli
+
+```
 
 
 ## playbook
 
+```shell
+$ ansible-playbook my-playbook.yml
 ```
-ansible-playbook ansible/playbooks/ovh/duncan.yml
+
+exécute le playbook sur toutes les machines de l'inventaire
+
+```shell
+$ ansible-playbook my-playbook.yml --check --diff
 ```
 
-* `--check` simule les tâches à effectuer sans les effectuer (dry-run)
-* `--diff` indique ce qui change
-* `-v`, `-vv`, `-vvv`, `-vvvv` pour la verbosité
-* `--list-tags` liste tous les tags disponibles dans le playbook
-* `--tags debug` n'exécute que les tâches du playbook ayant un tag `debug`
-* `--skip-tags` exécute toutes les tâches du playbook sauf celles ayant un  tag `debug`
-* `always` tag spécial exécuté à tous les coups
+`--check`
 
-[docs playbooks](https://docs.ansible.com/ansible/latest/user_guide/playbooks.html)
+simule les tâches à effectuer sans les effectuer (dry-run)
 
+`--diff`
 
-## variable
+indique ce qui change
 
-* pas de `-` pas de `.` pas de nuémrique pure dans les noms de variables
-* via la ligne de commande
-* dans les rôles
-  * default
-* dans l'inventaire
-* `group_vars`, `host_vars`
-* extra vars (gagne toujours à la précédence)
-* [héritage des variables](https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable)
+```shell
+$ ansible-playbook my-playbook.yml -vvv
+```
 
+`-v`, `-vv`, `-vvv`, `-vvvv`
 
-## variable & secret
+pour la verbosité
+
+
+## playbook
+
+```shell
+$ ansible-playbook my-playbook.yml --list-tags
+```
+
+liste tous les tags disponibles dans le playbook
+
+```shell
+$ ansible-playbook my-playbook.yml --tags debug
+```
+
+n'exécute que les tâches du playbook ayant un tag `debug`
+
+```shell
+$ ansible-playbook my-playbook.yml --skip-tags debug
+```
+
+exécute toutes les tâches du playbook sauf celles ayant un  tag `debug`
+
+```shell
+$ ansible-playbook my-playbook.yml --limit=py.isima.fr
+```
+
+exécute toutes les tâches du playbook sur py.isima.fr uniquement
+
+
+## variables
+
+* nommage
+  * pas de `-` pas de `.`
+  * pas de numérique pure
+
+* affectation
+  * [<i class="fa fa-book" aria-hidden="true"></i>  inventaire](https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#defining-variables-in-inventory)
+    * [<i class="fa fa-book" aria-hidden="true"></i> `group_vars`, `host_vars`, ou `inventaire.ini`](https://docs.ansible.com/ansible/latest/user_guide/intro_inventory.html#hosts-and-groups)
+  * [<i class="fa fa-book" aria-hidden="true"></i> playbook](https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#defining-variables-in-a-playbook)
+  * role
+    * [<i class="fa fa-book" aria-hidden="true"></i> `default`](https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html#role-default-variables)
+  * [<i class="fa fa-book" aria-hidden="true"></i> ligne de commande](https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#passing-variables-on-the-command-line)
+
+#### [précédence des variables](https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable)
+
+
+## jinja
+
+[<i class="fa fa-book" aria-hidden="true"></i> templating](https://docs.ansible.com/ansible-container/container_yml/template.html)
+
+group_vars/all.yml
+
+```yaml
+my-role: my-awesome-role
+```
+
+playbook.yml
+
+```yaml
+roles:
+
+  - role: "{{ my-role }}"
+```
+
+utilisable partout (playbook, role, tasks, template)
+
+
+## filters
 
-* from env ou Vault
-* acces dynamique
-* `ansible-vault` nous on utilise vault by HashiCorp
+[<i class="fa fa-book" aria-hidden="true"></i> filters](https://docs.ansible.com/ansible/latest/user_guide/playbooks_filters.html)
+
+```yaml
+"{{ item.path[:4] | replace('/', '-') }}"
+```
+
+* renvoie un path
+  * sans les 4 derniers caractères
+  * avec les `/` remplacés par des `-`
+
+
+## lookup
+
+[<i class="fa fa-book" aria-hidden="true"></i> lookup](https://docs.ansible.com/ansible/latest/plugins/lookup.html)
+
+```yaml
+vars:
+  file_contents: "{{lookup('file', 'path/to/file.txt')}}"
+```
+
+[<i class="fa fa-book" aria-hidden="true"></i> lookup list](https://docs.ansible.com/ansible/latest/plugins/lookup.html#plugin-list)
+
+[<i class="fa fa-book" aria-hidden="true"></i> callback](https://docs.ansible.com/ansible/latest/plugins/callback.html)
 
 
 ## variable & secret
 
-* [var_prompts](https://docs.ansible.com/ansible/latest/user_guide/playbooks_prompts.html)
-  * ceux là devraient être dans un keepass
-    * gitlab
-    * vault
+```yaml
+- debug:
+  msg: "{{ lookup('env','PVE_NODE') }}"
+```
+
+lit une valeur à partir d'une variable d'environement
+
+```yaml
+- debug:
+  msg: "{{ lookup('hashi_vault', 'secret=secret/hi:value token=xxx url=http://myvault')}}"
+```
+
+lit une valeur à partir Vault (<strike>`ansible-vault`</strike>)
+
+```yaml
+vars_prompt:
+  - name: "name"
+    prompt: "what is your name?"
+```
+
+les [<i class="fa fa-book" aria-hidden="true"></i> var_prompts](https://docs.ansible.com/ansible/latest/user_guide/playbooks_prompts.html)
+permettent de lire les variables à partir de l'entrée standard.
+
+
+## task
+
+[<i class="fa fa-book" aria-hidden="true"></i> debug](https://docs.ansible.com/ansible/latest/modules/debug_module.html)
+
+```yaml
+- debug:
+    msg: "System {{ inventory_hostname }} has uuid {{ ansible_product_uuid }}"
+```
+
+* [<i class="fa fa-book" aria-hidden="true"></i> raw](https://docs.ansible.com/ansible/latest/modules/raw_module.html)
+  * n'utilise que ssh et pas python
+    * permet d'installer python
+* [<i class="fa fa-book" aria-hidden="true"></i> command](https://docs.ansible.com/ansible/latest/modules/command_module.html#command-module)
+* [<i class="fa fa-book" aria-hidden="true"></i> shell](https://docs.ansible.com/ansible/latest/modules/shell_module.html)
+  * comme **command** mais au travers d'un shell
+
+```yaml
+- shell: somescript.sh >> somelog.txt
+  args:
+    chdir: somedir/
+    creates: somelog.txt
+```
+
 
+## task
 
-## task / basic
+[<i class="fa fa-book" aria-hidden="true"></i> register](https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#registering-variables)
 
-* [debug](https://docs.ansible.com/ansible/latest/modules/debug_module.html)
-* [raw](https://docs.ansible.com/ansible/latest/modules/raw_module.html)
-* [command](https://docs.ansible.com/ansible/latest/modules/command_module.html#command-module)
-* [shell](https://docs.ansible.com/ansible/latest/modules/shell_module.html)
+```yaml
+shell: /usr/bin/foo
+register: foo_result
+ignore_errors: True
+```
+[<i class="fa fa-gitlab" aria-hidden="true"></i> register dans une liste](https://gitlab.isima.fr/cri/ansible-playbook-vault/blob/master/tasks/initialize.yml#L17)
+
+[<i class="fa fa-book" aria-hidden="true"></i> loop](https://docs.ansible.com/ansible/latest/user_guide/playbooks_loops.html)
+
+```yaml
+- user:
+    name: "{{ item }}"
+    state: present
+  loop:
+     - testuser1
+     - testuser2
+```
+
+* marche avec
+  * n'importe quelle variable itérable    
+  * [fileglob](https://docs.ansible.com/ansible/latest/plugins/lookup/fileglob.html) - list files matching a pattern
+  * [filetree](https://docs.ansible.com/ansible/latest/plugins/lookup/filetree.html) - recursively match all files in a directory tree
+  * ...
+
+
+## task
+
+[<i class="fa fa-book" aria-hidden="true"></i> when](https://docs.ansible.com/ansible/latest/user_guide/playbooks_conditionals.html)
+
+[<i class="fa fa-book" aria-hidden="true"></i> conditions](https://docs.ansible.com/ansible/latest/user_guide/playbooks_tests.html)
+
+```yaml
+- shell: echo "only on Red Hat 6, derivatives, and later"
+  when: ansible_facts['os_family'] == "RedHat" and ansible_facts['lsb']['major_release']|int >= 6
+```
+
+[<i class="fa fa-book" aria-hidden="true"></i> set_fact](https://docs.ansible.com/ansible/latest/modules/set_fact_module.html)
+
+pre_task
 
+[<i class="fa fa-gitlab" aria-hidden="true"></i> exemple permettant de réorganiser les variables](https://gitlab.isima.fr/cri/stack/blob/master/ansible/pre-tasks/set-pve-vars.yml)
 
-## task / basic
 
-* register
-* loop
-* set_fact
-* pre_task
-* when
-* tags
+## tags
+
+* `always`
+  * tag spécial exécuté à tous les coups
+* tags au niveau tâches
+* tags au niveau roles
 
 
 ## modules
@@ -201,7 +428,7 @@ ansible-playbook ansible/playbooks/ovh/duncan.yml
 * file
 * infile
 * copy
-* template
+* [<i class="fa fa-book" aria-hidden="true"></i> template](https://docs.ansible.com/ansible/latest/modules/template_module.html)
 * package
 * stat
 * get_url
@@ -209,18 +436,18 @@ ansible-playbook ansible/playbooks/ovh/duncan.yml
 * user
 * systemd
 * pip
-* pexpect (require pexcpect)
-
+* pexpect (require pexpect)
 
-* https://docs.ansible.com/ansible/latest/modules/template_module.html
 
 ## roles
 
+* [<i class="fa fa-github" aria-hidden="true"></i> bau-sec/ansible-openvpn-hardened](https://github.com/bau-sec/ansible-openvpn-hardened)
 
-## remote roles
 
+## ansible.cfg
 
-### Récupérer les roles nécessaires
+
+## remote roles
 
 * mettre à jour `requirements.yml` avec les rôles nécessaires
 
@@ -236,20 +463,15 @@ ansible-galaxy install -f -r requirements.yml
 en affectant le path dans le fichier requirements.yml au niveau du role distant
 
 
-## plugins
-
-* callback
-* filter
-* lookup
-* module_utils
-
-
 ## skeleton
 
-* https://github.com/mrjk/ansible-skel
-
 ```
 ansible-galaxy init --role-skeleton /path/to/stack/ansible/roles/skeletons/role-with-vagrant gitlab
 ```
+* [<i class="fa fa-github" aria-hidden="true"></i> mrjk/ansible-skel](https://github.com/mrjk/ansible-skel)
 
-## ansible.cfg
+
+## extend
+
+* https://docs.ansible.com/ansible/latest/dev_guide/developing_plugins.html
+* https://docs.ansible.com/ansible/latest/dev_guide/developing_modules.html
diff --git a/content/slides/cri/md/devops.md b/content/slides/cri/md/devops.md
index ba5ded712d1c91b2ca071a187c3e4f9d2135a87a..e6b8d6056da660280c08fa2399037b456fe275f8 100644
--- a/content/slides/cri/md/devops.md
+++ b/content/slides/cri/md/devops.md
@@ -1,7 +1,50 @@
 # DevOps
 
-https://en.wikipedia.org/wiki/DevOps
+![DevOps](images/devops-toolchain.png "DevOps")
 
-https://12factor.net/
 
-https://twitter.com/waxzce
+## Pourquoi?
+
+* unifier
+   * développement logiciel (dev)
+   * administration des infrastructures (ops)
+* automatiser (automation)
+* suivre (monitoring)
+* tester: automatiquement
+* accélérer: cycle courts à prioriser
+* déployer: automatiquement & souvent!
+
+
+## De nombreux outils
+
+![DevOps tools](images/devops-tools.png "DevOps tools")
+
+
+## contexte ISIMA / LIMOS
+
+![team cri](images/cri.jpeg "team cri")
+
+* ambiance tendue entre dev et ops !
+* on cherche à
+  * autonomiser les dev et les users en général
+  * automatiser la gestion de nos services
+
+
+## les outils du dialogue
+
+* [vagrant](vagrant.html)
+* [ansible](ansible.html)
+* [vault](vault.html)
+* [proxmox](pve.html)
+* [terraform](terraform.html)
+* [stack](stack.html)
+* [gitlab](gitlab.html)
+
+
+## See also
+
+* [<i class="fa fa-wikipedia"></i> DevOps](https://en.wikipedia.org/wiki/DevOps)
+
+* [12 factor](https://12factor.net/)
+
+* [@waxzce](https://twitter.com/waxzce)
diff --git a/content/slides/cri/md/vagrant.md b/content/slides/cri/md/vagrant.md
index 5a5f96b26eadd1472746a540df906d13e12ce446..b92b9d590c243e9cf1feb7ee19d0a5c01959e950 100644
--- a/content/slides/cri/md/vagrant.md
+++ b/content/slides/cri/md/vagrant.md
@@ -19,7 +19,7 @@
 
 ## vagrant
 
-* Il peut être considéré comme un wrapper d'hyperviseur
+* il peut être considéré comme un wrapper d'hyperviseur
   * VirtualBox
   * libvirt
   * VMware
@@ -70,12 +70,12 @@ Vagrant.configure("2") do |config|
 end
 ```
 
-Beaucoup de commentaires ... laisser vous guider
+beaucoup de commentaires ... laisser vous guider
 
 
 ## Box
 
-* Machines virtuelles préconfigurées (templates)
+* machines virtuelles préconfigurées (templates)
 * [vagrant cloud](https://app.vagrantup.com/boxes/search)
 * [vagrantbox.es](https://www.vagrantbox.es/)
 * mis en cache
@@ -240,7 +240,7 @@ end
 
 ## conclusion
 
-**laissez un petit Vagrantfile dans vos playbooks [ansible](ansible.html) est toujours une bonne idée!**
+**laissez un `Vagrantfile` dans vos roles [ansible](ansible.html) est toujours une bonne idée!**
 
 * [<i class="fa fa-gitlab"></i> cri/ansible-playbook-vault](https://gitlab.isima.fr/cri/ansible-playbook-vault)
 
diff --git a/content/slides/cri/md/vault.md b/content/slides/cri/md/vault.md
index 8e7f0d3608506e9d3669a1f80bf13975cffe1316..9279e9e4bdfd234986e20b8dbf4c1f4e52eb5da5 100644
--- a/content/slides/cri/md/vault.md
+++ b/content/slides/cri/md/vault.md
@@ -167,6 +167,7 @@ Stocker le secret directement dans hashicorp vault
 $ vault kv put cri/tokens root=$(openssl rand -base64 25)
 ```
 
+
 ## SEE ALSO
 
 * [cri/ansible-playbook-vault](https://gitlab.isima.fr/cri/ansible-playbook-vault)
diff --git a/content/slides/index.html b/content/slides/index.html
index 75af1ca2e3e88c674ed2ef17c0254806dbce42f9..fd58101462a0909c8b602163c974cd0f8c189d55 100644
--- a/content/slides/index.html
+++ b/content/slides/index.html
@@ -1,5 +1,26 @@
-<h3>1337</h3>
+<h3>privacy</h3>
+<ul>
+  <li>
+    <a href="privacy/jnarac.html">je n'ai rien &agrave; cacher</a>
+    <ul>
+      <li><a href="1337/http.html">http</a></li>
+      <li><a href="privacy/sovereignty.html">souverainet&eacute;</a></li>
+      <li><a href="privacy/tracking.html">tracking</a></li>
+      <li><a href="privacy/passwords.html">mots de passes</a></li>
+      <li><a href="privacy/tor.html">tor</a></li>
+      <li><a href="privacy/tails.html">tails</a></li>
+      <li><a href="privacy/crypto.html">crypto</a></li>
+      <li><a href="privacy/pgp.html">pgp</a></li>
+      <li><a href="privacy/tls.html">tls</a> / <a href="privacy/tls.html#/0/52">https</a></li>
+      <li><a href="privacy/TLSvsPGP.html">tls vs PGP</a></li>
+      <li><a href="privacy/bitcoin.html">bitcoin</a></li>
+    </ul>
+  </li>
+  <li><a href="privacy/surfer_couvert.html">surfer couvert (en bref)</a></li>
+</ul>
 
+
+<h3>1337</h3>
 <ul>
   <li>
     Architecture
@@ -65,35 +86,16 @@
 </ul>
 
 <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/vagrant.html">vagrant</a></li>
-<li><a href="cri/aws.html">aws</a></li>
-
-<h3>privacy</h3>
-
 <ul>
-
-  <li>
-    <a href="privacy/jnarac.html">je n'ai rien &agrave; cacher</a>
-    <ul>
-      <li><a href="1337/http.html">http</a></li>
-      <li><a href="privacy/sovereignty.html">souverainet&eacute;</a></li>
-      <li><a href="privacy/tracking.html">tracking</a></li>
-      <li><a href="privacy/passwords.html">mots de passes</a></li>
-      <li><a href="privacy/tor.html">tor</a></li>
-      <li><a href="privacy/tails.html">tails</a></li>
-      <li><a href="privacy/crypto.html">crypto</a></li>
-      <li><a href="privacy/pgp.html">pgp</a></li>
-      <li><a href="privacy/tls.html">tls</a> / <a href="privacy/tls.html#/0/52">https</a></li>
-      <li><a href="privacy/TLSvsPGP.html">tls vs PGP</a></li>
-      <li><a href="privacy/bitcoin.html">bitcoin</a></li>
-    </ul>
-  </li>
-
-  <li><a href="privacy/surfer_couvert.html">surfer couvert (en bref)</a></li>
-
+  <li><a href="cri/devops.html">devops</a></li>
+  <li><a href="cri/vagrant.html">vagrant</a></li>
+  <li><a href="cri/ansible.html">ansible</a></li>
+  <li><a href="cri/vault.html">vault</a></li>
+  <li><a href="cri/pve.html">pve</a></li>
+  <li><a href="cri/terraform.html">terraform</a></li>
+  <li><a href="cri/stack.html">stack</a></li>
+  <li><a href="cri/gitlab.html">gitlab</a></li>
+  <li><a href="cri/my.html">my</a></li>
+  <li><a href="cri/openstack.html">openstack</a></li>
+  <li><a href="cri/criprod.html">criprod</a></li>
 </ul>