Introduction à Ansible, ses parts de marché, ses partenaires, ses utilisations dans la configuration de postes et le développement devops automatisé.
Présentation en français, libre d'utilisation, cible grand public.
3. Qu’est-ce que le projet Ansible?
Questions sur StackOverflow
Ansible est une plate-forme logicielle libre
pour la configuration et la gestion de plateformes linux et windows.
Conçu en 2012 par Michael DeHaan, créateur de Clobber
Clobber : serveur de provisionning opensource
Succès en 2015, rachat par RedHat
4. Qu’est-ce que le projet Ansible?
Ansible a séduit la communauté OpenSource
+20 000 projets utilisant ansible
9e projet python le plus populaire
+10 000 scripts ansible
Et les professionnels
Amazon web services
Google cloud platform
Microsoft Azure
OpenShit by RedHat
Cisco Systems
Airbus
Repositories suivis sur GitHub
Popularité sur Debian
5. Aspects Techniques
Utiliser Ansible demande:
Accès SSH
Librairie python 2.6
Pas d’agent, rien à maintenir
Windows: PowerShell remoting
Connexion
Utilisateur, accès, droits
Commandes
Copie de fichiers
Installation de paquets apt-get, rpm, yum
Librairies pythons pour +1300 commandes
6. Aspects Techniques
Scripts en YAML
Lisible, facile à modifier
Vocabulaire
Playbook : Ensemble d’actions
Rôle :Liste d’actions
Liste d’hôtes
Variables
7. Aspects Techniques
Scripts en YAML
Lisible, facile à modifier
Vocabulaire
Playbook : Ensemble d’actions
Rôle :Liste d’actions
Liste d’hôtes
Variables
Un Exemple :
Installer un logiciel
Définir une configuration
Play [Playbook01] *****************************
8. Aspects Techniques
Scripts en YAML
Lisible, facile à modifier
Vocabulaire
Playbook : Ensemble d’actions
Rôle :Liste d’actions
Liste d’hôtes
Variables
Un Exemple :
Installer un logiciel
Définir une configuration
Play [Playbook01] *****************************
Gathering Facts ********************************
Ok: [MachineA.Domain]
Ok: [MachineB.Domain]
Première
connexion
9. Aspects Techniques
Scripts en YAML
Lisible, facile à modifier
Vocabulaire
Playbook : Ensemble d’actions
Rôle :Liste d’actions
Liste d’hôtes
Variables
Un Exemple :
Installer un logiciel
Définir une configuration
Play [Playbook01] *****************************
Gathering Facts ********************************
Ok: [MachineA.Domain]
Ok: [MachineB.Domain]
Task: [Installer logiciel] **********************
Ok: [MachineA.Domain]
Changed: [MachineB.Domain]
Première
connexion
Installation
Sauf si déjà présente
10. Aspects Techniques
Scripts en YAML
Lisible, facile à modifier
Vocabulaire
Playbook : Ensemble d’actions
Rôle :Liste d’actions
Liste d’hôtes
Variables
Un Exemple :
Installer un logiciel
Définir une configuration
Play [Playbook01] *****************************
Gathering Facts ********************************
Ok: [MachineA.Domain]
Ok: [MachineB.Domain]
Task: [Installer logiciel] **********************
Ok: [MachineA.Domain]
Changed: [MachineB.Domain]
Task: [Copier configuration] *****************
Ok: [MachineA.Domain]
Changed: [MachineB.Domain]
Première
connexion
Installation
Sauf si déjà présente
Copie de configuration
Sauf si même version
11. Aspects Techniques
Scripts en YAML
Lisible, facile à modifier
Vocabulaire
Playbook : Ensemble d’actions
Rôle :Liste d’actions
Liste d’hôtes
Variables
Un Exemple :
Installer un logiciel
Définir une configuration
Play [Playbook01] *****************************
Gathering Facts ********************************
Ok: [MachineA.Domain]
Ok: [MachineB.Domain]
Task: [Installer logiciel] **********************
Ok: [MachineA.Domain]
Changed: [MachineB.Domain]
Task: [Copier configuration] *****************
Ok: [MachineA.Domain]
Changed: [MachineB.Domain]
Notified: [Redemarrer logiciel] *************
Changed: [MachineB.Domain]
Première
connexion
Installation
Sauf si déjà présente
Copie de configuration
Sauf si même version
Redémarrage application
Seulement si nouvelle config
12. Aspects Techniques
Scripts en YAML
Lisible, facile à modifier
Vocabulaire
Playbook : Ensemble d’actions
Rôle :Liste d’actions
Liste d’hôtes
Variables
Un Exemple :
Installer un logiciel
Définir une configuration
Play [Playbook01] *****************************
Gathering Facts ********************************
Ok: [MachineA.Domain]
Ok: [MachineB.Domain]
Task: [Installer logiciel] **********************
Ok: [MachineA.Domain]
Changed: [MachineB.Domain]
Task: [Copier configuration] *****************
Ok: [MachineA.Domain]
Changed: [MachineB.Domain]
Notified: [Redemarrer logiciel] *************
Changed: [MachineB.Domain]
Play Recap **************************************
[MachineA.Domain]: Ok=3 Changed=0
[MachineB.Domain]: Ok=1 Changed=2
Première
connexion
Installation
Sauf si déjà présente
Copie de configuration
Sauf si même version
Redémarrage application
Seulement si nouvelle config
Résultats
13. Applications
Problème:
6 serveurs complètement différents
Géré manuellement
Besoin d’une migration
Public Privé
Test
Prod
Val
19. La communauté
19
Ansible sur github
Projets pour et par la communauté
Des projets utilisant Ansible
Des projets contribuant à Ansible
Repositories suivis sur GitHub
20. La communauté
20
Ansible Galaxy
Bibliothèque de Playbook générés par la communauté
+10 000 projets prêt à l’emploi
Gérer MongoDB, Mysql, Redis avec Ansible
Playbook Selenium de l’exemple devops
21. La communauté
21
21
Red Hat
Propriétaires depuis 2015
Support technique
Interface graphique Ansible Tower
22. “Ansible is Simple IT Automation”
Provisionnement ✓
Gestion de configuration ✓
Déploiement d’application ✓
Déploiement continue ✓
Gestion de la sécurité ✓
Orchestration ✓