Provisioning with vagrant up

webfrank

Member
May 28, 2011
38
1
6
Hi, I had a look to vagrant tool (www.vagrantup.com) which is an interesting project to deploy VM in a very easy fashion. I think it would be interesting to build a proxmox provider plugin which could use the new API.

anyone interested?
 
I'd be !
Integration with automatic provisionning and configuration management solutions is surely on of the next areas of improvement in PVE ecosystem.
 
I see no use for vagrant in proxmox due to the following reasons:
1) Vagrant is more or less providing a subset of proxmox
2) Vagrant is designed to provide desktop VMs while proxmox, as vmware et al, is designed to provide server VMs
3) Vagrant lacks, IMHO, all the building blocks which constitutes an enterprise solution.
 
I'd also be interested; this is something that would be super ideal for offices.

Employee come in, assign a PVE credential, git checkout code, vagrant up, and code happy on a VM provisioned on a central dev server.
 
Having used vagrant quite a bit for testing and developing DevOps stuff, I might be able to address some of your points here.

I see no use for vagrant in proxmox due to the following reasons:
1) Vagrant is more or less providing a subset of proxmox

That's exactly the point. It isn't a replacement. It's a convenience wrapper, so you can reproduce VMs consistently with a command line that isn't much more complex than "vagrant up --provider=proxmox". I've used the vagrant providers for VirtualBox, VMware Workstation and LXC, and its very cool that one Vagrantfile really can produce essentially the same VM on all those different providers.

2) Vagrant is designed to provide desktop VMs while proxmox, as vmware et al, is designed to provide server VMs

The use cases they lay out on the vagrantup website definitely do lean that way, but there are a lot of people using it with Chef and Puppet for server VM stuff.

3) Vagrant lacks, IMHO, all the building blocks which constitutes an enterprise solution.

Yes, precisely. I would love a proxmox provider for vagrant, but my use case would be to be able to better tie in test-kitchen (https://github.com/opscode/test-kitchen) to our continuous integration, leveraging our beefy machines already running Proxmox VE. Test-kitchen lets me test changes to a cookbook on a lot of different operating systems at once by spinning up a new clean VM for each and running the tests. I sure wouldn't mind offloading that VM work from the builder/CI VM to our proxmox cluster, or at least to one of the nodes.

For anyone looking to implement this, the KVM provider here (https://github.com/adrahon/vagrant-kvm) probably has a lot of useful lessons on how to use the base boxes that are already available with KVM/QEMU. Obviously that KVM provider plugin isn't a complete solution for what we'd need here.
 
  • Like
Reactions: mjw
Like brianp I can share some thoughts about dev ops.
I do not think Vagrant is really what you want for managing production servers, it is more useful for testing things.
Tools like puppet or Chef(my preference) are more suited towards provisioning and configuration management for production.

For Chef I recently found this, not tried it myself yet:
http://rubygems.org/gems/knife-proxmox

Right now it only supports openvz, not KVM :(

We are managing well over a hundred VMs inside Proxmox with Chef. (and many more in various clouds like EC2/Azure/etc)
The only thing lacking is a KVM compatible knife plugin to bootstrap new VMs in Proxmox, for now I have to do that manually.

For those of you unfamiliar with dev ops, with Chef and a Proxmox knife plugin you would create new servers using a simple command kinda like this:
Code:
knife proxmox server create --hostname new.webserver.com -r "role[name_of_role_for_your_new_webserver]"

Press enter, watch a new VM get created, chef installed, packages installed, download your website form source control and deploy it.
What used to take hours to manually configure now takes seconds.
Chef even creates my user account, puts my SSH public key in the right place, configures sudo, everything.

I even use Chef to manage the Proxmox servers.
I am so lazy( or is that efficient? ) when I want to setup a couple new Proxmox servers with DRBD I let Chef configure and do the initial DRBD sync for me.:p
All I really do is install Proxmox from ISO, install Chef and tell Chef how I want that server configured.
sysctl tuning, grub boot params, network interfaces, vlans, bonding, you name it Chef does it for me.

We have some websites that are very busy for a few months of the year. We run multiple web servers behind Nginx setup as a reverse proxy.
When I need more web servers I just assign the proper role to a new VM, Chef configures the web server and reconfigures Nginx to load balance across the new servers too.

When everything converges automatically without having to log into a zillion machines and edit zillions of config files, life is good.

Making Proxmox work with Vagrant, Chef, puppet would be a great addition and help Proxmox gain more market share.

Sorry for my rambling, dev ops is my passion.
 
Hi,

Could not agree more with e100, automation (techniques) and DevOps (culture) are such a thrill !
AFAIC, my toys would be called Ansible or Saltstack.

My 2cts
Bests
 
I think you are wrong in your assumption about Vagrant not being suitable for production servers .. that is a misconception. vagrant can be whatever you want it to be, and integrates seemlessly with chef/puppet/ansible/shell-scripts for auto-provisioning the VM being built. So, your chef usage can even be embedded with Vagrant. Besides, I was not aware that proxmox has been limited for only 'production' use ..

Vagrant is attracting a lot of developer support, and there are plugins for openstack, libvirt, kvm, you name it .. You can see a list here Unfortunately, the libvirt and kvm plugins are not fully mature just yet, else I would already be using it on proxmox .. Sometimes, my need for vagrant to work is significant enough to make me decide on using only virtualization platforms that do support it (yes, that is a real fact ).

Yes, vagrant support would be a big plus for proxmox .. I am very very sure about that. And folks who do not need it, can just go right ahead ignoring it and using chef or whatever else works for them.
 
Hello everyone,


those of you who would like to use Proxmox with Vagrant may be interested to hear that we have released our vagrant-proxmox plugin some days ago. It can be installed as a gem from RubyGems.org (https://rubygems.org/gems/vagrant-proxmox) and the source code is available on GitHub (https://github.com/telcat/vagrant-proxmox) (MIT-License).
It utilizes the Proxmox REST-API to perform tasks lik creating/starting/stopping/destroying virtual machines.
We use this Vagrant provider in our Jenkins builds to automatically create and destroy Proxmox VMs on which we then run our integration tests.
Currently this plugin is tailored to our own needs and surely lacks a lot of features. For example only OpenVZ containers are currently supported and some configuration options are missing.


Regards,
Dirk Grappendorf
 
Are these tools only for Linux vm's or can they provision windows guests as well?

Sent from my MT27i using Tapatalk
 
Having the Proxmox API supported in fog.io library would allow others to easily build new things around Proxmox.
Nearly every other cloud service/virtualization platform is supported already:
http://fog.io/about/provider_documentation.html


Hi e100, thanks for the comments about the knife-proxmox gem. I've found it very useful for learning ruby and to help me in my duty . Since the begining, I was looking forward somebody to help me to create the fog.io support, but I haven't enough time and energy to do it myself. So, has anybody implemented it right now? Is there any effort done related with the fog.io?


Thanks in advance
Jorge Moratilla
 
I agree that vagrant-proxmox should be useful.
Not should be, it is!
I submitted a pull-request do vagrant-proxmox. (pull/24, i'm not allowed to pist hyperlinks here) which i use in my environment already. It's possible now to "vagrant up" a qemu vm by cloning a template.

Gerhard
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!