Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Ansible Meetup Paris #11

Ansible Meetup Paris #11

Ansible dans les livres c'est formidable, et si vous avez l'occasion de suivre tous les best practices sur une archi vierge, bonheur à vous.

Mais parfois les choses deviennent sales, complexes, urgentes, inattendues. Venez écouter l'écho des tranchées et apprécier Ansible comme compagnon de tous les jours, celui qui vous sortira de plus d'une galère, sans jamais faillir.

Nous verrons notamment outils et méthodes pour gérer la qualité dans l'urgence, Ansible comme langage de script de premier plan, les pièges à éviter pour une installation d'Ansible sur un serveur de production et mes trucs pour marier Ansible, AWS, Packer et Terraform.

4cf671f39b4ebb65f98ee41842ad71fe?s=128

Aurélien Maury

November 02, 2016
Tweet

More Decks by Aurélien Maury

Other Decks in Technology

Transcript

  1. Ansible depuis les tranchées Meetup - 2016-11-02

  2. Vanité 2

  3. Théâtre d'opérations

  4. Welcome 4 Merci de: Ranger Automatiser Rendre fiable Rendre maintenable

    NB : - respecter les process - pour hier !!!
  5. Courage 5

  6. Au boulot 6

  7. Quand tout à coup... 7

  8. Réaction level 1 8

  9. Réaction level 42 9

  10. Avoir un plan

  11. Serveur inconnu 11

  12. Serveur inconnu 12 • Python présent ? • Quelle version

    ? • Quelles modules sont disponibles ? • Quels sont mes droits ? • Quelles méthodes de sudo ? • Les binaires dont dépendent les modules Ansible ? • A quoi ai-je droit ? • Qui suis-je, et surtout qui êtes-vous ?
  13. Stratégie 13

  14. Role seed 14 https://github.com/aurelienmaury/ansible-role-seed ansible-galaxy install aurelienmaury.seed

  15. Role seed - Usage 15 • Connaissez chaque version de

    système en place • Automatisez le minimum nécessaire pour rendre un serveur manageable • Modules autorisés : • script • raw
  16. Visite guidée 16

  17. DIY 17

  18. Etre rapide

  19. Starter kit 19 https://github.com/WeScale/ansible-starterkit

  20. Starter kit - Usage 20 starterkit clone op-savetheprod push op-savetheprod

    git remote add origin newrepo git push -u origin master git clone [...] git remote remove origin
  21. ansible.cfg 21 • roles_path • inventory • ssh_args • gathering

    • fact_caching
  22. host inventory 22 • Définir le périmètre de l'intervention •

    Fixer les options de connexion • Inventaires séparés pour les serveurs de prod • Ne JAMAIS brancher un inventaire avec des serveurs de prod en automatique via ansible.cfg
  23. Guess what ? No. 23

  24. Préserver l'essentiel 24 apt-mark hold package_name && \ aptitude hold

    package_name yum -y install yum-plugin-versionlock yum versionlock package-name-here
  25. Normer le vital 25 • Cache de package à jour

    • Configuration NTP • Configuration SSHD • Configuration sudoers • Configuration DNS Resolver • Configuration / Génération des locales • Packages de base pour diagnostic : • htop, lsof, netcat, iperf, iotop, tmux, screen, ... https://github.com/aurelienmaury/ansible-role-debian-base
  26. Jouer en équipe

  27. Aucune action manuelle 27

  28. Idempotence 28

  29. Use the YAML, Luke 29 >- |- > |

  30. Use the YAML, Luke 30 --- - tasks: - shell:

    super_longue_commande --avec --plein="d'{{options}}" - shell: >- super_longue_commande --avec --plein="d'{{ options }}"
  31. Pair 31

  32. Reminder

  33. Scripting 33 --- - hosts: localhost gather_facts: no become: no

  34. Bootstrap 34 YML HOSTS CFG

  35. Pseudo-code 35 deploy.yml terraform apply blockinfile ssh.cfg present blockinfile ansible.cfg

    present undeploy.yml terraform destroy -f blockinfile ssh.cfg absent blockinfile ansible.cfg absent
  36. Questions ? 36

  37. Merci à tous ! @aurelienmaury @yeswescale