{"id":1606,"date":"2014-06-01T11:00:22","date_gmt":"2014-06-01T09:00:22","guid":{"rendered":"http:\/\/www.unicoda.com\/?p=1606"},"modified":"2020-04-29T22:03:29","modified_gmt":"2020-04-29T20:03:29","slug":"poc-puppet-master-agent-avec-docker","status":"publish","type":"post","link":"https:\/\/www.unicoda.com\/?p=1606","title":{"rendered":"[POC] Puppet master-agent avec Docker"},"content":{"rendered":"<p>Petit Proof of Concept r\u00e9alis\u00e9 la semaine derni\u00e8re autour des technologies <a href=\"http:\/\/docs.puppetlabs.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Puppet<\/a> et <a href=\"http:\/\/docs.docker.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Docker<\/a>. L&rsquo;id\u00e9e consiste \u00e0 utiliser Docker pour pouvoir facilement d\u00e9ployer un environnement master-slave Puppet et avoir&nbsp;ainsi la possibilit\u00e9 de tester ses scripts de d\u00e9ploiement ou plus g\u00e9n\u00e9ralement, d&rsquo;\u00e9tudier et de comprendre le fonctionnement de Puppet avant de passer \u00e0 une utilisation en production.<\/p>\n<p>Le projet permet donc la cr\u00e9ation de deux containers Docker, l&rsquo;un contenant le master et l&rsquo;autre l&rsquo;agent. Apr\u00e8s cr\u00e9ation du container master, on peut cr\u00e9er l&rsquo;agent et lier les deux containers \u00e0 l&rsquo;aide du param\u00e8tre <a href=\"http:\/\/docs.docker.io\/use\/working_with_links_names\/#links-service-discovery-for-docker\" target=\"_blank\" rel=\"noopener noreferrer\"><em>-link<\/em><\/a> de Docker. On permet ainsi aux deux containers de communiquer entre eux sans avoir \u00e0 essayer de d\u00e9terminer leur IP respective \u00e0 la main. Par la suite, apr\u00e8s signature du certificat de l&rsquo;agent par le master, la configuration d\u00e9crite dans le fichier <em>site.pp<\/em> sous le n\u0153ud agent pourra \u00eatre mise en place sur celui-ci.<\/p>\n<pre id=\"LC4\" class=\"line\"><span class=\"kd\">node<\/span>  <span class=\"s1\">'agent'<\/span> <span class=\"p\">{\n<\/span>&nbsp; <span class=\"nc\">class<\/span> <span class=\"p\">{<\/span> <span class=\"s1\">'apache'<\/span><span class=\"p\">:<\/span> <span class=\"p\">}\n<\/span>}<\/pre>\n<p>Par exemple, on installe ici apache dans le container de l&rsquo;agent.<\/p>\n<p>Mes diff\u00e9rents tests m&rsquo;ont \u00e9galement permis d&rsquo;identifier certains limitations au niveau de Docker:<\/p>\n<ul>\n<li>Impossible de modifier le fichier <em>\/etc\/hosts<\/em> au sein d&rsquo;un container.<\/li>\n<li>Impossible de modifier les param\u00e8tres <em>ulimit<\/em> dans un container.<\/li>\n<\/ul>\n<p>Le code est bien s\u00fbr disponible disponible sous licence libre sur Github: <a href=\"https:\/\/github.com\/vvision\/docker-puppet-master-agent\" target=\"_blank\" rel=\"noopener noreferrer\">vvision\/docker-puppet-master-agent<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Petit Proof of Concept r\u00e9alis\u00e9 la semaine derni\u00e8re autour des technologies Puppet et Docker. L&rsquo;id\u00e9e consiste \u00e0 utiliser Docker pour pouvoir facilement d\u00e9ployer un environnement master-slave Puppet et avoir&nbsp;ainsi la possibilit\u00e9 de tester ses scripts de d\u00e9ploiement ou plus g\u00e9n\u00e9ralement, d&rsquo;\u00e9tudier et de comprendre le fonctionnement de Puppet avant de passer \u00e0 une utilisation en &hellip; <a href=\"https:\/\/www.unicoda.com\/?p=1606\" class=\"more-link\">Continuer la lecture<span class=\"screen-reader-text\"> de &laquo;&nbsp;[POC] Puppet master-agent avec Docker&nbsp;&raquo;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,126,506],"tags":[181,182],"class_list":["post-1606","post","type-post","status-publish","format-standard","hentry","category-code","category-logiciellibre","category-projets-2","tag-docker","tag-puppet"],"_links":{"self":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts\/1606","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1606"}],"version-history":[{"count":2,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts\/1606\/revisions"}],"predecessor-version":[{"id":4106,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=\/wp\/v2\/posts\/1606\/revisions\/4106"}],"wp:attachment":[{"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1606"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1606"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.unicoda.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1606"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}