Comment utiliser Salt (outil en python pour la gestion d'infrastructure, gestion de conf centralisé mais aussi exécution à distance et orchestrateur) pour tester des bouts de son infrastructure (ses applications n-tiers) dans un environnement "bac-à-sable", en machines virtuelles sur un cloud privé (OpenStack, en python!), soit en conteneurs (LXC ou docker). Le tout versionné avec du mercurial.
3. Vue d'ensemble
Introduction à Salt
Piloter du cloud avec salt-cloud
Initialiser des conteneurs Docker à partir de configurations
Salt
Articulation entre Docker et un outil de gestion configuration
et orchestration
8. Pitch de Salt
Fast, scalable and flexible software for data
center automation, from infrastructure and any
cloud, to the entire application stack.
Logiciel rapide, adaptable, qui monte en charge et flexible pour
l'automatisation des data centers, depuis l'infrastructure
matérielle ou n'importe quel cloud, jusqu'à l'ensemble de la pile
applicative.
9. Salt - c'est quoi ?
exécution distante asynchrone
gestion de configuration centralisée
déploiement d'infrastructure à la demande
gestion de machines virtuelles
supervision et monitoring
gestion de cluster HPC (High Performance Computing)
une boîte à outils pour la gestion d'infrastructure !
10. Salt - pourquoi ce
choix?
Gestion de configuration centralisé - mais pas seulement!
Framework recent (première version en mars 2011)
Logiciel libre
Python
ZMQ pour la communication
bien packagé pour Debian
communité très active
très flexible et extensible
11. Execution à distance
avec saltroot@master:~#salt'*'pkg.installvim
root@master:~#salt'*'pkg.installlibssl1.0.0refresh=True
root@master:~#salt'*'cmd.run'checkrestart'
root@master:~#salt'*'service.restartsshd
root@master:~#salt'*'service.restartapache2
14. Piloter du cloud avec
salt-cloud
L'outil salt-cloud permet de piloter un certain nombre de
plateformes de cloud (avec ) pour créér/détruire des
machines à la demande tout en les branchant sur salt.
libcloud
15. Piloter du docker avec
salt
description du service :
my_service:
dockerng.running:
-container:myappcontainer
-port_bindings:5000:5000
déploiement :
salt:~/saltdockerhost.logilab.frstate.slsmy_service
17. Gérer ses conteneurs
avec Salt
approche VM légère
on utilise salt-minion comme CMD
permet de piloter des conteneurs à partir du salt-master
FROMdebian:jessie
RUNapt-getupdate
RUNapt-get-yinstallsalt-minion
CMD/usr/bin/salt-minion
18.
19. Bénéfices de Docker &
Salt & Mercurial
Versionnement
Revue de code
Déploiement en environment mixte (docker, lxc, vms,
baremetal)
Approche devops, developpeurs soumettent des patches sur
l'infrastucture
Test Driven Infrastructure (pendant de Test Driven
Development)