UTILISER SALT POUR TESTER
SON INFRASTRUCTURE SUR
OPENSTACK OU DOCKER
QUI?
David Douard (Logilab)
✉david.douard@logilab.fr
὆david@jabber.logilab.org
@douardda
douardda
QUOI ?
Salt
c'est chouette
Docker
c'est à la mode
OpenStack
tout le monde en a dans ses placards
sinon, ça marche aussi av...
SALT C'EST CHOUETTE...
u s e r @ s a l t m a s t e r : ~ $ s a l t ' * ' s t a t e . h i g h s t a t e t e s t = T r u e
u...
SALT C'EST CHOUETTE...
u s e r @ s a l t m a s t e r : ~ $ s a l t - G ' r o l e s : a p a c h e ' a p a c h e . v h o s t...
PITCH OF SALT
Fast, scalable and flexible software for data
center automation, from infrastructure and
any cloud, to the e...
SALT - C'EST QUOI ?
exécution distante asynchrone
gestion de configuration centralisée
déploiement d'infrastructure à la d...
SALT - C'EST COMMENT ?
Logiciel Libre
Rapide
Python
Récent (mars 2011)
ZMQ (PUB/SUB + REQ/REP)
Bien packagé pour Debian et...
EXECUTION À DISTANCE
u s e r @ m a s t e r : ~ # s a l t - G ' r o l e s : d e s k t o p ' g n o m e . g e t I d l e A c t...
CONFIGURATION
m a k e s u r e n t p i s r u n n i n g :
p k g . i n s t a l l e d :
- n a m e : n t p
s e r v i c e . r u ...
CLIWeb
SSH
agent-less servers
salt-master
salt-minions
returners
salt-syndic
salt-minions
user
salt-masterless
SALT-CLOUD
Permet de piloter la plupart des plateformes de cloud ou de
virtualisation.
SALT-CLOUD
providers : les fournisseurs de machines
profiles : les types de machines
créer, supprimer, interroger des VMs
...
SALT-CLOUD
À LA CRÉATION D'UNE MACHINE
démarre la VM sur la plateforme choisie
provisionne un salt-minion
permet de provis...
PILOTER DOCKER AVEC SALT
s a l t d o c k e r . l o g i l a b . f r d o c k e r n g . p s
s a l t d o c k e r . l o g i l a...
DÉCRIRE SES CONTENEURS
AVEC SALT
# s t a t e s / m y _ s e r v i c e . s l s
m y r e p o / m y a p p c o n t a i n e r :
d...
SCALE!
{ % f o r p o r t i n r a n g e ( 5 0 0 0 , 5 1 0 0 ) % }
m y _ s e r v i c e { { p o r t } } :
d o c k e r n g . r...
GÉRER SES CONTENEURS
AVEC SALT
approche VM légère
on utilise salt-minion comme PID1
permet de provisionner ses conteneurs ...
Julien
salt-master dev
Hg
Arthur
David
front.logilab.fr db.logilab.fr
app1.logilab.fr app2.logilab.fr
Power Edge
2950
db.l...
00:00
BÉNÉFICES
DE SALT + DOCKER + MERCURIAL
Versionnement de la configuration
avec les
avec une UI à peu près utilisable
mutabl...
BÉNÉFICES
DE SALT + DOCKER + MERCURIAL
Déploiement en environment mixte
docker, lxc, kvm, esx, cloud, baremetal
Configurat...
BÉNÉFICES
DE SALT + DOCKER + MERCURIAL
Approche devops : les développeurs
soumettent des patches pour l'infrastucture
peuv...
DIFFICULTÉS
DE DOCKER + SALT
NÉCESSITE UNE CONF SOIGNÉE
Ne pas spammer l'IT quand on lance des conteneurs
Ne pas pourrir l...
DIFFICULTÉS
DE DOCKER + SALT
PAS DE INIT OU SYSTEMD COMME PID1
Respecter strictement la Docker way of life
Faire attention...
RKT
https://github.com/coreos/rkt
implémentation de la spec
conçu pour systemd
compatible avec Docker
architecture modulai...
MERCI !
✉david.douard@logilab.fr
὆david@jabber.logilab.org
@douardda
douardda
salt-fr@lists.afpy.fr
#salt-fr sur freenode
Prochain SlideShare
Chargement dans…5
×

Utiliser salt pour tester son infrastructure sur open stack ou docker

606 vues

Publié le

Vous pouvez accéder à cette présentation sur ce lien : http://slides.logilab.fr/2015/poss2015_salt-docker/#/

Configurer et orchestrer son infrastructure avec un outil de gestion de configuration centralisée tel que Salt comporte de nombreux avantages.
La conservation et l'historisation des fichers de configuration dans un entrepôt de source geré par un DVCS (mercurial ou git) en fait partie.
Salt permet ensuite de faire évoluer son infrastructure en la testant dans des environements isolés. Une fois la description complète, reproduire une partie de son infrastructure de production sur un environnement virtualisé tel qu'un cloud
privé (OpenStack) devient possible et automatisable avec
*salt-cloud*. L'étape suivante est de pouvoir reproduire des portions de son infrastructure dans des conteneurs légers tels que docker ou lxc directement sur son portable. Pour cela, le pilotage de docker par salt et les fonctionnalités d'orchestration de salt permettent une agilité sans précédent.

Il s'agit d'un bon complément pour le TDI : Test Driven Infrastructure. L'infrastructure est testée en mode "intégration continue" et on peut tester et débugger une partie de l'infrastructure en mode "bac à sable".

Ce modèle peut ensuite être décliné avec l'utilisation des branches dans git ou mercurial où certaines branches vont être appliquées à la partie production de l'infrastructure alors que d'autres sont appliqués a la préproduction ou aux environnements docker ou lxc en local.


Salt est un outil de gestion de configuration centralisé généralement utilisé pour configurer et orchestrer son infrastructure système en bénéficiant de la conservation et de l'historisation des fichiers de configuration dans un entrepôt source géré par mercurial ou git. Toutefois, les possibilités offertes par Salt vont beaucoup plus loin. Une fois la description Salt de l'infrastructure de production terminée, il est possible d'en reproduire automatiquement tout ou partie
avec salt-cloud dans un environnement virtualisé (cloud privé OpenStack) et ainsi de pouvoir mener des tests. En allant plus loin, il est possible de reproduire des portions d'infrastructure dans des conteneurs légers (docker, lxc) et de travailler directement sur son ordinateur portable.
Les fonctionnalités d'orchestration de Salt et son pilotage de docker amènent une agilité sans précédent dans ce processus de travail.

Dans le modèle décrit ci-dessus, excellent complément du TDI (Test-Driven Infrastructure), l'infrastructure est testée et déboguée en mode "bac à sable" puis déployée selon un mécanisme automatisé d'intégration continue. Le modèle peut être décliné en utilisant des branches dans l’entrepôt source de Salt et en choisissant quelles branches sont appliquées
à l'infrastructure en production, en pré-production ou en test dans les environnements locaux (docker, lxc). Des mécanismes de relecture et de validation peuvent alors être mis en œuvre.

Publié dans : Internet
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
606
Sur SlideShare
0
Issues des intégrations
0
Intégrations
6
Actions
Partages
0
Téléchargements
7
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Utiliser salt pour tester son infrastructure sur open stack ou docker

  1. 1. UTILISER SALT POUR TESTER SON INFRASTRUCTURE SUR OPENSTACK OU DOCKER
  2. 2. QUI? David Douard (Logilab) ✉david.douard@logilab.fr ὆david@jabber.logilab.org @douardda douardda
  3. 3. QUOI ? Salt c'est chouette Docker c'est à la mode OpenStack tout le monde en a dans ses placards sinon, ça marche aussi avec EC2
  4. 4. SALT C'EST CHOUETTE... u s e r @ s a l t m a s t e r : ~ $ s a l t ' * ' s t a t e . h i g h s t a t e t e s t = T r u e u s e r @ s a l t m a s t e r : ~ $ s a l t ' * ' s t a t e . h i g h s t a t e ou u s e r @ s a l t m a s t e r : ~ $ s a l t ' * ' p k g . r e f r e s h _ d b u s e r @ s a l t m a s t e r : ~ $ s a l t ' * ' p k g . l i s t _ u p g r a d e s u s e r @ s a l t m a s t e r : ~ $ s a l t ' * ' p k g . u p g r a d e _ a v a i l a b l e mais aussi r o o t @ s a l t e d : ~ $ s a l t - c a l l s t a t e . h i g h s t a t e t e s t = T r u e
  5. 5. SALT C'EST CHOUETTE... u s e r @ s a l t m a s t e r : ~ $ s a l t - G ' r o l e s : a p a c h e ' a p a c h e . v h o s t s 1 9 2 . 1 6 8 . 1 . 1 0 0 : 8 0 : - - - - - - - - - - a s t r o i d . o r g : - - - - - - - - - - c o n f : / e t c / a p a c h e 2 / s i t e s - e n a b l e d / a s t r o i d . o r g . c o n f : 1 p o r t : 8 0 v h o s t : a s t r o i d . o r g c u b i c w e b . o r g : - - - - - - - - - - c o n f : / e t c / a p a c h e 2 / s i t e s - e n a b l e d / c u b i c w e b . o r g . c o n f : 7 [ . . . ]
  6. 6. PITCH OF SALT Fast, scalable and flexible software for data center automation, from infrastructure and any cloud, to the entire application stack.
  7. 7. 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 une boîte à outils pour la gestion d'infrastructure !
  8. 8. SALT - C'EST COMMENT ? Logiciel Libre Rapide Python Récent (mars 2011) ZMQ (PUB/SUB + REQ/REP) Bien packagé pour Debian et RedHat Communité très active Très flexible et extensible Supporte même Windows
  9. 9. EXECUTION À DISTANCE u s e r @ m a s t e r : ~ # s a l t - G ' r o l e s : d e s k t o p ' g n o m e . g e t I d l e A c t i v a t i o n u s e r = d a v i d u s e r @ m a s t e r : ~ # s a l t ' * ' p k g . i n s t a l l l i b s s l 1 . 0 . 0 r e f r e s h = T r u e u s e r @ m a s t e r : ~ # s a l t ' * ' c m d . r u n c h e c k r e s t a r t u s e r @ m a s t e r : ~ # s a l t ' * ' s e r v i c e . r e s t a r t s s h d u s e r @ m a s t e r : ~ # s a l t ' * ' s e r v i c e . r e s t a r t a p a c h e 2
  10. 10. CONFIGURATION m a k e s u r e n t p i s r u n n i n g : p k g . i n s t a l l e d : - n a m e : n t p s e r v i c e . r u n n i n g : - n a m e : n t p d - w a t c h : - f i l e : / e t c / n t p . c o n f d e p l o y n t p c o n f i g u r a t i o n : f i l e . m a n a g e d : - n a m e : / e t c / n t p . c o n f - s o u r c e : s a l t : / / n t p / n t p . c o n f - r e q u i r e : - p k g : n t p
  11. 11. CLIWeb SSH agent-less servers salt-master salt-minions returners salt-syndic salt-minions user salt-masterless
  12. 12. SALT-CLOUD Permet de piloter la plupart des plateformes de cloud ou de virtualisation.
  13. 13. SALT-CLOUD providers : les fournisseurs de machines profiles : les types de machines créer, supprimer, interroger des VMs u s e r @ s a l t : ~ $ s a l t - c l o u d - p j e s s i e - i c e h o u s e w e b 1 w e b 2 d b 1 a p p 1 a p p 2 u s e r @ s a l t : ~ $ s a l t - c l o u d - d w e b 2 a p p 2 u s e r @ s a l t : ~ $ s a l t - c l o u d - Q
  14. 14. SALT-CLOUD À LA CRÉATION D'UNE MACHINE démarre la VM sur la plateforme choisie provisionne un salt-minion permet de provisionner un salt-master local accepte sa clef lance une mise en conformité (highstate)
  15. 15. PILOTER DOCKER AVEC SALT s a l t d o c k e r . l o g i l a b . f r d o c k e r n g . p s s a l t d o c k e r . l o g i l a b . f r d o c k e r n g . i n s p e c t m y d o c k e r s a l t d o c k e r . l o g i l a b . f r d o c k e r n g . c o m m i t m y d o c k e r r e p o / m y d o c k e r : t a g
  16. 16. DÉCRIRE SES CONTENEURS AVEC SALT # s t a t e s / m y _ s e r v i c e . s l s m y r e p o / m y a p p c o n t a i n e r : d o c k e r n g . i m a g e _ p r e s e n t : - b u i l d : h t t p s : / / g i t h u b . c o m / m y u s e r / m y r e p o . g i t m y _ s e r v i c e : d o c k e r n g . r u n n i n g : - c o n t a i n e r : m y r e p o / m y a p p c o n t a i n e r - p o r t _ b i n d i n g s : 5 0 0 0 : 5 0 0 0 déploiement : u s e r @ s a l t m a s t e r : ~ $ s a l t d o c k e r . l o g i l a b . f r s t a t e . s l s m y _ s e r v i c e
  17. 17. SCALE! { % f o r p o r t i n r a n g e ( 5 0 0 0 , 5 1 0 0 ) % } m y _ s e r v i c e { { p o r t } } : d o c k e r n g . r u n n i n g : - c o n t a i n e r : m y a p p c o n t a i n e r - p o r t _ b i n d i n g s : { { p o r t } } : 5 0 0 0 { % e n d f o r % }
  18. 18. GÉRER SES CONTENEURS AVEC SALT approche VM légère on utilise salt-minion comme PID1 permet de provisionner ses conteneurs à partir du salt- master permet de piloter des conteneurs à partir du salt-master F R O M d o c k e r . l o g i l a b . f r / l o g i l a b / d e b i a n : j e s s i e R U N a p t - g e t u p d a t e R U N a p t - g e t - y i n s t a l l s a l t - m i n i o n E N T R Y P O I N T / u s r / b i n / s a l t - m i n i o n
  19. 19. Julien salt-master dev Hg Arthur David front.logilab.fr db.logilab.fr app1.logilab.fr app2.logilab.fr Power Edge 2950 db.logilab.fr Power Edge 2950 host.logilab.fr front.logilab.fr app1.logilab.fr app2.logilab.fr salt-master MMeerrccuurriiaall
  20. 20. 00:00
  21. 21. BÉNÉFICES DE SALT + DOCKER + MERCURIAL Versionnement de la configuration avec les avec une UI à peu près utilisable mutable changesets https://xkcd.com/1597
  22. 22. BÉNÉFICES DE SALT + DOCKER + MERCURIAL Déploiement en environment mixte docker, lxc, kvm, esx, cloud, baremetal Configuration indépendante de l'environnement d'exécution
  23. 23. BÉNÉFICES DE SALT + DOCKER + MERCURIAL Approche devops : les développeurs soumettent des patches pour l'infrastucture peuvent reproduire la prod en quelques secondes Revue de code Intégration continue Test Driven Infrastructure
  24. 24. DIFFICULTÉS DE DOCKER + SALT NÉCESSITE UNE CONF SOIGNÉE Ne pas spammer l'IT quand on lance des conteneurs Ne pas pourrir la supervision Faire attention à ses service.running
  25. 25. DIFFICULTÉS DE DOCKER + SALT PAS DE INIT OU SYSTEMD COMME PID1 Respecter strictement la Docker way of life Faire attention à ses service.running Utiliser des outils comme supervisord comme PID1 Arrêter d'utiliser Docker ? rkt rocks!
  26. 26. RKT https://github.com/coreos/rkt implémentation de la spec conçu pour systemd compatible avec Docker architecture modulaire App Container spec
  27. 27. MERCI ! ✉david.douard@logilab.fr ὆david@jabber.logilab.org @douardda douardda salt-fr@lists.afpy.fr #salt-fr sur freenode

×