Hello!
I have searched around on google and github without finding any puppet
module for managing VirtualBox installations.
I''ve seen some modules for xen, but none that works out of the box on
ubuntu. For what I know, xen need a special build kernel or some
kernel modules.
Here is my start... any ideas or suggestions?
class virtualbox {
# Install
package { virtualbox-ose:
name => $operatingsystem ? {
default => "virtualbox-ose",
},
ensure => present,
}
package { virtualbox-ose-modules-generic:
name => $operatingsystem ? {
default =>
"virtualbox-ose-modules-generic",
},
ensure => present,
}
package { bridge-util:
name => $operatingsystem ? {
default => "bridge-utils",
},
ensure => present,
}
}
define createvm($name, $basefolder = ''/vbox'') {
# VBoxManage createvm -name $name -basefolder $basefolder
#
}
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to
puppet-users+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en
-~----------~----~----~----~------~----~------~--~---
That looks pretty good to me. I''ve been working on the same thing and
your
method looks a lot neater. The difficulty I''ve found, is the define
statement for the vm itself which I''ve ended up separating as a
separate
module / class called vboxinstance. It''s still being worked on so
it''s not
worth anyone relying on the following but I''ve included my workings as
an
idea:-
vboxinstance.pp
define vboxvm::vboxinstance
(vboxif=$vboxif,vboxip=$vboxip,vboxname=$vboxname,vboxpath=$vboxpath,domain_name=$domain_name,
dnsserver1=$dnsserver1,gateway=$gateway,netmask=$netmask,macaddress=$macaddress,
memory=$memory, cpu_count=$cpu_count, ) {
exec { "create-vboxvm":
command => "VBoxManage -nologo createvm -name $vboxname -register
-memory 512MB -vram 1 -accelerate3d off -acpi on -ioapic off -pae off
-monitorcount 1 -biosbootmenu disabled -boot1 disk -boot2 net
-cableconnected1 on -nic1 hostif -hostifdev1 $vboxname -macaddress1
$macaddress -vrdpport 3390",
notify => Exec["create-vboxvdi"]
}
exec { "create-vboxvdi":
command => "VBoxManage createvdi -filename $vboxname.vdi -size 6000
-register",
notify => Exec["modify-vboxvm"]
}
exec { "modify-vboxvm":
command => "VBoxManage modifyvm $vboxname -hda $vboxname.vdi",
notify => Exec["start-vboxvm"]
}
exec { "start-vboxvm":
command => "VBoxManage startvm $vboxname -type vrdp",
}
The plan is for the nodes.pp to contain the definition name as follows:-
node ''vmhost.test.com'' {
virtualbox::vboxinstance { "vbox1":
vboxif => "bnx0",
vboxip => "10.0.89.95",
vboxname => "vbox1",
zonepath => "/zfs/vbox1",
domain_name => "test.com",
dnsserver1 => "10.0.136.11",
netmask =>"255.255.255.0",
gateway => "10.0.89.1",
}
virtualbox::vboxinstance { "vbox2":
vboxif => "bnx0",
:: :: ::
etc
}
Cheers
Paul
2009/4/1 Rolfs <google@krev.no>
>
> Hello!
>
> I have searched around on google and github without finding any puppet
> module for managing VirtualBox installations.
>
> I''ve seen some modules for xen, but none that works out of the box
on
> ubuntu. For what I know, xen need a special build kernel or some
> kernel modules.
>
> Here is my start... any ideas or suggestions?
>
>
> class virtualbox {
>
> # Install
> package { virtualbox-ose:
> name => $operatingsystem ? {
> default => "virtualbox-ose",
> },
> ensure => present,
> }
> package { virtualbox-ose-modules-generic:
> name => $operatingsystem ? {
> default =>
"virtualbox-ose-modules-generic",
> },
> ensure => present,
> }
> package { bridge-util:
> name => $operatingsystem ? {
> default => "bridge-utils",
> },
> ensure => present,
> }
>
> }
> define createvm($name, $basefolder = ''/vbox'') {
> # VBoxManage createvm -name $name -basefolder $basefolder
> #
> }
>
> >
>
--
Paul Matthews
----------------------------------------------------------------------
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Puppet Users" group.
To post to this group, send email to puppet-users@googlegroups.com
To unsubscribe from this group, send email to
puppet-users+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/puppet-users?hl=en
-~----------~----~----~----~------~----~------~--~---
paul matthews wrote:> define vboxvm::vboxinstance > (vboxif=$vboxif,vboxip=$vboxip,vboxname=$vboxname,vboxpath=$vboxpath,domain_name=$domain_name, > dnsserver1=$dnsserver1,gateway=$gateway,netmask=$netmask,macaddress=$macaddress, > memory=$memory, cpu_count=$cpu_count, ) { > > exec { "create-vboxvm": > command => "VBoxManage -nologo createvm -name $vboxname -register > -memory 512MB -vram 1 -accelerate3d off -acpi on -ioapic off -pae off > -monitorcount 1 -biosbootmenu disabled -boot1 disk -boot2 net > -cableconnected1 on -nic1 hostif -hostifdev1 $vboxname -macaddress1 > $macaddress -vrdpport 3390", > notify => Exec["create-vboxvdi"] > }This is a good idea. I got some good ideas of your last post. I''ve been thinking and trying this today. Maybe it is less complicated to create a template file and install them as /etc/init.d/vbox- $vbosname scripts pr virtual machine and let the init.d script generate the virtual disk and create the vm if it does not exitst. Just making puppet install the init.d-startup script and make sure it runs on the right server. Looks like we use the different VBoxManage parameter. I''ve tried the one available from the ubuntu repo. I think I need to use the non-free version of VirtualBox to enable the "headless startup" as I understood if from this bugreport: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=475202 Regards Rolf --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---
Presenting my first puppet module for virtualbox: http://github.com/rolfs/puppet-virtualbox/tree/master Regards Rolf Rolfs wrote:> I''ve been thinking and trying this today. Maybe it is less complicated > to create a template file and install them as /etc/init.d/vbox- > $vbosname scripts pr virtual machine and let the init.d script > generate the virtual disk and create the vm if it does not exitst. > Just making puppet install the init.d-startup script and make sure it > runs on the right server.--~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com To unsubscribe from this group, send email to puppet-users+unsubscribe@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---