Vagrant in Fedora

Alex Drahon adrahon at redhat.com
Tue Oct 15 19:06:49 UTC 2013


On 26/09/13 22:09, Alex Drahon wrote:
> On 24/09/13 06:43, Nathanael Noblet wrote:
>> On 09/23/2013 06:37 AM, Alexandre Drahon wrote:
>>> Hi all,
>>>
>>> I wanted to give an update on the status of Vagrant in Fedora 20, I 
>>> just realised it's my first post to the list so I'll take this 
>>> opportunity to introduce myself. I'm Alex, I work at Red Hat as a 
>>> Solution Architect (ie. nothing engineering related), I wrote the 
>>> vagrant-kvm plugin on my spare time to make it work on my Fedora 
>>> laptop, though there's now a (much more qualified) second maintainer 
>>> who is also providing support for Ubuntu through a PPA. Matthew 
>>> asked me if I wanted to work on packaging Vagrant and the KVM plugin 
>>> for Fedora 20, and I foolishly accepted ;)
>>>
>>> It's quite exhilarating having the opportunity to contribute to 
>>> Fedora, and at the same time I feel totally lost. I don't mean this 
>>> as a criticism, it's just this "first week at school" feeling, it 
>>> will take me some time to get an idea of how things work. That said, 
>>> here's the Vagrant situation:
>>>
>>> 1. I have a vagrant RPM that installs and works as expected, there's 
>>> some minimal patching involved which has to do with the fact that 
>>> Vagrant expect to be running in it's own Ruby 1.9.3 environment in /opt
>>> 2. There was also some patching involved to make the plugin system 
>>> work, although I haven't tested plugins extensively (some stuff 
>>> breaks like rubygems loading path) and providing common plugins as 
>>> RPMs looks like the better way in Fedora.
>>> 3. I had to build my own rubygems-childprocess (current Fedora 
>>> package is very old) and rubygems-log4r (not provided in Fedora) 
>>> RPMs, but I don't know how I should submit them (package review 
>>> ticket?). There's a existing ticket for log4r 
>>> https://bugzilla.redhat.com/show_bug.cgi?id=905240, I added it as a 
>>> dependency to the Vagrant ticket.
>>> 4. I've packaged vagrant-kvm as a RPM and it installs, but I'm 
>>> running into serious issues with Policykit. I don't think I'll be 
>>> able to solve that without help, I'm not even sure what's the right 
>>> way to do it.
>>>
>>> So, as a summary:
>>>  - yum install vagrant should work, at which point you need to 
>>> install VirtualBox and it will run as expected
>>>  - vagrant-kvm installs but I don't know how to add the right polkit 
>>> rules (I need help)
>>>
>>> Looks pretty good, right?
>>
>> It does... Since some of the work needed to get this working requires 
>> packages that aren't in fedora already are you able to provide a link 
>> to a bunch of src.rpms of everything needed. I'd like to test and 
>> wanted to help with this feature awhile back but got sidetracked... 
>> However I don't have F20 running on anything so would likely use mock 
>> to compile for F18 and see if I can help resolve/test/do something 
>> like that.
>>
>
> I posted the current source packages here http://srpms.adrahon.org/
>
> Vagrant should work with VirtualBox 
> (http://download.virtualbox.org/virtualbox/4.2.18/VirtualBox-4.2-4.2.18_88780_fedora18-1.x86_64.rpm 
> ).
>
> vagrant-kvm still has issues, not sure it's in a testable state yet.
>

After trying several solutions, I think I have found the right 
compromise and finally have working packages (with a some caveats). 
Again the source packages are at http://srpms.adrahon.org/ :
  - vagrant looks for plugins both in the user's ~/.vagrant.d directory 
and /usr/share/gems for system-wide plugins (like vagrant-kvm)
  - my patched vagrant version looks in /etc/vagrant for the system-wide 
plugin registry
  - I added commands to vagrant plugin to manage registration of 
system-wide plugins (installed with yum)
  - rpm-packaged plugins register/unregister themselves at 
installation/uninstallation

This means that Vagrant's behaviour hasn't changed and we can still 
package plugins as RPMs.

How to test:
  - you need to install rubygem-log4r, then vagrant, then 
rubygem-vagrant-kvm
  - "vagrant init fedora19" (name of your box) then edit the Vagrantfile 
(you need a private network with a 192.168.192.0 address)
  - "vagrant up --provider=kvm" should work

Caveats:
1. polkit integration is a problem, if you don't have an agent you won't 
get the right to connect to the libvirt socket
2. a custom polkit rule works, maybe one should be included (as an example)
3. firewalld blocks nfs connections from the guest to the host, so 
directory sharing will fail. I suppose I need a custom rule, or at least 
give instructions to the user on how to do it, but I don't know how it 
works.

1. Isn't a big problem in most cases because you'll have a desktop 
environment and a polkit agent, I don't know how the console polkit 
agent works.
2. should be provided in the readme file?
3. this is the main issue now, I need some help, I'm sure it's not to 
complex but I don't know if an application package should touch the 
user's firewalld config.

Hope some of you can test it.

Alex
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.fedoraproject.org/pipermail/cloud/attachments/20131015/9862fa33/attachment.html>


More information about the cloud mailing list