Un peu de sel dans votre infra

410e3353165c33043ab69be7fc366428?s=47 Boris Feld
October 16, 2014

Un peu de sel dans votre infra

Présentation de SaltStack à Paris.Py 5ème édition

410e3353165c33043ab69be7fc366428?s=128

Boris Feld

October 16, 2014
Tweet

Transcript

  1. Un peu de sel dans votre infra Boris FELD -

    Paris.py 16 octobre 2014
  2. Toute ressemblance avec des personnes ou des situations existantes ou

    ayant existé ne saurait être que préméditée.
  3. Software Configuration Management

  4. Des besoins… • Comment configurer facilement, rapidement et efficacement :

    • De plus en plus de machines • Des stacks de plus en plus compliqués • Des infrastructures toujours plus hétérogènes
  5. Des problèmes… • Tu as bien installé les dépendances à

    jour ? • Pourquoi il y a une machine en 32 bits et une autre en 64 bits ? • Y’a un problème sur la prod, tu as l’ancienne config du nginx ? • Y’a un problème sur quelques machines, tu pourrais vérifier la version de libxml sur les 200 serveurs ? • Y’a une nouvelle faille zero-day tu peux patcher rapidement ?
  6. None
  7. Une solution

  8. SaltStack • Serveur RPC de nouvelle génération. • Outil de

    gestion de configuration de nouvelle génération. • En python. • Populaire, maintenu et avec une communauté active. • Support multi-os.
  9. Du RPC ?

  10. Remember ? 23:59 <Big Boss> Y’a une nouvelle faille zero-day

    tu peux patcher rapidement ?
  11. HeartBleed 23:59 <Big_Boss> Y’a une nouvelle faille zero-day tu peux

    patcher rapidement ? $> salt '*' pkg.install openssl refresh=True 00:00 <SuperOps> Done, bonne nuit.
  12. ShellShock 23:59 <Big_Boss> Y’a une nouvelle faille zero-day tu peux

    patcher rapidement ? $> salt '*' pkg.install bash refresh=True 00:00 <SuperOps> Done, bonne nuit.
  13. Check 15:28 <noob_dev> Y’a un problème depuis le dernier déploiement,

    tu pourrais vérifier la version de libxml sur les 200 serveurs ?
  14. Check 15:28 <noob_dev> Y’a un problème depuis le dernier déploiement,

    tu pourrais vérifier la version de libxml sur les 200 serveurs ?
  15. Check 15:28 <noob_dev> Y’a un problème depuis le dernier déploiement,

    tu pourrais vérifier la version de libxml sur les 200 serveurs ? $> salt '*' pkg.version libxml 15:29 <SuperOps> C’est pas la même version, faut préciser les dépendances bande de noobs.
  16. Et la gestion de conf ?

  17. Configuration Management • Déclaratif plutôt qu’impératif • En YAML •

    Avec du templating Jinja 2
  18. Configuration management nginx: pkg: - installed service.running: - enabled: True

    - require: - pkg: nginx - watch: - file: nginx_config ! nginx_config: file.managed: - name: /etc/nginx/nginx.conf - source: salt://nginx/nginx.conf - template: jinja
  19. Python powered

  20. Python power ! • Outil entièrement écrit en Python. •

    56437 lignes de python. • Code simple d’accès. • Facile d’écrire des modules et states custom. • Et de contribuer…
  21. Communauté

  22. Module builtin def chgrp(path, group): ''' Change the group of

    a file ! path path to the file or directory ! group group owner ''' path = os.path.expanduser(path) ! user = get_user(path) return chown(path, user, group)
  23. Custom module def get_sentry_dsn(project_name):! with open(__pillar__['sentry']['dsn_file_path']) as key_file:! keys =

    json.load(key_file)! ! return keys[project_name]!
  24. None
  25. More ? Salt-Cloud Power web1: provider: ec2 image: ami-7e2da54e size:

    m3.medium minion: roles: [web] ! web2: provider: ec2 image: ami-7e2da54e size: m3.medium minion: cheese: [web] ! db1: provider: ec2 image: ami-7e2da54e size: m3.xlarge minion: cheese: [db, redis]
  26. None