{"id":2427,"date":"2011-12-06T18:05:41","date_gmt":"2011-12-06T08:05:41","guid":{"rendered":"http:\/\/www.flamingspork.com\/blog\/?p=2427"},"modified":"2011-12-06T18:05:41","modified_gmt":"2011-12-06T08:05:41","slug":"puppet-snippet-for-setting-up-a-machine-to-build-drizzle","status":"publish","type":"post","link":"https:\/\/www.flamingspork.com\/blog\/2011\/12\/06\/puppet-snippet-for-setting-up-a-machine-to-build-drizzle\/","title":{"rendered":"Puppet snippet for setting up a machine to build Drizzle"},"content":{"rendered":"<p>You could use this in a Vagrant setup if you like (I&#8217;ve done so for testing).<\/p>\n<p>Step 1)\u00c2\u00a0Set the following in your Vagrantfile:<\/p>\n<pre>Vagrant::Config.run do |config|\r\n  config.vm.box = \"lucid32\"\r\n  config.vm.box_url = \"http:\/\/files.vagrantup.com\/lucid32.box\"\r\n  config.vm.provision :puppet\r\nend<\/pre>\n<p>Step 2) Get puppet-apt helper.<\/p>\n<p>I used <a href=\"https:\/\/github.com\/evolvingweb\/puppet-apt\">https:\/\/github.com\/evolvingweb\/puppet-apt<\/a>\u00c2\u00a0and put it in a manifests\/ directory like so:<\/p>\n<pre>$ mkdir manifests\r\n$ cd manifests\r\n$ git clone git:\/\/github.com\/evolvingweb\/puppet-apt.git<\/pre>\n<p>Step 3) Write your puppet manifest:<\/p>\n<pre>import \"puppet-apt\/manifests\/init.pp\"\r\nimport \"puppet-apt\/manifests\/ppa.pp\"<\/pre>\n<pre>class drizzlebuild {\r\n        apt::ppa { \"ppa:drizzle-developers\/ppa\": }\r\n        package { \"drizzle-dev\":\r\n                  ensure =&gt; latest,\r\n        }\r\n}<\/pre>\n<pre>include drizzlebuild<\/pre>\n<p>Step 4) &#8220;vagrant \u00c2\u00a0up&#8221; and you&#8217;re done! Feel free to build Drizzle inside this VM.<\/p>\n<p>I&#8217;m sure there may be some more proper way to do it all, but that was a pretty neat first intro to me to Puppet and friends :)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>You could use this in a Vagrant setup if you like (I&#8217;ve done so for testing). Step 1)\u00c2\u00a0Set the following in your Vagrantfile: Vagrant::Config.run do |config| config.vm.box = &#8220;lucid32&#8221; config.vm.box_url = &#8220;http:\/\/files.vagrantup.com\/lucid32.box&#8221; config.vm.provision :puppet end Step 2) Get puppet-apt helper. &hellip; <a href=\"https:\/\/www.flamingspork.com\/blog\/2011\/12\/06\/puppet-snippet-for-setting-up-a-machine-to-build-drizzle\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1],"tags":[70,440,441],"class_list":["post-2427","post","type-post","status-publish","format-standard","hentry","category-general","tag-drizzle","tag-puppet","tag-vagrant"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p5a6n8-D9","jetpack-related-posts":[{"id":2424,"url":"https:\/\/www.flamingspork.com\/blog\/2011\/12\/06\/puppet-vagrant-jenkins-automated-bliss\/","url_meta":{"origin":2427,"position":0},"title":"Puppet + Vagrant + jenkins = automated bliss","author":"Stewart Smith","date":"2011-12-06","format":false,"excerpt":"I'm currently teaching myself how to do Puppet. Why? Well, at Percona we support a bunch of platforms for our software. This means we have to maintain a bunch of Jenkins slaves to build the software on. We want to add new machines and have (up until now) maintained a\u2026","rel":"","context":"In &quot;General&quot;","block_context":{"text":"General","link":"https:\/\/www.flamingspork.com\/blog\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3416,"url":"https:\/\/www.flamingspork.com\/blog\/2013\/09\/26\/an-experimental-git-mirror-of-drizzle\/","url_meta":{"origin":2427,"position":1},"title":"An Experimental GIT mirror of Drizzle","author":"Stewart Smith","date":"2013-09-26","format":false,"excerpt":"I've been mirroring a bunch of projects that have their source control in BZR up onto github recently. This turns out to be a bit harder than it sounds for a bunch of reasons that aren't particularly interesting (although having a commit in the bzr repo where the name of\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3655,"url":"https:\/\/www.flamingspork.com\/blog\/2014\/01\/14\/converting-mysql-trees-to-git\/","url_meta":{"origin":2427,"position":2},"title":"Converting MySQL trees to git","author":"Stewart Smith","date":"2014-01-14","format":false,"excerpt":"I have put up a set of scripts on github: https:\/\/github.com\/stewartsmith\/bzr-to-git-conversion-scripts. Why do I need these? Well... if only bzr fast-export|git fast-import worked flawlessly for large, complex and old trees. It doesn't. Basically, when you clone this repo you can run \".\/sync-BLAH.sh\" and it'll pull BZR trees for the project,\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2320,"url":"https:\/\/www.flamingspork.com\/blog\/2011\/03\/16\/drizzle7\/","url_meta":{"origin":2427,"position":3},"title":"Drizzle7","author":"Stewart Smith","date":"2011-03-16","format":false,"excerpt":"We've released Drizzle7! Not only that, we're now calling it Generally Available - a GA release. What does this mean? What does this GA label mean? You could view as a GA label being \"we're pretty confident people aren't going to on mass ask for our heads when they start\u2026","rel":"","context":"In &quot;drizzle&quot;","block_context":{"text":"drizzle","link":"https:\/\/www.flamingspork.com\/blog\/category\/work-et-al\/drizzle-work-et-al\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":3912,"url":"https:\/\/www.flamingspork.com\/blog\/2014\/12\/03\/running-skiboot-opal-on-the-power8-simulator\/","url_meta":{"origin":2427,"position":4},"title":"Running skiboot (OPAL) on the POWER8 Simulator","author":"Stewart Smith","date":"2014-12-03","format":false,"excerpt":"skiboot is open source boot and runtime firmware for OpenPOWER. On real POWER8 hardware, you will also need HostBoot to do this (basically, to make the chip work) but in a functional simulator (such as this one released by IBM) you don't need a bunch of hardware procedures to make\u2026","rel":"","context":"In &quot;code&quot;","block_context":{"text":"code","link":"https:\/\/www.flamingspork.com\/blog\/category\/code\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2456,"url":"https:\/\/www.flamingspork.com\/blog\/2012\/02\/05\/mythremote-a-mythtv-frontend-remote\/","url_meta":{"origin":2427,"position":5},"title":"MythRemote &#8211; a MythTV frontend remote","author":"Stewart Smith","date":"2012-02-05","format":false,"excerpt":"So, neither being someone who has remotely recently written any bit of software involving a desktop GUI and really not being much of a Python hacker, the obvious solution to being annoyed by having to reach for the remote for MythTV when hacking in front of the TV was to\u2026","rel":"","context":"In &quot;General&quot;","block_context":{"text":"General","link":"https:\/\/www.flamingspork.com\/blog\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/2427","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/comments?post=2427"}],"version-history":[{"count":2,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/2427\/revisions"}],"predecessor-version":[{"id":2429,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/posts\/2427\/revisions\/2429"}],"wp:attachment":[{"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/media?parent=2427"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/categories?post=2427"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.flamingspork.com\/blog\/wp-json\/wp\/v2\/tags?post=2427"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}