resolved the first issue.. Now i'm able to add Payload via JavaSDK also. need help on the 2 issue.
On Tue, Apr 8, 2014 at 4:36 PM, Tejesh M <tejes...@gmail.com> wrote: > 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 > -- Thanks & Regards Tejesh
_______________________________________________ Users mailing list Users@ovirt.org http://lists.ovirt.org/mailman/listinfo/users