owned this note
owned this note
Published
Linked with GitHub
---
title: Ansible@EPFL
tags: Talk
description: Ansible usage @EPFL, ansible suitcase
slideOptions:
transition: convex
theme: black
spotlight:
enabled: false
progress: true
---
<!--
This style apply by default to all slides, unless .slide is used.
Note the use of the reveal class selector: this mean that only the presentation is affected by this style, and the makrdown preview or the book mode of hackmd.io is style intact.
If you want/need a resizable background image, add the background-size: cover; property and change background-position: 0px 0px;
-->
<style>
.reveal {
background-color: #eaeaea;
background-image: url('https://epfl-si.github.io/elements/svg/epfl-logo.svg');
background-repeat: no-repeat;
background-position: 5px 5px;
}
.reveal {
color: #1c1c1c;
}
.reveal h1, .reveal h2, .reveal h3,
.reveal h4, .reveal h5, .reveal h6 {
color: #eee;
text-shadow: 2px 2px #ff0000;
}
.reveal a {
color: #f009;
}
.reveal a:hover {
color: #f00;
}
.reveal code {
padding-top: 0.2em;
padding-bottom: 0.2em;
margin: 0;
font-size: 85%;
background-color: rgba(255, 255, 255, 0.46);
border-radius: 3px;
}
.reveal blockquote { width: 100% }
.reveal blockquote:before {
display: block;
padding-left: 10px;
content: "\201C";
font-size: 150px;
position: absolute;
left: -20px;
top: -20px;
color: #7a7a7a;
}
.reveal cite:before { content: "\2009 \2015 \2009"; }
.reveal cite { font-size: 80%; }
section {
padding: 1.5em 15px;
}
section[data-contrast="on-"] {
background-color: #ffffff20;
}
section[data-contrast="on"] {
background-color: #ffffff50;
}
section[data-contrast="on+"] {
background-color: #ffffff99;
}
</style>
<!-- .slide: data-background="https://i.imgur.com/PX8DBlM.png" data-contrast="on" -->
<!-- image source: https://unsplash.com/photos/i54owgDjXeY -->
# Ansible@EPFL
https://go.epfl.ch/prez-ansible
<small>D. Quatravaux & N. Borboën<br/> — ISAS-FSD — <br/>août 2022</small>
---
<!-- .slide: data-background="https://i.imgur.com/0WYV5mq.png" data-contrast="on" -->
<!-- image source: https://unsplash.com/photos/Lu9z9qS8I_Q -->
## Pourquoi est-on là
Pour parler d'Ansible et plus<br>particuliérement de la [suitcase](https://github.com/epfl-si/ansible.suitcase).<br><img src="https://i.imgur.com/5xsMM1a.png" width="20%" />
Note: à la demande de Patrice ? Et parce qu'une des missions de ISAS-FSD est la transmission de savoir et de bonnes pratiques au sein de l'EPFL.
---
<!-- .slide: data-background="https://i.imgur.com/eM0mpZd.png" -->
<!-- image source: https://unsplash.com/photos/i54owgDjXeY -->
## Ansible ?
#### Ansible is Simple IT Automation
https://www.ansible.com
----
<!-- .slide: data-background="https://i.imgur.com/3DA8l74.jpg" data-contrast="on+" -->
<!-- image source: https://unsplash.com/photos/cBHt4js8nVQ -->
## Ansible ?
> Ansible is an open source community project sponsored by Red Hat, it's the simplest way to automate IT. Ansible is the only automation language that can be used across entire IT teams from systems and network administrators to developers and managers.
Note: Ansible est une plate-forme logicielle libre pour la configuration et la gestion des ordinateurs. Elle combine le déploiement de logiciels multi-nœuds, l'exécution des tâches ad-hoc, et la gestion de configuration. Elle gère les différents nœuds à travers SSH et ne nécessite l'installation d'aucun logiciel supplémentaire sur ceux-ci. (https://fr.wikipedia.org/wiki/Ansible_(logiciel))
----
<!-- .slide: data-background="https://i.imgur.com/GR5Mmlw.png" data-contrast="on+" -->
<!-- image source: https://unsplash.com/photos/HMCNkAK45r0 -->
## Ansible ?
* Date de 2012, écrit par Michael DeHaan principalement en Python, sponsorisé par Red Hat.
* Open Source (GPL-v3, https://github.com/ansible/ansible) avec 54.2k ⭐ et 22.2k 🍴.
* Read the full Ansible story [ansible.com/blog/the-origins-of-ansible](https://www.ansible.com/blog/2013/12/08/the-origins-of-ansible)
----
<!-- .slide: data-background="https://i.imgur.com/F1WsrAl.jpg" data-contrast="on+" -->
<!-- image source: https://unsplash.com/photos/cy8fjF0thec -->
## Alternatives
* Puppet (https://puppet.com/)
* Chef (https://www.chef.io/)
* Fabric (https://www.fabfile.org/)
* Salt, Rudder, Cfengine, Rdist, ...
---
<!-- .slide: data-background="https://i.imgur.com/yKuJPTI.png" data-contrast="on+" -->
<!-- image source: https://unsplash.com/photos/JeW3uhQiN-E -->
## Pourquoi l'avoir choisi ?
* Courbe d'apprentissage
* Flexiblilité
* Communauté
* Écosystème de modules
* Gestion des secrets ([keybase](https://keybase.io) / [eyaml](https://github.com/voxpupuli/hiera-eyaml) / [vault](https://docs.ansible.com/ansible/latest/user_guide/vault.html))
* Camptocamp
---
<!-- .slide: data-background="https://i.imgur.com/1ASI5Pq.jpg" data-contrast="on" -->
<!-- image source: https://unsplash.com/photos/plXwYoFOVV4 -->
## Terminologie
* Inventaires
* Tâches / modules
* Tags
* Playbooks
* Rôles
* Galaxy
https://docs.ansible.com
----
<!-- .slide: data-background="https://i.imgur.com/RpqMYoQ.png" data-contrast="on+" -->
<!-- image source: https://unsplash.com/photos/YkwjyOxjpwE -->
## Couleurs
* 🟢 VERT → «Ce que tu m'as demandé de faire, c'était déjà fait»
* 🟡 JAUNE → «Ce que tu m'as demandé de faire, c'est fait»
* 🔴 ROUGE → «Ce que tu m'as demandé de faire, je n'y suis pas arrivé»
* 🔵 BLEU → «Ce n'était pas à faire»
----
<!-- .slide: data-background="https://i.imgur.com/rp3tqXF.jpg" data-contrast="on+" -->
<!-- image source: https://unsplash.com/photos/RBL8GtPIAQE -->
## Idempotence
En mathématiques et en informatique, l'idempotence signifie qu'une opération a le même effet qu'on l'applique une ou plusieurs fois.
---
<!-- .slide: data-background="https://i.imgur.com/ET1hrm4.jpg" data-contrast="on+" -->
<!-- image source: https://unsplash.com/photos/tFBjYVy9CwQ -->
## Sum up
* cohérence, idempotence, confiance et satisfaction
* automatisation (configuration as code)
* documentation (as code)
* AWX (https://github.com/ansible/awx)
----
## DevOps's magic ?
<!-- .slide: data-background="" -->
<img src="https://c.tenor.com/7gUwUBvlgqAAAAAC/red-button-spam.gif" width="45%"/> <img src="https://c.tenor.com/wn2_Qq6flogAAAAC/magical-magic.gif" width="40%"/>
Note: no more CHANGES ? :p
---
<!-- .slide: data-background="https://i.imgur.com/G1uiayb.png" data-contrast="on+" -->
<!-- image source: https://unsplash.com/photos/f659AfcgpH4 -->
## Et la suitcase ?

----
<!-- .slide: data-background="https://i.imgur.com/Ad3K1vl.png" data-contrast="on" -->
<!-- image source: https://unsplash.com/photos/lQ1nICyM4cA -->
## Au menu
C'est un wrapper Ansible (écrit en bash) qui permet d'installer toutes les dépendances au sein du projet, par défaut dans le dossier<br>`ansible-deps-cache`.
----
<!-- .slide: data-background="https://i.imgur.com/hqXt5On.jpg" data-contrast="on+" -->
<!-- image source: https://unsplash.com/photos/hH3c0Z8SNTc -->
## Depuis 2020 !
Créée en avril 2020 afin de s'éviter les problèmes de compatibilité (Ansible, Python, Modules, eyaml, etc.).
Note: pourquoi pas avec un container Docker ?
----
<!-- .slide: data-background="https://i.imgur.com/6dTEdg9.jpg" data-contrast="on+" -->
<!-- image source: https://unsplash.com/photos/H_j74Zsl5Og -->
## Entrées, plats et desserts...
Windows, Mac et Linux !
----
<!-- .slide: data-background="https://i.imgur.com/MPDEIc8.jpg" data-contrast="on+" -->
<!-- image source: https://unsplash.com/photos/-7ZtWjzo-68 -->
## Qui font l'unanimité
* Plus de 25 projets l'utilisent !
* Homogénéité des dépendances entre les utilisateurs
* Ne duplique pas ce qui existe déjà (par exemple Python)
* Améliore l'expérience utilisateur (foolproof)
---
<!-- .slide: data-background="https://i.imgur.com/QrGgC2C.png" data-contrast="on" -->
<!-- image source: https://unsplash.com/photos/jLlfN3GMLLM -->
## Crédits photos
[octopus@unsplash.com](https://unsplash.com/s/photos/octopus)
---
<!-- .slide: data-background="https://i.imgur.com/ApyUNxf.jpg" data-contrast="on" -->
<!-- image source: https://unsplash.com/photos/N6BTNbaKZMo -->
## Workshop
<img src="https://c.tenor.com/tKYbGz3wNCAAAAAi/catscafe-penguin.gif" width="40%"/>