15
Du sel et du mercure dans des conteneurs

Initialiser des conteneurs Docker à partir de configurations Salt construites à plusieurs grâce à Mercurial

  • Upload
    logilab

  • View
    170

  • Download
    0

Embed Size (px)

Citation preview

Du sel et dumercure dans des

conteneurs

Initialiser des conteneurs Docker à partir de configurationsSaltGérer ses configurations Salt dans MercurialArticulation entre Docker, gestion de configuration etMercurialRetour d'expériencePerspectives

Saltboîte à outils (toolkit) pour l'infrastructure construite sur un

bus de communication asynchrone

exécution à distanceCloud Provisionninggestion de configuration centraliséeorchestration

salt-key

salt-master

salt-minion

salt-

api

kevin

jerry

phil

SUB

PUB

REP

REQ

kevin

jerry

Docker + Salt + MercurialSalt pour créer des images DockerSalt pour déployer des conteneursSalt pour gérer des conteneurs (CMD salt-minion)Mercurial pour conserver ses configurations Salt

Pourquoi ?Docker recommande le microservice et utilise le FROMpour la modularitéSalt apporte la configuration centralisée et indépendantedu mode de déploiement (conteneur, VM, baremetal)Mercurial permet les bonnes pratiques du développementcollaboratif

Comment ?Dockerfile minimaliste pour bootstraper salt:

F R O M 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 n

Deux options : microservice ou VM légère

Installer un microservice dovecotA partir de https://github.com/saltstack-formulas/dovecot-

formula

F R O M l o g i l a b / m a s t e r l e s s : j e s s i e# p u s h f o r m u l aA D D d o v e c o t / s r v / s a l t / d o v e c o tA D D p i l l a r . e x a m p l e / s r v / p i l l a r / m a i n . s l sR U N e c h o " b a s e : " > / s r v / p i l l a r / t o p . s l sR U N e c h o " ' * ' : " > > / s r v / p i l l a r / t o p . s l sR U N e c h o " - m a i n " > > / s r v / p i l l a r / t o p . s l sR U N e c h o " f i l e _ c l i e n t : l o c a l " > / e t c / s a l t / m i n i o n . d / l o c a l . c o n fR U N s a l t - c a l l - - l o c a l s t a t e . s l s d o v e c o tR U N a p t - g e t r e m o v e - - p u r g e s a l t - m i n i o n & & a p t - g e t c l e a n & & [ . . . ]C M D / u s r / b i n / d o v e c o t

Tester des states SaltF R O M l o g i l a b / m a s t e r l e s s : j e s s i eR U N a p t - g e t - y i n s t a l l m e r c u r i a lR U N h g c l o n e h t t p s : / / h g . l o g i l a b . f r / a d m i n / s a l t / s r v / s a l tR U N e c h o " f i l e _ c l i e n t : l o c a l " > / e t c / s a l t / m i n i o n . d / l o c a l . c o n fR U N s a l t - c a l l - - l o c a l s t a t e . s l s t e s t e d _ c o n f i g

Déployer un conteneur avec SaltDescription du service avec le module docker de Salt :

m y _ s e r v i c e : d o c k e r . 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 s : " 5 0 0 0 / t c p " : H o s t P o r t : " 5 0 0 0 "

Déploiement :

d a v i d @ s a l t : ~ / s a l t d o c k e r h o s t . 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

ScaleDémarrer 100 conteneurs sur une machine :

{ % 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 . 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 s : " { { p o r t } } / t c p " : H o s t P o r t : " { { p o r t } } "{ % e n d f o r % }

Gérer ses conteneurs avec Saltapproche VM légèreon utilise salt-minion comme CMDpermet de piloter des conteneurs à partir du salt-master

F R O M 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 nC M D / u s r / b i n / s a l t - m i n i o n

Organiser le travail en équipeJu

lien

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

Conclusionversionnement, revue de code / intégrationindépendance vis à vis des environnements d'exécutionapproche devopsTest Driven Infrastructure