SlideShare a Scribd company logo
1 of 15
Download to read offline
Du sel et du
mercure dans des
conteneurs
Initialiser des conteneurs Docker à partir de configurations
Salt
Gérer ses configurations Salt dans Mercurial
Articulation entre Docker, gestion de configuration et
Mercurial
Retour d'expérience
Perspectives
Qui ?
David Douard (Logilab)
david.douard@logilab.fr
@douardda
Salt
boîte à outils (toolkit) pour l'infrastructure construite sur un
bus de communication asynchrone
exécution à distance
Cloud Provisionning
gestion de configuration centralisée
orchestration
salt-key
salt-master
salt-minion
salt-api
kevin
jerry
phil
SUB
PUBREP
REQ
kevin
jerry
Docker + Salt + Mercurial
Salt pour créer des images Docker
Salt pour déployer des conteneurs
Salt pour gérer des conteneurs (CMD salt-minion)
Mercurial pour conserver ses configurations Salt
Pourquoi ?
Docker recommande le microservice et utilise le FROM
pour la modularité
Salt apporte la configuration centralisée et indépendante
du mode de déploiement (conteneur, VM, baremetal)
Mercurial permet les bonnes pratiques du développement
collaboratif
Comment ?
Dockerfile minimaliste pour bootstraper salt:
F R O M 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
Deux options : microservice ou VM légère
Installer un microservice dovecot
A 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 a
A D D d o v e c o t / s r v / s a l t / d o v e c o t
A 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 s
R U N e c h o " b a s e : " > / s r v / p i l l a r / t o p . s l s
R U N e c h o " ' * ' : " > > / s r v / p i l l a r / t o p . s l s
R U N e c h o " - m a i n " > > / s r v / p i l l a r / t o p . s l s
R 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 f
R 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 t
R 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 Salt
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
R U N a p t - g e t - y i n s t a l l m e r c u r i a l
R 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 t
R 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 f
R 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 Salt
Description 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
Scale
Dé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 Salt
approche VM légère
on utilise salt-minion comme CMD
permet de piloter des conteneurs à partir du salt-master
F R O M 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
C M D / u s r / b i n / s a l t - m i n i o n
Organiser le travail en équipeJulien
salt-master dev
Hg
Arthur
David
front.logilab.fr db.logilab.fr
app1.logilab.fr app2.logilab.fr
PowerEdge
2950
db.logilab.fr
PowerEdge
2950
host.logilab.fr
front.logilab.fr
app1.logilab.fr
app2.logilab.fr
salt-master
MMeerrccuurriiaall
Conclusion
versionnement, revue de code / intégration
indépendance vis à vis des environnements d'exécution
approche devops
Test Driven Infrastructure

More Related Content

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

Newsletter février 2017 - Transtech
Newsletter février 2017 - TranstechNewsletter février 2017 - Transtech
Newsletter février 2017 - TranstechTranstech Aquitaine
 
Les patrons de conception du composant Form
Les patrons de conception du composant FormLes patrons de conception du composant Form
Les patrons de conception du composant FormVladyslav Riabchenko
 
HOT 2m³ Modular Low profile Underground LHD
HOT 2m³ Modular Low profile Underground LHDHOT 2m³ Modular Low profile Underground LHD
HOT 2m³ Modular Low profile Underground LHDWilliamLai49
 
ACCIONA 100% ECOPOWERED REVIENT SUR LE DAKAR
ACCIONA 100% ECOPOWERED REVIENT SUR LE DAKARACCIONA 100% ECOPOWERED REVIENT SUR LE DAKAR
ACCIONA 100% ECOPOWERED REVIENT SUR LE DAKARacciona
 
Discrete Wire Crimper
Discrete Wire CrimperDiscrete Wire Crimper
Discrete Wire CrimperPhil Heft
 
SkillValue Master Class NodeJS 101
SkillValue Master Class NodeJS 101SkillValue Master Class NodeJS 101
SkillValue Master Class NodeJS 101Benoit Fillon
 
Gestion des logs sur une plateforme web
Gestion des logs sur une plateforme webGestion des logs sur une plateforme web
Gestion des logs sur une plateforme webfredcons
 
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...Arthur Lutz
 
PRAINSA CEVICO ALGERIE
PRAINSA CEVICO ALGERIEPRAINSA CEVICO ALGERIE
PRAINSA CEVICO ALGERIENadjib BELKADI
 
Introduction au Flow Framework et au Value Stream Management par Martin Deslo...
Introduction au Flow Framework et au Value Stream Management par Martin Deslo...Introduction au Flow Framework et au Value Stream Management par Martin Deslo...
Introduction au Flow Framework et au Value Stream Management par Martin Deslo...Agile Montréal
 

Similar to Initialiser des conteneurs Docker à partir de configurations Salt construites à plusieurs grâce à Mercurial (16)

Newsletter février 2017 - Transtech
Newsletter février 2017 - TranstechNewsletter février 2017 - Transtech
Newsletter février 2017 - Transtech
 
Kenwood KM262
Kenwood KM262Kenwood KM262
Kenwood KM262
 
Les patrons de conception du composant Form
Les patrons de conception du composant FormLes patrons de conception du composant Form
Les patrons de conception du composant Form
 
Msgi(fr)
Msgi(fr) Msgi(fr)
Msgi(fr)
 
HOT 2m³ Modular Low profile Underground LHD
HOT 2m³ Modular Low profile Underground LHDHOT 2m³ Modular Low profile Underground LHD
HOT 2m³ Modular Low profile Underground LHD
 
Auto formation *WinDev
Auto formation *WinDev Auto formation *WinDev
Auto formation *WinDev
 
ACCIONA 100% ECOPOWERED REVIENT SUR LE DAKAR
ACCIONA 100% ECOPOWERED REVIENT SUR LE DAKARACCIONA 100% ECOPOWERED REVIENT SUR LE DAKAR
ACCIONA 100% ECOPOWERED REVIENT SUR LE DAKAR
 
Discrete Wire Crimper
Discrete Wire CrimperDiscrete Wire Crimper
Discrete Wire Crimper
 
SkillValue Master Class NodeJS 101
SkillValue Master Class NodeJS 101SkillValue Master Class NodeJS 101
SkillValue Master Class NodeJS 101
 
Gestion de projets
Gestion de projetsGestion de projets
Gestion de projets
 
Gestion des logs sur une plateforme web
Gestion des logs sur une plateforme webGestion des logs sur une plateforme web
Gestion des logs sur une plateforme web
 
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...
Pyconfr2015 : Marre de faire du C++ sur une Arduino ? Faites du Python avec M...
 
PRAINSA CEVICO ALGERIE
PRAINSA CEVICO ALGERIEPRAINSA CEVICO ALGERIE
PRAINSA CEVICO ALGERIE
 
Kenwood FP925
Kenwood FP925Kenwood FP925
Kenwood FP925
 
Kenwood km010
Kenwood km010Kenwood km010
Kenwood km010
 
Introduction au Flow Framework et au Value Stream Management par Martin Deslo...
Introduction au Flow Framework et au Value Stream Management par Martin Deslo...Introduction au Flow Framework et au Value Stream Management par Martin Deslo...
Introduction au Flow Framework et au Value Stream Management par Martin Deslo...
 

More from Logilab

Testinfra pyconfr 2017
Testinfra pyconfr 2017Testinfra pyconfr 2017
Testinfra pyconfr 2017Logilab
 
Open Source & Open Data : les bienfaits des communs
Open Source & Open Data : les bienfaits des communsOpen Source & Open Data : les bienfaits des communs
Open Source & Open Data : les bienfaits des communsLogilab
 
Salon Open Data
Salon Open DataSalon Open Data
Salon Open DataLogilab
 
Pydata Paris Python for manufacturing musical instruments
Pydata Paris Python for manufacturing musical instrumentsPydata Paris Python for manufacturing musical instruments
Pydata Paris Python for manufacturing musical instrumentsLogilab
 
Présentation Logilab
Présentation LogilabPrésentation Logilab
Présentation LogilabLogilab
 
Système d'archivage électronique mutualisé
Système d'archivage électronique mutualiséSystème d'archivage électronique mutualisé
Système d'archivage électronique mutualiséLogilab
 
Importer des données en Python avec CubicWeb 3.21
Importer des données en Python avec CubicWeb 3.21Importer des données en Python avec CubicWeb 3.21
Importer des données en Python avec CubicWeb 3.21Logilab
 
Simulagora au service d'un grand défi industriel
Simulagora au service d'un grand défi industrielSimulagora au service d'un grand défi industriel
Simulagora au service d'un grand défi industrielLogilab
 
Simulagora - Salon du Bourget
Simulagora - Salon du BourgetSimulagora - Salon du Bourget
Simulagora - Salon du BourgetLogilab
 
Innover par et pour la donnée - Logilab ADBU Bibcamp 2015
Innover par et pour la donnée - Logilab ADBU Bibcamp 2015Innover par et pour la donnée - Logilab ADBU Bibcamp 2015
Innover par et pour la donnée - Logilab ADBU Bibcamp 2015Logilab
 
Study of the dynamic behavior of a pump with Code_ASTER on Simulagora
Study of the dynamic behavior of a pump with Code_ASTER on SimulagoraStudy of the dynamic behavior of a pump with Code_ASTER on Simulagora
Study of the dynamic behavior of a pump with Code_ASTER on SimulagoraLogilab
 
Battle Opendata - Logilab - Cubicweb
Battle Opendata - Logilab - CubicwebBattle Opendata - Logilab - Cubicweb
Battle Opendata - Logilab - CubicwebLogilab
 
Debconf14 : Putting some salt in your Debian systems -- Julien Cristau
Debconf14 : Putting some salt in your Debian systems -- Julien CristauDebconf14 : Putting some salt in your Debian systems -- Julien Cristau
Debconf14 : Putting some salt in your Debian systems -- Julien CristauLogilab
 
Simulagora (Euroscipy2014 - Logilab)
Simulagora (Euroscipy2014 - Logilab)Simulagora (Euroscipy2014 - Logilab)
Simulagora (Euroscipy2014 - Logilab)Logilab
 
PAFI (Euroscipy2014 - Logilab)
PAFI (Euroscipy2014 - Logilab)PAFI (Euroscipy2014 - Logilab)
PAFI (Euroscipy2014 - Logilab)Logilab
 
Open Legislative Data Conference 2014
Open Legislative Data Conference 2014Open Legislative Data Conference 2014
Open Legislative Data Conference 2014Logilab
 
Pylint : 10 ans, état des lieux
Pylint : 10 ans, état des lieuxPylint : 10 ans, état des lieux
Pylint : 10 ans, état des lieuxLogilab
 
BRAINOMICS A management system for exploring and merging heterogeneous brain ...
BRAINOMICS A management system for exploring and merging heterogeneous brain ...BRAINOMICS A management system for exploring and merging heterogeneous brain ...
BRAINOMICS A management system for exploring and merging heterogeneous brain ...Logilab
 
Présentation sur le stand à l'OpenWorldForum 2013
Présentation sur le stand à l'OpenWorldForum 2013Présentation sur le stand à l'OpenWorldForum 2013
Présentation sur le stand à l'OpenWorldForum 2013Logilab
 
Cubicweb lauréat Dataconnexions 2013
Cubicweb lauréat Dataconnexions 2013Cubicweb lauréat Dataconnexions 2013
Cubicweb lauréat Dataconnexions 2013Logilab
 

More from Logilab (20)

Testinfra pyconfr 2017
Testinfra pyconfr 2017Testinfra pyconfr 2017
Testinfra pyconfr 2017
 
Open Source & Open Data : les bienfaits des communs
Open Source & Open Data : les bienfaits des communsOpen Source & Open Data : les bienfaits des communs
Open Source & Open Data : les bienfaits des communs
 
Salon Open Data
Salon Open DataSalon Open Data
Salon Open Data
 
Pydata Paris Python for manufacturing musical instruments
Pydata Paris Python for manufacturing musical instrumentsPydata Paris Python for manufacturing musical instruments
Pydata Paris Python for manufacturing musical instruments
 
Présentation Logilab
Présentation LogilabPrésentation Logilab
Présentation Logilab
 
Système d'archivage électronique mutualisé
Système d'archivage électronique mutualiséSystème d'archivage électronique mutualisé
Système d'archivage électronique mutualisé
 
Importer des données en Python avec CubicWeb 3.21
Importer des données en Python avec CubicWeb 3.21Importer des données en Python avec CubicWeb 3.21
Importer des données en Python avec CubicWeb 3.21
 
Simulagora au service d'un grand défi industriel
Simulagora au service d'un grand défi industrielSimulagora au service d'un grand défi industriel
Simulagora au service d'un grand défi industriel
 
Simulagora - Salon du Bourget
Simulagora - Salon du BourgetSimulagora - Salon du Bourget
Simulagora - Salon du Bourget
 
Innover par et pour la donnée - Logilab ADBU Bibcamp 2015
Innover par et pour la donnée - Logilab ADBU Bibcamp 2015Innover par et pour la donnée - Logilab ADBU Bibcamp 2015
Innover par et pour la donnée - Logilab ADBU Bibcamp 2015
 
Study of the dynamic behavior of a pump with Code_ASTER on Simulagora
Study of the dynamic behavior of a pump with Code_ASTER on SimulagoraStudy of the dynamic behavior of a pump with Code_ASTER on Simulagora
Study of the dynamic behavior of a pump with Code_ASTER on Simulagora
 
Battle Opendata - Logilab - Cubicweb
Battle Opendata - Logilab - CubicwebBattle Opendata - Logilab - Cubicweb
Battle Opendata - Logilab - Cubicweb
 
Debconf14 : Putting some salt in your Debian systems -- Julien Cristau
Debconf14 : Putting some salt in your Debian systems -- Julien CristauDebconf14 : Putting some salt in your Debian systems -- Julien Cristau
Debconf14 : Putting some salt in your Debian systems -- Julien Cristau
 
Simulagora (Euroscipy2014 - Logilab)
Simulagora (Euroscipy2014 - Logilab)Simulagora (Euroscipy2014 - Logilab)
Simulagora (Euroscipy2014 - Logilab)
 
PAFI (Euroscipy2014 - Logilab)
PAFI (Euroscipy2014 - Logilab)PAFI (Euroscipy2014 - Logilab)
PAFI (Euroscipy2014 - Logilab)
 
Open Legislative Data Conference 2014
Open Legislative Data Conference 2014Open Legislative Data Conference 2014
Open Legislative Data Conference 2014
 
Pylint : 10 ans, état des lieux
Pylint : 10 ans, état des lieuxPylint : 10 ans, état des lieux
Pylint : 10 ans, état des lieux
 
BRAINOMICS A management system for exploring and merging heterogeneous brain ...
BRAINOMICS A management system for exploring and merging heterogeneous brain ...BRAINOMICS A management system for exploring and merging heterogeneous brain ...
BRAINOMICS A management system for exploring and merging heterogeneous brain ...
 
Présentation sur le stand à l'OpenWorldForum 2013
Présentation sur le stand à l'OpenWorldForum 2013Présentation sur le stand à l'OpenWorldForum 2013
Présentation sur le stand à l'OpenWorldForum 2013
 
Cubicweb lauréat Dataconnexions 2013
Cubicweb lauréat Dataconnexions 2013Cubicweb lauréat Dataconnexions 2013
Cubicweb lauréat Dataconnexions 2013
 

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

  • 1. Du sel et du mercure dans des conteneurs
  • 2. Initialiser des conteneurs Docker à partir de configurations Salt Gérer ses configurations Salt dans Mercurial Articulation entre Docker, gestion de configuration et Mercurial Retour d'expérience Perspectives
  • 3. Qui ? David Douard (Logilab) david.douard@logilab.fr @douardda
  • 4. Salt boîte à outils (toolkit) pour l'infrastructure construite sur un bus de communication asynchrone exécution à distance Cloud Provisionning gestion de configuration centralisée orchestration
  • 6. Docker + Salt + Mercurial Salt pour créer des images Docker Salt pour déployer des conteneurs Salt pour gérer des conteneurs (CMD salt-minion) Mercurial pour conserver ses configurations Salt
  • 7. Pourquoi ? Docker recommande le microservice et utilise le FROM pour la modularité Salt apporte la configuration centralisée et indépendante du mode de déploiement (conteneur, VM, baremetal) Mercurial permet les bonnes pratiques du développement collaboratif
  • 8. Comment ? Dockerfile minimaliste pour bootstraper salt: F R O M 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 Deux options : microservice ou VM légère
  • 9. Installer un microservice dovecot A 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 a A D D d o v e c o t / s r v / s a l t / d o v e c o t A 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 s R U N e c h o " b a s e : " > / s r v / p i l l a r / t o p . s l s R U N e c h o " ' * ' : " > > / s r v / p i l l a r / t o p . s l s R U N e c h o " - m a i n " > > / s r v / p i l l a r / t o p . s l s R 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 f R 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 t R 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
  • 10. Tester des states Salt 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 R U N a p t - g e t - y i n s t a l l m e r c u r i a l R 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 t R 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 f R 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
  • 11. Déployer un conteneur avec Salt Description 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
  • 12. Scale Dé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 % }
  • 13. Gérer ses conteneurs avec Salt approche VM légère on utilise salt-minion comme CMD permet de piloter des conteneurs à partir du salt-master F R O M 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 C M D / u s r / b i n / s a l t - m i n i o n
  • 14. Organiser le travail en équipeJulien salt-master dev Hg Arthur David front.logilab.fr db.logilab.fr app1.logilab.fr app2.logilab.fr PowerEdge 2950 db.logilab.fr PowerEdge 2950 host.logilab.fr front.logilab.fr app1.logilab.fr app2.logilab.fr salt-master MMeerrccuurriiaall
  • 15. Conclusion versionnement, revue de code / intégration indépendance vis à vis des environnements d'exécution approche devops Test Driven Infrastructure