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_88...
).
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