Hi, When i tried the above solution, i face few challanges:
1. I'm able to add VMPayload via CURL, but not via JavaSDK. 2. When i add VMPayload via CURL, sysprep fails with this message "windows could not parse or process the unattend answer file [a:\sysprep.inf] for pass [oobeSystem]. A component or setting specified in the answer file does not exist." On Tue, Apr 8, 2014 at 12:32 PM, Omer Frenkel <ofren...@redhat.com> wrote: > > > ----- Original Message ----- > > From: "Tejesh M" <tejes...@gmail.com> > > To: "Itamar Heim" <ih...@redhat.com> > > Cc: "users@oVirt.org" <users@ovirt.org> > > Sent: Monday, April 7, 2014 4:59:16 PM > > Subject: Re: [Users] Cloud-init for Windows > > > > Hi, > > > > I tried as you suggested, but floppy is not getting attached it seems. > below > > is the code > > > > > > > > Steps followed: > > > > I. Create windows VM > > II. installed host agent > > III. To seal a Windows virtual machine with sysprep > > > > > > 1. In the Windows virtual machine to be used as a template, open a > > command line terminal and type regedit . > > 2. The Registry Editor window displays. On the left pane, expand > > HKEY_LOCAL_MACHINE → SYSTEM → SETUP . > > 3. On the main window, right click to add a new string value using > New → > > String Value . Right click on the string value file and select > Modify . > > When the Edit String dialog box displays, fill in the provided text > > boxes: > > > > > > * Value name: UnattendFile > > * Value data: a:\sysprep.xml > > 4. Launch sysprep from C:\Windows\System32\sysprep\sysprep.exe > > > > > > * Under System Cleanup Action , select Enter System > > Out-of-Box-Experience (OOBE) . > > * Tick the Generalize checkbox if you need to change the > computer's > > system identification number (SID). > > * Under Shutdown Options , select Shutdown . > > > > > > Click OK . The virtual machine will now go through the sealing process > and > > shut down automatically. > > > > > > > > > > > > > > > > IV. > > > > > > org.ovirt.engine.sdk.decorators.VM vm1 = api.getVMs().get(vmName); > > Payloads payloads = new Payloads(); > > Payload payload = new Payload(); > > payload.setType("floppy"); > > Files payloadFiles = new Files(); > > File payloadFile = new File(); > > payloadFile.setName("sysprep.xml"); > > payloadFile.setContent("<?xml version=\"1.0\" encoding=\"utf-8\"?> > <unattend > > xmlns=\"urn:schemas-microsoft-com:unattend\"> FILE CONTENT > "</unattend>"); > > payloadFiles.getFiles().add(payloadFile); > > payload.setFiles(payloadFiles); > > vm1.setPayloads(payloads); > > Action action = new Action(); > > vm1.start(action); > > > > > > i guess you need to use CDATA tags in order to pass xml content. > im not sure about CLI, but if you use curl it should look like this: > (credit to James W. Mills for providing this info) > > 1) Create a payload file - Mine looked like this (payload.dat): > > <vm> > <payloads> > <payload type='floppy'> > <files> > <file> > <name>sysprep.inf</name> > <content><![CDATA[ > <THE RAW SYSPREP XML> > ]]> > </content> > <type>BASE64</type> > </file> > </files> > </payload> > </payloads> > </vm> > > Where I have "<THE RAW SYSPREP XML>", I just dumped a full sysprep XML > file. Just make sure it is in between the CDATA tags so it is escaped > properly. > > 2) Upload the payload into the VM: > > # curl -X PUT -H "Accept: application/xml" -H "Content-Type: > application/xml" -k -u admin@internal:<pass> -d @payload.dat https:// > <server>/api/vms/<vm-id> > > The URL is simply the full path of the VM, which I obtained by parsing > "api/vms" > > 3) Boot the machine - Assuming the sysprep information is correct, all > the sysprep settings will be applied. > > > > > On Thu, Mar 27, 2014 at 3:52 PM, Itamar Heim < ih...@redhat.com > wrote: > > > > > > On 03/27/2014 06:18 AM, Tejesh M wrote: > > > > > > Can you guide me on sysprep with sample code & sysprep file? > > > > > > just launch a windows VM, look at the generated sysprep file we pass to > the > > VM via the floppy disk. > > then pass it as a payload as-is. > > then try to change what you want. > > > > > > > > > > On Thu, Mar 27, 2014 at 3:16 PM, Itamar Heim < ih...@redhat.com > > <mailto: ih...@redhat.com >> wrote: > > > > On 03/27/2014 05:33 AM, Tejesh M wrote: > > > > Hi All, > > > > I was doing google to see if i can set Hostname,Password & IP > > details > > for Windows server from RHEV-M. I got to know that we can create VM > > Payload & send that to Windows VM (installed with Cloud-init) > > > > Refer this link > > http://www.cloudbase.it/cloud- __init-for-windows-instances/# > __comment-9411 > > < http://www.cloudbase.it/ cloud-init-for-windows- > instances/#comment-9411 > > > > > Cloud-init expects Meta-data & User-Data file to be sent either via > > Config Drive or via HTTP. I'm trying to achive this via ConfigDrive > > (created using VM Payload). > > > > > > note you can also just pass the full sysprep file as a payload > > yourself via the API, and set all these items in it. > > > > > > But i'm wondering what should be the format of this two files > > (Meta-data > > & User-data). Have any1 tried this? If yes, would request to share > > sample for both the files with setting Hostname, Password & IP > > details. > > > > > > just launch a linux VM and check the file we create? > > > > > > Java code: > > > > org.ovirt.engine.sdk.__ decorators.VM vm1 = > > api.getVMs().get(vmName); > > Payloads payloads = new Payloads(); > > Payload payload = new Payload(); > > payload.setType("cdrom"); > > > > Files payloadFiles = new Files(); > > File payloadFile = new File(); > > payloadFile.setName("meta-__ data.txt"); > > payloadFile.setContent("__ hostname:"+vmName); > > payloadFiles.getFiles().add(__ payloadFile); > > payload.setFiles(payloadFiles) __; > > vm1.setPayloads(payloads); > > Action action = new Action(); > > vm1.start(action); > > > > -- > > Thanks & Regards > > Tejesh > > > > > > > > > > > > -- > > Thanks & Regards > > Tejesh > > > > > > > > > > -- > > Thanks & Regards > > Tejesh > > > > _______________________________________________ > > Users mailing list > > Users@ovirt.org > > http://lists.ovirt.org/mailman/listinfo/users > > > -- Thanks & Regards Tejesh
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users