Everything is a Freaking DNS problem - vagrant http://127.0.0.1:8080/blog/taxonomy/term/1439/0 en Vagrant and Drupal, a winning team http://127.0.0.1:8080/blog/vagrant-and-drupal-winning-team <p>While heading back home from DrupalCon Munich after 4 days of good interaction with lots of Drupal folks.<br /> I realized to my big suprise that there are a lot of people using Vagrant to make sure that developers are not working on platforms they invented their own. Lots of people have realized that "It works on my computer" is not something they want to hear from a developer and are reaching out to give them viable solutions to work on shared and reproducible solutions. </p> <p>There were 2 talks proposing solutions to the problem, </p> <p>the first one was ..<a href="http://munich2012.drupal.org/program/sessions/fearless-development-drush-vagrant-and-aegir" rel="nofollow">Fearless development with Drush, Vagrant and Aegir</a> by <a href="http://ergonlogic.com/" rel="nofollow">Christopher Gervais </a> He talked about Drush VAgrant Integraion and how <a href="http://drupal.org/project/drush-vagrant" rel="nofollow"> extentions to Drush</a> allow for easy vagrant integration , bridging this gap allows rupal developers to use a tool they are already familiar with </p> <p>The second one was Jochen Lillich who explained how he us using Vagrant an Chef for this purpose his talk titled <a href="http://munich2012.drupal.org/program/sessions/use-datacenter-tools-make-your-dev-life-easier" rel="nofollow">Use datacenter tools to make your dev life easier</a> has been posted already.</p> <p>During the Vagrant BOF , I briefly ran over @patrickdebois old slides on Vagrant after which people started discussing their use cases.. 2 other projects came up </p> <p>First is <a href="https://github.com/manarth/oscar" rel="nofollow">Project Oscar</a> which aims at providing developers with a default Drupal development environment in a Jiffy. they do this by providing a bunch of puppetmanifests that sets up a working environment.</p> <p>And the second one is <a href="https://github.com/myplanetdigital/ariadne" rel="nofollow">Ariadne</a> which is a standardized virtual machine development evironment for easily developing Drupal sites in a local sandbox that is essentially identical to a fully-configured hosted solution. It attempts to emulate a dedicated Acquia/Pantheon server as closely as possible, with added development tools. Project Ariadne is just like the examples from Jochen Lillich based on Chef</p> <p>With all of these tools and examples around , there should be no excuses anymore for Drupal developers to hack on their own machine and tell the systems people "It works on my machine" (let alone to hack in production).</p> http://127.0.0.1:8080/blog/vagrant-and-drupal-winning-team#comments chef devops drupal puppet vagrant Sat, 25 Aug 2012 21:51:31 +0000 Kris Buytaert 1071 at http://127.0.0.1:8080/blog Our #monitoringsucks rpm is repository available http://127.0.0.1:8080/blog/our-monitoringsucks-rpm-repository-available <p>Not only our Rubygems Builds have changed, but also my internal #monitoringsucks repository.</p> <p>You might have noticed a variety of vagrant- projects on my github acount</p> <p><a href="http://github.com/KrisBuytaert/vagrant-ganglia" rel="nofollow">http://github.com/KrisBuytaert/vagrant-ganglia </a><br /> <a href="//github.com/KrisBuytaert/vagrant-graphite" rel="nofollow">http://github.com/KrisBuytaert/vagrant-graphite</a><br /> <a href="http://github.com/KrisBuytaert/vagrant-puppet-logstash" rel="nofollow">http://github.com/KrisBuytaert/vagrant-puppet-logstash,</a><br /> Being the #monitoringsucks part of them. All of those Vagrant projects are basically my test setups to play with those new tools.</p> <p>They contain a bunch of puppet modules that install and configure these tools. (Note that they mostly consist of<br /> of git submodules to other puppet module repositories.</p> <p>Given the fact that I also like to have my software cleanly installed from a package, that means that some of these tools had to be packaged, or I had to create a personal / internal repository which had packages from upstream that were hiding on the internet available.</p> <p>I've forked of this repository off the internal Inuits epository so you all can also benefit from these efforts.<br /> (You gotta love pulp :))</p> <p>That means you can now install all of the above mentionned #monitoringsucks tool from our public repo on </p> <p><div class="geshifilter"><pre class="text geshifilter-text" style="font-family:monospace;"><ol><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">yumrepo { 'monitoringsucks':</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> baseurl =&gt; 'http://pulp.inuits.eu/pulp/repos/monitoring',</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> descr =&gt; 'MonitoringSuck at Inuits',</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> gpgcheck =&gt; '0',</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">}</div></li></ol></pre></div></p> <p>Patches to both the Vagrant projects and the puppet modules are welcome ...</p> http://127.0.0.1:8080/blog/our-monitoringsucks-rpm-repository-available#comments devops ganglia graphite logstash monitoring monitoringsucks puppet repo vagrant Sat, 11 Aug 2012 19:49:39 +0000 Kris Buytaert 1068 at http://127.0.0.1:8080/blog FlossUK and Puppetcamp Edinburgh http://127.0.0.1:8080/blog/flossuk-and-puppetcamp-edinburgh <p>I've just finished presenting my talk on how I currently work on Puppet modules at Puppetcamp here in Edinburgh where I've been for the week talking on both FlossUK 2012 and Puppetcamp.</p> <div style="width:425px" id="__ss_12093262"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/KrisBuytaert/7-tools-for-your-devops-stack" title="7 tools for your devops stack" target="_blank">7 tools for your devops stack</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/12093262" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe><br /> <div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/KrisBuytaert" target="_blank">Kris Buytaert</a> </div> </div> <p>Earlier this week I opened FlossUK 2012 with my talk on 7 tools for your devops stack </p> <div style="width:425px" id="__ss_12130149"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/KrisBuytaert/how-ihackonpuppetmodules" title="How I hack on puppet modules" target="_blank">How I hack on puppet modules</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/12130149" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe><br /> <div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/KrisBuytaert" target="_blank">Kris Buytaert</a> </div> </div> http://127.0.0.1:8080/blog/flossuk-and-puppetcamp-edinburgh#comments conference devops graphite logstash mcollective puppet puppetcamp vagrant Fri, 23 Mar 2012 14:49:47 +0000 Kris Buytaert 1064 at http://127.0.0.1:8080/blog Installing Vagrant, on Ubuntu Natty http://127.0.0.1:8080/blog/installing-vagrant-ubuntu-natty <p>(Warning some Ubuntu ranting ahead) </p> <p><div class="geshifilter"><pre class="text geshifilter-text" style="font-family:monospace;"><ol><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">apt-get install virtualbox-ose </div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">apt-get install rubygems</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">gem install vagrant</div></li></ol></pre></div></p> <p>That's what I assumed it would take me to install vagrant on a spare Ubuntu (Natty) laptop.</p> <p>Well it's not. after that I was greeted with some weirdness.</p> <p><div class="geshifilter"><pre class="text geshifilter-text" style="font-family:monospace;"><ol><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">$vagrant</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">vagrant: command not found...</div></li></ol></pre></div></p> <p>Yet gem list --local showed the vagrant gem installed.</p> <p><div class="geshifilter"><pre class="text geshifilter-text" style="font-family:monospace;"><ol><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">$ruby</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">ruby: command not found</div></li></ol></pre></div></p> <p>I looked twice, checked again and indeed it seems you can install rubygems on natty with no ruby installed #dazedandconfused</p> <p>So unlike other distro's on Ubuntu doesn't add the rubygems binary path to it's default path<br /> After adding that to my .bashrc things started working better.</p> <p>The active reader has noticed that by now half of the Twittersphere was pointing me to the already implemented<br /> above solution and the other half was telling me to not install rubygems using apt-get, or to use rvm for all my rubygem troubles</p> <p>Apart from the point that if you need tools to like rvm to fix things that are fundamentally broken, the fact is that joe average java developer doens't want to be bothered with RubyGem hell , he just wants to do apt-get install Vagrant and get on with his real work, and that's exactly what I'd expect from Linux for human beings</p> <p>I'd expect any junior guy to be able to go to vagrantup.com read the 4 commands on the main page and be up and running<br /> Coz that's how it works on my Bleeding Edge Enterprise Development Distro, the one I usually would not advise those people (and my mother) to use.</p> http://127.0.0.1:8080/blog/installing-vagrant-ubuntu-natty#comments ran ubuntu vagrant Thu, 29 Dec 2011 18:31:03 +0000 Kris Buytaert 1055 at http://127.0.0.1:8080/blog Using Veewee http://127.0.0.1:8080/blog/using-veewee <p>With @dancarley and @patrickebois just discussing the origin of the name of Veewee I figured I still had that piece of documentation I wrote up for myselve flying around ... </p> <p>So with no other reason than having my docs mirrored on the internet . </p> <p><div class="geshifilter"><pre class="text geshifilter-text" style="font-family:monospace;"><ol><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">gem install veewee</div></li></ol></pre></div></p> <p><div class="geshifilter"><pre class="text geshifilter-text" style="font-family:monospace;"><ol><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">veewee templates</div></li></ol></pre></div><br /> shows you what templates we have around ..</p> <p><div class="geshifilter"><pre class="text geshifilter-text" style="font-family:monospace;"><ol><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">$veewee init natty ubuntu-11.04-server-amd64</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">Init a new box natty, starting from template ubuntu-11.04-server-amd64</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">The basebox 'natty' has been successfully created from the template ''ubuntu-11.04-server-amd64'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">You can now edit the definition files stored in definitions/natty</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">or build the box with:</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">vagrant basebox build 'natty'</div></li></ol></pre></div></p> <p>As noted this will generate the definition for your natty box,<br /> It will create a definition.rb file which describes your box.<br /> A preseed (or kickstart or similar file) and a postinstall file</p> <p>The next step is then to use vagrant to build this basebox<br /> <div class="geshifilter"><pre class="text geshifilter-text" style="font-family:monospace;"><ol><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">$ vagrant basebox build natty</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">&nbsp;</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">Verifying the isofile ubuntu-11.04-server-amd64.iso is ok.</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">Creating vm natty : 384M - 1 CPU - Ubuntu_64</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">Creating new harddrive of size 10140</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">VBoxManage createhd --filename '/home/sdog/VirtualBox VMs/natty/natty.vdi' --size '10140' --format vdi &gt; /dev/null</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">Attaching disk: /home/sdog/VirtualBox VMs/natty/natty.vdi</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">Mounting cdrom: /home/sdog/iso/ubuntu-11.04-server-amd64.iso</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">Waiting for the machine to boot</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">&nbsp;</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">Typing:[1]: &lt;Esc&gt;&lt;Esc&gt;&lt;Enter&gt;</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">Typing:[2]: /install/vmlinuz noapic preseed/url=http://192.168.10.101:7122/preseed.cfg</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">Typing:[3]: debian-installer=en_US auto locale=en_US kbd-chooser/method=us</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">Typing:[4]: hostname=natty</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">Typing:[5]: fb=false debconf/frontend=noninteractive</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">Typing:[6]: keyboard-configuration/layout=USA keyboard-configuration/variant=USA console-setup/ask_detect=false </div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">Typing:[7]: initrd=/install/initrd.gz -- &lt;Enter&gt;</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">Done typing.</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">&nbsp;</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">Starting a webserver on port 7122</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">Serving file /home/sdog/definitions/natty/preseed.cfg</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">&nbsp;</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">Waiting for ssh login with user vagrant to sshd on port =&gt; 7222 to work</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">.....................................................................................................................................................Transferring /tmp/vbox.version20110822-6766-1xcca1e-0 to .vbox_version</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">..</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">&nbsp;</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">&nbsp;</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">Step [0] was successfully - saving state</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">&nbsp;</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">Waiting for ssh login with user vagrant to sshd on port =&gt; 7222 to work</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">.Transferring /home/sdog/definitions/natty/postinstall.sh to postinstall.sh</div></li></ol></pre></div><br /> Plenty more output here !</p> <p>Be very patient .. you will see VirtualBox launch a VM and start installing it ..</p> <p>The next steps are clear .. vagrant tells you what you can do next</p> <p><div class="geshifilter"><pre class="text geshifilter-text" style="font-family:monospace;"><ol><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">Now you can:</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">- verify your box by running : vagrant basebox validate natty</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">- export your vm to a .box file by running : vagrant basebox export natty</div></li></ol></pre></div></p> <p>So after validating it , you can now export the basebox and share it with other people.</p> <p>The next step is to actually use that box in your own Vagrant setup, for that you need to import the box into your box collection</p> <p><div class="geshifilter"><pre class="text geshifilter-text" style="font-family:monospace;"><ol><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">$ vagrant box add 'natty' 'natty.box'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">[vagrant] Downloading with Vagrant::Downloaders::File...</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">[vagrant] Copying box to temporary location...</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">[vagrant] Extracting box...</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">[vagrant] Verifying box...</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">[vagrant] Cleaning up downloaded box...</div></li></ol></pre></div></p> <p>To verify just run</p> <p><div class="geshifilter"><pre class="text geshifilter-text" style="font-family:monospace;"><ol><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">$ vagrant box list</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">Centos6</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">MyCentOS2</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">debian</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">natty</div></li></ol></pre></div></p> <p>your freslhy imported box should be in the list .</p> <p>You can now use<br /> <div class="geshifilter"><pre class="text geshifilter-text" style="font-family:monospace;"><ol><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">config.vm.box = &quot;natty&quot;</div></li></ol></pre></div> to refer to the fresly imported box in your Vagrant file, a file that can be created by running vagrant init, or copying around another Vagrant template ..</p> <p>After that .. regular vagrant fun starts, up, provision, provision, provision, destroy, and so forth ..</p> http://127.0.0.1:8080/blog/using-veewee#comments devops puppet vagrant veewee Wed, 24 Aug 2011 08:41:34 +0000 Kris Buytaert 1049 at http://127.0.0.1:8080/blog And then vagrant gave up ... for a while http://127.0.0.1:8080/blog/and-then-vagrant-gave-while <p>Don't you just love Ruby errors ... like the one below ? </p> <p>Don't they almost make Java stack traces look readable ?<br /> 57 lines of jibberish ... where all I wanted to read was "VirtualBox in error state, check gui" </p> <p>People like <a href="https://twitter.com/#!/sonofhans" rel="nofollow">Randall Hanssen</a> deserve much more visibility .. they do understand how to write a good error message and there are lots of projects that need improvement there.</p> <p>Anywhow... vagrant had suddenly stopped working on me with the error below </p> <p>Turned out that I had deleted some unused Virtualbox images , not from the VirtualBox gui and therefore Virtualbox didn't want to play nice ..</p> <p>Upon starting the VirtualBox gui and cleaning up the images there , everything started working again ..</p> <p>But the error wasn't really helpfull .. </p> <p><div class="geshifilter"><pre class="text geshifilter-text" style="font-family:monospace;"><ol><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">vagrant up </div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">/usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/com/implementer/ffi.rb:95:in `call_and_check': Error in API call to get_teleporter_enabled: 2147942405 (VirtualBox::Exceptions::FFIException)</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/com/implementer/ffi.rb:69:in `call_vtbl_function'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/com/implementer/ffi.rb:36:in `read_property'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/com/abstract_interface.rb:122:in `read_property'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/com/abstract_interface.rb:64:in `teleporter_enabled'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/abstract_model/interface_attributes.rb:93:in `send'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/abstract_model/interface_attributes.rb:93:in `spec_to_proc'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/abstract_model/interface_attributes.rb:32:in `call'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/abstract_model/interface_attributes.rb:32:in `load_interface_attribute'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/abstract_model/interface_attributes.rb:13:in `load_interface_attributes'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/abstract_model/interface_attributes.rb:12:in `each'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/abstract_model/interface_attributes.rb:12:in `load_interface_attributes'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/vm.rb:251:in `initialize_attributes'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/vm.rb:246:in `initialize'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/vm.rb:229:in `new'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/vm.rb:229:in `populate_array_relationship'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/vm.rb:228:in `each'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/vm.rb:228:in `populate_array_relationship'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/vm.rb:218:in `populate_relationship'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/abstract_model/relatable.rb:242:in `populate_relationship'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/abstract_model.rb:215:in `populate_relationship'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/abstract_model/dirty.rb:129:in `ignore_dirty'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/abstract_model.rb:215:in `populate_relationship'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/global.rb:93:in `load_relationship'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/abstract_model/relatable.rb:192:in `read_relationship'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/abstract_model/relatable.rb:146:in `vms'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/vm.rb:185:in `all'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/virtualbox-0.8.3/lib/virtualbox/vm.rb:193:in `find'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/vagrant-0.7.2/lib/vagrant/vm.rb:13:in `find'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/vagrant-0.7.2/lib/vagrant/environment.rb:378:in `load_vms!'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/vagrant-0.7.2/lib/vagrant/environment.rb:377:in `each'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/vagrant-0.7.2/lib/vagrant/environment.rb:377:in `load_vms!'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/vagrant-0.7.2/lib/vagrant/environment.rb:144:in `vms'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/vagrant-0.7.2/lib/vagrant/environment.rb:180:in `multivm?'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/vagrant-0.7.2/lib/vagrant/command/helpers.rb:19:in `target_vms'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/vagrant-0.7.2/lib/vagrant/command/up.rb:8:in `execute'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor/task.rb:22:in `send'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor/task.rb:22:in `run'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor/invocation.rb:118:in `invoke_task'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor/invocation.rb:124:in `invoke_all'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/vagrant-0.7.2/lib/vagrant/config.rb:115:in `map'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor/core_ext/ordered_hash.rb:73:in `each'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor/invocation.rb:124:in `map'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor/invocation.rb:124:in `invoke_all'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor/group.rb:226:in `dispatch'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor/invocation.rb:109:in `send'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor/invocation.rb:109:in `invoke'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/vagrant-0.7.2/lib/vagrant/cli.rb:45:in `up'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor/task.rb:22:in `send'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor/task.rb:22:in `run'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor/invocation.rb:118:in `invoke_task'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor.rb:263:in `dispatch'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/thor-0.14.6/lib/thor/base.rb:389:in `start'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/lib/ruby/gems/1.8/gems/vagrant-0.7.2/bin/vagrant:15</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/bin/vagrant:19:in `load'</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal"> from /usr/bin/vagrant:19</div></li></ol></pre></div></p> http://127.0.0.1:8080/blog/and-then-vagrant-gave-while#comments devops puppet vagrant virtualbox Mon, 02 May 2011 20:31:17 +0000 Kris Buytaert 1041 at http://127.0.0.1:8080/blog Vagrant & Rubylibs http://127.0.0.1:8080/blog/vagrant-rubylibs <p>I was testing some MySQL puppet modules on my Vagrant box earlier this week and one of them required augeas.<br /> I kept running into "Could not find a default provider for augeas", however all the appropriate augeas , augeas-lib and ruby-augeas packages were installed. I inspected the different ruby directories and the files were perfectly in /usr/lib/ruby/site_ruby/1.8 where I expected them. </p> <p>With all the files seemd to be in the right place, my next option was to strace a small ruby script that included augeas, guess what that showed .. </p> <p><div class="geshifilter"><pre class="text geshifilter-text" style="font-family:monospace;"><ol><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">stat64(&quot;/opt/ruby/lib/ruby/site_ruby/1.8/augeas.rb&quot;, 0xbfd2af1c) = -1 ENOENT (No such file or directory)</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">stat64(&quot;/opt/ruby/lib/ruby/site_ruby/1.8/augeas.so&quot;, 0xbfd2af1c) = -1 ENOENT (No such file or directory)</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">stat64(&quot;/opt/ruby/lib/ruby/site_ruby/1.8/i686-linux/augeas.rb&quot;, 0xbfd2af1c) = -1 ENOENT (No such file or directory)</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">stat64(&quot;/opt/ruby/lib/ruby/site_ruby/1.8/i686-linux/augeas.so&quot;, 0xbfd2af1c) = -1 ENOENT (No such file or directory)</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">stat64(&quot;/opt/ruby/lib/ruby/site_ruby/augeas.rb&quot;, 0xbfd2af1c) = -1 ENOENT (No such file or directory)</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">stat64(&quot;/opt/ruby/lib/ruby/site_ruby/augeas.so&quot;, 0xbfd2af1c) = -1 ENOENT (No such file or directory)</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">stat64(&quot;/opt/ruby/lib/ruby/vendor_ruby/1.8/augeas.rb&quot;, 0xbfd2af1c) = -1 ENOENT (No such file or directory)</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">stat64(&quot;/opt/ruby/lib/ruby/vendor_ruby/1.8/augeas.so&quot;, 0xbfd2af1c) = -1 ENOENT (No such file or directory)</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">stat64(&quot;/opt/ruby/lib/ruby/vendor_ruby/1.8/i686-linux/augeas.rb&quot;, 0xbfd2af1c) = -1 ENOENT (No such file or directory)</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">stat64(&quot;/opt/ruby/lib/ruby/vendor_ruby/1.8/i686-linux/augeas.so&quot;, 0xbfd2af1c) = -1 ENOENT (No such file or directory)</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">stat64(&quot;/opt/ruby/lib/ruby/vendor_ruby/augeas.rb&quot;, 0xbfd2af1c) = -1 ENOENT (No such file or directory)</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">stat64(&quot;/opt/ruby/lib/ruby/vendor_ruby/augeas.so&quot;, 0xbfd2af1c) = -1 ENOENT (No such file or directory)</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">stat64(&quot;/opt/ruby/lib/ruby/1.8/augeas.rb&quot;, 0xbfd2af1c) = -1 ENOENT (No such file or directory)</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">stat64(&quot;/opt/ruby/lib/ruby/1.8/augeas.so&quot;, 0xbfd2af1c) = -1 ENOENT (No such file or directory)</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">stat64(&quot;/opt/ruby/lib/ruby/1.8/i686-linux/augeas.rb&quot;, 0xbfd2af1c) = -1 ENOENT (No such file or directory)</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">stat64(&quot;/opt/ruby/lib/ruby/1.8/i686-linux/augeas.so&quot;, 0xbfd2af1c) = -1 ENOENT (No such file or directory)</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">stat64(&quot;./augeas.rb&quot;, 0xbfd2af1c) = -1 ENOENT (No such file or directory)</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">stat64(&quot;./augeas.so&quot;, 0xbfd2af1c) = -1 ENOENT (No such file or directory)</div></li></ol></pre></div></p> <p>Indeed ... vagrant throws the default ruby to /opt/ruby .. and obviously there were no ruby-augeas files in there.</p> http://127.0.0.1:8080/blog/vagrant-rubylibs#comments ageas devops puppet ruby vagrant Tue, 29 Mar 2011 18:11:32 +0000 Kris Buytaert 1039 at http://127.0.0.1:8080/blog Converting KVM to VirtualBox http://127.0.0.1:8080/blog/converting-kvm-virtualbox <p>I have had most of my test environment, aka puppetmasters, test mysql setups etc running in KVM for the past couple of years .. (yes I`m still using a lot of Xen in production environments, but we've also been using KVM for a while already .. it's a good mix) , Virtual box has always been the lesser loved Virtualization platform , however while playing more and more with Vagrant Up I realized I needed to convirt some boxen (e.g my PuppetMaster) to Virtualbox, and google was really no good help(most people seem to go the other way , or want to use some proprietary tools )</p> <p>So I remembered VBoxManage and apparently I hade blogged about it myselve already ..<br /> I just hate it when I search for stuff and google points right back to <a href="http://www.krisbuytaert.be/blog/kvm-vs-virtualbox">me</a></p> <p>So I converted my puppetmaster's disks</p> <p><div class="geshifilter"><pre class="text geshifilter-text" style="font-family:monospace;"><ol><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">VBoxManage convertdd Emtpy-clone.img PuppetMasterroot.vdi</div></li><li style="font-family: monospace; font-weight: normal;"><div style="font-family: monospace; font-weight: normal; font-style: normal">VBoxManage convertdd puppet-var.img PuppetMastervar.vdi</div></li></ol></pre></div></p> <p>Now when booting the VM in Virtualbox , obviously the kernel panicked .. as my KVM disks are recognised as as /dev/hda and and Virtualbox defaults to /dev/sda and LVM doesn't really like disks to be on another names<br /> No commandline fu here to help me, but using the VirtualBox gui to move the disks to the IDE controller rather than the SATA controller.</p> <p>Now all I need to do is wait for some smart guy who comments that you probably could use VBoxManage storagectl to achieve the same goal :)</p> <p>And wait till Vagrant Up start supporting KVM , so I can move back :)</p> http://127.0.0.1:8080/blog/converting-kvm-virtualbox#comments kvm vagrant virtualbox xen Tue, 22 Feb 2011 22:01:57 +0000 Kris Buytaert 1035 at http://127.0.0.1:8080/blog