Utiliser salt pour tester son infrastructure sur open stack ou docker

27
UTILISER SALT POUR TESTER SON INFRASTRUCTURE SUR OPENSTACK OU DOCKER

Transcript of Utiliser salt pour tester son infrastructure sur open stack ou docker

UTILISER SALT POUR TESTERSON INFRASTRUCTURE SUR

OPENSTACK OU DOCKER

QUOI ?Salt

c'est chouetteDocker

c'est à la modeOpenStack

tout le monde en a dans ses placardssinon, ça marche aussi avec EC2

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 eu 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

ouu 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 bu 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 su 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 aussir 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

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[ . . . ]

PITCH OF SALTFast, scalable and flexible software for datacenter automation, from infrastructure and

any cloud, to the entire application stack.

SALT - C'EST QUOI ?exécution distante asynchronegestion de configuration centraliséedéploiement d'infrastructure à la demandegestion de machines virtuellessupervision et monitoringune boîte à outils pour la gestion d'infrastructure !

SALT - C'EST COMMENT ?Logiciel LibreRapidePythonRécent (mars 2011)ZMQ (PUB/SUB + REQ/REP)Bien packagé pour Debian et RedHatCommunité très activeTrès flexible et extensibleSupporte même Windows

EXECUTION À DISTANCEu 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 eu 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 tu 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 du 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

CONFIGURATIONm 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

CLIWeb

SSH

agent-less servers

salt-master

salt-minions

returners

salt-syndic

salt-minions

user

salt-masterless

SALT-CLOUDPermet de piloter la plupart des plateformes de cloud ou de

virtualisation.

SALT-CLOUDproviders : les fournisseurs de machinesprofiles : les types de machinescré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 2u 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

SALT-CLOUDÀ LA CRÉATION D'UNE MACHINE

démarre la VM sur la plateforme choisieprovisionne un salt-minion

permet de provisionner un salt-master localaccepte sa cleflance une mise en conformité (highstate)

PILOTER DOCKER AVEC SALTs 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 ss 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 rs 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

DÉCRIRE SES CONTENEURSAVEC 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

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 % }

GÉRER SES CONTENEURSAVEC SALT

approche VM légèreon utilise salt-minion comme PID1permet de provisionner ses conteneurs à partir du salt-masterpermet 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 eR U N a p t - g e t u p d a t eR 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 nE 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

Julie

n

salt-master devHg

Arth

urD

avid

front.logilab.fr db.logilab.fr

app1.logilab.fr app2.logilab.fr

PowerEdge2950

db.logilab.fr

PowerEdge2950

host.logilab.fr

front.logilab.fr

app1.logilab.fr

app2.logilab.fr

salt-

mas

ter

MMeerrccuurr iiaall

00:00

BÉNÉFICESDE SALT + DOCKER + MERCURIAL

Versionnement de la configurationavec les avec une UI à peu près utilisable

mutable changesets

https://xkcd.com/1597

BÉNÉFICESDE SALT + DOCKER + MERCURIAL

Déploiement en environment mixtedocker, lxc, kvm, esx, cloud, baremetal

Configuration indépendante de l'environnementd'exécution

BÉNÉFICESDE SALT + DOCKER + MERCURIAL

Approche devops : les développeurssoumettent des patches pour l'infrastucturepeuvent reproduire la prod en quelques secondes

Revue de codeIntégration continueTest Driven Infrastructure

DIFFICULTÉSDE DOCKER + SALT

NÉCESSITE UNE CONF SOIGNÉENe pas spammer l'IT quand on lance des conteneursNe pas pourrir la supervisionFaire attention à ses service.running

DIFFICULTÉSDE DOCKER + SALT

PAS DE INIT OU SYSTEMD COMME PID1Respecter strictement la Docker way of lifeFaire attention à ses service.runningUtiliser des outils comme supervisord comme PID1Arrêter d'utiliser Docker ?

rkt rocks!

RKThttps://github.com/coreos/rkt

implémentation de la spec conçu pour systemdcompatible avec Dockerarchitecture modulaire

App Container spec