Initialiser des conteneurs Docker à partir de configurations Salt construites à plusieurs grâce...
-
Upload
logilab -
Category
Technology
-
view
170 -
download
0
Transcript of Initialiser des conteneurs Docker à partir de configurations Salt construites à plusieurs grâce...
Initialiser des conteneurs Docker à partir de configurationsSaltGérer ses configurations Salt dans MercurialArticulation entre Docker, gestion de configuration etMercurialRetour d'expériencePerspectives
Qui ?David Douard (Logilab)
@douardda
Saltboîte à outils (toolkit) pour l'infrastructure construite sur un
bus de communication asynchrone
exécution à distanceCloud Provisionninggestion de configuration centraliséeorchestration
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