name: inverse layout: true class: center, middle, inverse --- # Meetup AFUP Montpellier : ## Automatisation ### Séverine Wiltgen ### 12 juin 2017 --- # Meetup AFUP Montpellier : ## Utilisation d'Ansible pour le déploiement d'une application sous Symfony --- template: inverse # Qui suis-je ? --- layout: true class: center, middle, sev --- # Séverine Wiltgen ## Admin Sys Linux dans le domaine du web depuis plus de 10 ans ### https://www.versionops.fr  --- layout: false .left-column[ ## Besoin Admin Système ] .right-column[ ## Gestion d'un parc de serveurs - savoir ce qui a été installé et comment - connaître état de la machine ] --- .left-column[ ## Besoin Admin Système # Avant ] .right-column[ ## Gestion d'un parc de serveurs - savoir ce qui a été installé et comment :
history
- connaître état de la machine :
ps, netstat
] --- .left-column[ ## Besoin Admin Système # Auj ] .right-column[ ## Gestion d'un parc de serveurs - savoir ce qui a été installé et comment :
Configuration de l'outil d'installation et de déploiement de configuration dans le dépot git
- connaître état de la machine :
Conforme à ce qui a été défini dans l'outil et éventuellement tableau de bord
] --- layout: true class: center middle --- # Automatisation : -- ## Outil d'installation de serveurs et des gestion des configurations -- .larger[+] ## un système de contrôle de version --- # Outils d'installation de serveurs et de gestion de configuration .larger[ cfengine puppet, chef ansible, saltstack ] --- template: inverse # Ansible --- layout: false # Ansible ## Outil d'automatisation de l'IT -- .large[ - python - langage yaml - templating jinja ] -- .large[ - simple connexion ssh (pas d'agents, rien à installer sur les serveurs) ] -- .large[ - maintenu par RH : core modules - communauté : extra modules et hub : ansible-galaxy https://galaxy.ansible.com/explore#/ ] --- # Ansible : Installation ### Installation sur le poste de travail .large[ ```bash apt-get install ansible ``` ] ### Configuration .large[ ```bash /etc/ansible/ansible.cfg /etc/ansible/hosts meetup.admin-sys.fr ansible_user=root [webservers] web1.example.org web[004:006].example.org 192.168.1.100 ``` ] --- # Ansible : Modules .large[ Actions que l'on va lancer sur le serveur -m pour modules ```bash ansible meetup.admin-sys.fr -m ping ansible meetup.admin-sys.fr -m apt -a "update_cache=yes upgrade=dist" ``` ] http://docs.ansible.com/ansible/list_of_all_modules.html -- ### Les facts : .large[ Ensemble de variables positionnées par ansible que l'on va pouvoir récupérer et utiliser dans les playbooks ```bash ansible meetup.admin-sys.fr -m setup ``` ] --- # Ansible : Playbooks http://docs.ansible.com/ansible/playbooks.html .large[ Suite d'actions ou de rôles que l'on va lancer les uns après les autres ] -- .large[ ```bash ansible-playbook mon_playbook.yml ``` ```python --- - hosts: meetup.admin-sys.fr tasks: - name: Run apt-get update / apt-get dist-upgrade apt: update_cache: yes upgrade: dist ``` ] --- # Ansible : Rôles .large[ Regroupement d'actions de même nature. Organisation des rôles : ```bash ansible-galaxy init nom_rôle ``` crée l'arborescence : - tasks : liste des tâches lancées - handlers : actions référencées par un notify dans tasks - templates : templates de fichiers en jinja .j2 - files : fichiers à copier tel quel - vars : variables à récupérer - meta : informations sur le rôle - defaults : variables par défaut ] --- template: inverse # Automatisation de déploiement d'applications --- # LA mise en production -- ## quand ? https://www.estcequonmetenprodaujourdhui.info/ -- ## Comment on rollback ? -- ## Ah, au fait, on a besoin d'une nouvelle dépendance -- ## Et si on automatisait avec un outil ? --- # Les outils de déploiement d'app .larger[ -
FTP
- Script maison - Git - Capistrano /
Capifony
- Ansible ] --- # Pourquoi Ansible ? ### Infra déjà gérée par ansible (connaissance commune) -- ### Adapatation aux besoins (simple playbook maison ou ansistrano) -- ### Tout le monde peut lancer la mep (gestion des droits inchangée) -- ### Possibilité de manipulation d'admin système en même temps .large[ installation de modules supplémentaires, vider les différents caches, évolution de configuration logiciels, sortir un web du LB ] --- template: inverse # Démo --- template: inverse # Questions ? --- template: inverse # Merci ! --- layout: false class: center, middle, sev # Séverine Wiltgen ### swiltgen@gmail.com ### https://github.com/severinew ### https://www.versionops.fr 