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

Transcript

  1. 4.
  2. 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 ?
  3. 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
  4. 17.
  5. 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
  6. 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
  7. 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
  8. 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
  9. 30.

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

    super_longue_commande --avec --plein="d'{{options}}" - shell: >- super_longue_commande --avec --plein="d'{{ options }}"
  10. 31.
  11. 32.
  12. 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