PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou docker avant la mise...

20
Utiliser Salt pour tester son infrastructure sur OpenStack ou Docker avant la mise en production

Transcript of PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou docker avant la mise...

Page 1: PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou docker avant la mise en production

Utiliser Salt pour testerson infrastructure surOpenStack ou Docker

avant la mise enproduction

Page 2: PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou docker avant la mise en production

IntroductionPyConFR 2015Arthur Lutz (Logilab) Ocotbre 2015

@arthurlutz

Page 3: PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou docker avant la mise en production

Vue d'ensembleIntroduction à SaltPiloter du cloud avec salt-cloudInitialiser des conteneurs Docker à partir de configurationsSaltArticulation entre Docker et un outil de gestion configurationet orchestration

Page 4: PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou docker avant la mise en production

Administrer plusieursmachines

me@laptop:~$ ssh root@server1root@server1:~# cp /etc/config.conf /etc/config.conf.bakroot@server1:~# vim /etc/config.confroot@server1:~# service critical-daemon restartme@laptop:~$ ssh root@server2root@server2:~# cp /etc/config.conf /etc/config.conf.bakroot@server2:~# vim /etc/config.confroot@server2:~# service critical-daemon restartme@laptop:~$ ssh root@server3[...]

Page 5: PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou docker avant la mise en production

Avec Salt.root@salt:~# vim /srv/salt/service/config.confroot@salt:~# salt 'server*' state.highstate test=Trueroot@salt:~# salt 'server*' state.highstateroot@salt:~# hg commit

Page 6: PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou docker avant la mise en production
Page 7: PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou docker avant la mise en production

Avec Saltsalt '*' pkg.refresh_dbsalt '*' pkg.list_upgradessalt '*' pkg.upgrade_available

Page 8: PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou docker avant la mise en production

Pitch de SaltFast, scalable and flexible software for data

center automation, from infrastructure and anycloud, to the entire application stack.

Logiciel rapide, adaptable, qui monte en charge et flexible pourl'automatisation des data centers, depuis l'infrastructure

matérielle ou n'importe quel cloud, jusqu'à l'ensemble de la pileapplicative.

Page 9: PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou docker avant la mise en production

Salt - c'est quoi ?exécution distante asynchronegestion de configuration centraliséedéploiement d'infrastructure à la demandegestion de machines virtuellessupervision et monitoringgestion de cluster HPC (High Performance Computing)une boîte à outils pour la gestion d'infrastructure !

Page 10: PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou docker avant la mise en production

Salt - pourquoi cechoix?

Gestion de configuration centralisé - mais pas seulement!Framework recent (première version en mars 2011)Logiciel librePythonZMQ pour la communicationbien packagé pour Debiancommunité très activetrès flexible et extensible

Page 11: PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou docker avant la mise en production

Execution à distanceavec salt

root@master:~# salt '*' pkg.install vimroot@master:~# salt '*' pkg.install libssl1.0.0 refresh=Trueroot@master:~# salt '*' cmd.run 'checkrestart'root@master:~# salt '*' service.restart sshdroot@master:~# salt '*' service.restart apache2

Page 12: PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou docker avant la mise en production

Exemple de déclarationmake sure ntp is running: pkg.installed: - name: ntp service.running: - name: ntpd - watch: - file: /etc/ntp.conf

deploy ntp configuration: file.managed: - name: /etc/ntp.conf - source: salt://ntp/ntp.conf - require: - pkg: ntp

Page 13: PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou docker avant la mise en production
Page 14: PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou docker avant la mise en production

Piloter du cloud avecsalt-cloud

L'outil salt-cloud permet de piloter un certain nombre deplateformes de cloud (avec ) pour créér/détruire des

machines à la demande tout en les branchant sur salt.libcloud

Page 15: PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou docker avant la mise en production

Piloter du docker avecsalt

description du service :my_service: dockerng.running: - container: myappcontainer - port_bindings: 5000:5000

déploiement :salt:~/ salt dockerhost.logilab.fr state.sls my_service

Page 16: PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou docker avant la mise en production

Scale{% for port in range(5000, 5100) %}my_service {{ port }}: dockerng.running: - container: myappcontainer - port_bindings: {{ port }}:5000{% endfor %}

Page 17: PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou docker avant la mise en production

Gérer ses conteneursavec Salt

approche VM légèreon utilise salt-minion comme CMDpermet de piloter des conteneurs à partir du salt-master

FROM debian:jessieRUN apt-get updateRUN apt-get -y install salt-minionCMD /usr/bin/salt-minion

Page 18: PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou docker avant la mise en production
Page 19: PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou docker avant la mise en production

Bénéfices de Docker &Salt & Mercurial

VersionnementRevue de codeDéploiement en environment mixte (docker, lxc, vms,baremetal)Approche devops, developpeurs soumettent des patches surl'infrastuctureTest Driven Infrastructure (pendant de Test DrivenDevelopment)

Page 20: PyConFR 2015 : Utiliser salt pour tester son infrastructure sur open stack ou docker avant la mise en production

FinMerci !Arthur Lutz Logilab liste de discussion : , #salt-fr sur freenode

@arthurlutz@logilab

[email protected]