27
UTILISER SALT POUR TESTER SON INFRASTRUCTURE SUR OPENSTACK OU DOCKER

Utiliser salt pour tester son infrastructure sur open stack ou docker

  • Upload
    logilab

  • View
    713

  • Download
    0

Embed Size (px)

Citation preview

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