-----Original message----- > From:Greg Padgett <[email protected]> > Sent: Monday 19th August 2013 21:16 > To: René Koch <[email protected]> > Cc: ovirt-users <[email protected]> > Subject: Re: [Users] Linux sysprep > > On 08/19/2013 10:17 AM, René Koch (ovido) wrote: > > Hi, > > > > Has anyone an idea what's the easiest way to sysprep Linux (CentOS 6 and > > RHEL 6) machines? > > > > The use case is the following: I want to create a lot of virtual > > machines (e.g. 100) by cloning from one template. > > So I create a master vm, create a template and a pool with 100 vms > > assigned to it and set all 100 vms to prestarted. > > > > The problem is now, that when I run "sys-unconfig" before creating the > > template, which does a "touch /.unconfigured" I have to go through the > > sysconfig-tui and set a new root password for all 100 hosts. > > > > So what I'm looking for is a script like the sysprep tool for windows > > which sets parameters for me automatically. > > I only need to change: > > * Hostname + set DHCP_HOSTNAME in ifcfg-eth0 (Hostname == Pool-VM-Name) > > for some dhcp/ddns magic :) > > * Clear udev network-rules > > * remove SSH-Keys > > * Remove RHN ID and join Satellite/Spacewalk-server > > * root-password,... should stay the same > > > > My first question is: does oVirt provide such a functionality for Linux > > guest out-of-the-box? I couldn't find one. > > > > > > I think I could solve this with virt-sysprep and virt-file, but I'm > > unsure if I can use it with oVirt (or only with plain libvirt): > > http://libguestfs.org/virt-sysprep.1.html > > http://libguestfs.org/virt-edit.1.html > > > > For this tools it's required that the vm is not running, as it changes > > files on the disk. If I'm using a before-vm-start hook, it should be > > save to access the disk and change content with virt-sysprep/virt-file, > > right? > > But do I have access to the disk in a before-vm-start hook? > > If using NFS storage I should be able to access all disks on the > > NFS-share, but for iSCSI/FC-LUNS - are they available on the hypervisor > > in this stage? > > > > > > Another option would be to write a custom script which is started during > > boot and disables itself after successful run (in the same way as > > firstboot - I already have such a script for RHN Satellite/Spacewalk > > joins). The problem here is: How do I get the (oVirt) name of this vm > > (would need something like virt-whoami :) )? Is the (internal oVirt) ID > > of this vm stored somewhere in the filesystem of this vm? I don't think > > so.... > > > > > > Thanks a lot for suggestions, > > René > > > > Hi René, > > You may be able to accomplish at least some of what you want using > Cloud-Init, some features of which we've integrated into oVirt [1]. It > went in recently so may not be in whichever version you're running, but > you can probably borrow some of the concepts to get the job done.
Thanks a lot for your answer - this definitely points me into the right way. > > Just a few ideas: > - create a vm payload [2] and attach it to the VM which can hold your > config info e.g. vm name, which a custom script could pick up. No need > for the latest oVirt with this option. For some strange reason I totally missed the vm payload feature (and it seems to be introduced already in oVirt 3.1 according to the release notes). Can I attach a vm payload via webadmin portal of oVirt 3.2 (and if yes - how?) or only via REST-API? So if I understand this right, I would do the following: - use before_vm_start_hook which creates the payload and updates vm xml definition - add <payloads> with e.g. file name "unattended.txt" andcontent "hostname=pool-vm95" - have script started in host which mounts the floppy, reads the content of unattended.txt and do some magic > - create a Cloud-Init config disk yourself and attach it as a payload, > and let Cloud-Init do the initialization. There are several formats; > oVirt uses Config-Drive-v2. Example at [3]. Depending on the config disk > format, you may need the latest oVirt/vdsm to assign a volume label to the > vm payload. > - use the latest oVirt and its Cloud-Init functionality; for fields not > handled, attach a file and let a script handle it. cloud-init sounds very interesting, but this requires oVirt 3.3, right? I'm running oVirt 3.2 at the moment. Regards, René > > HTH, > Greg > > [1] http://www.ovirt.org/Features/Cloud-Init_Integration > [2] http://www.ovirt.org/Features/VMPayload > [3] > http://docs.openstack.org/trunk/openstack-compute/admin/content/config-drive.html > > _______________________________________________ Users mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/users

