{"id":260,"date":"2009-03-14T11:42:58","date_gmt":"2009-03-14T19:42:58","guid":{"rendered":"http:\/\/jaredrobinson.com\/blog\/?p=260"},"modified":"2009-03-14T11:42:58","modified_gmt":"2009-03-14T19:42:58","slug":"mwrc-puppet-by-andrew-shafer","status":"publish","type":"post","link":"https:\/\/jaredrobinson.com\/blog\/mwrc-puppet-by-andrew-shafer\/","title":{"rendered":"mwrc: Puppet by Andrew Shafer"},"content":{"rendered":"<p>Puppet<br \/>\nby Andrew Shafer, works for Reductive Labs<\/p>\n<p>Code, Tribes, Dawn of Time, Clouds, evolution, opportunity, and triumph<\/p>\n<p>It&#8217;s difficult to automate the download ruby gems because the URL paths are<br \/>\nnot friendly. Isn&#8217;t it interesting that RubyForge.org uses PHP to run?<\/p>\n<p>Idempotence: an important property to have<\/p>\n<p>He likes Debian&#8217;s setup of apache. It&#8217;s easier to work with for setting up<br \/>\nmultiple sites than the way most Linux distributions do it.<\/p>\n<p>He showed several examples of using Puppet to install packages from gem<br \/>\nrepositories and packages.<\/p>\n<p>How do you test your puppet deployment code? The best he&#8217;s come up with is to<br \/>\nuse RSpec to make sure a machine is in the correct configuration, and run<br \/>\ncontinuous integration tests on it with your puppet code.<\/p>\n<p>The Cloud. Anyone can bring up a server for 10 cents per hour, and when you&#8217;re<br \/>\ndone, you turn it off.<\/p>\n<p>Conversation with the audience:<\/p>\n<p>Things get complicated when you&#8217;re using puppet to manage deployment to<br \/>\ndifferent distributions or even platforms. E.g. Debian has two packages for<br \/>\nsomething that is a single package on another. The only way to make sure your<br \/>\npuppet deployment works is to try it and make sure the machine is in the<br \/>\ncorrect state afterward.<\/p>\n<p>Does puppet help you to remove packages? Some providers purge unrequested<br \/>\npackages. It&#8217;s hard to back out a messed up install, and is easier to start<br \/>\nover with a clean slate.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Puppet by Andrew Shafer, works for Reductive Labs Code, Tribes, Dawn of Time, Clouds, evolution, opportunity, and triumph It&#8217;s difficult to automate the download ruby gems because the URL paths are not friendly. Isn&#8217;t it interesting that RubyForge.org uses PHP to run? Idempotence: an important property to have He likes Debian&#8217;s setup of apache. It&#8217;s &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/jaredrobinson.com\/blog\/mwrc-puppet-by-andrew-shafer\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;mwrc: Puppet by Andrew Shafer&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[20,21],"class_list":["post-260","post","type-post","status-publish","format-standard","hentry","category-programming","tag-mtnwestrubyconf","tag-mwrc"],"_links":{"self":[{"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/posts\/260","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/comments?post=260"}],"version-history":[{"count":1,"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/posts\/260\/revisions"}],"predecessor-version":[{"id":261,"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/posts\/260\/revisions\/261"}],"wp:attachment":[{"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/media?parent=260"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/categories?post=260"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jaredrobinson.com\/blog\/wp-json\/wp\/v2\/tags?post=260"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}