[Users] [rhevm-api] Assign IP address to VM using Java SDK
Juan Hernandez
jhernand at redhat.com
Fri Feb 14 09:36:01 UTC 2014
On 02/14/2014 10:30 AM, Tejesh M wrote:
> Hi,
>
> There is no option in "Initial Run" to set root password & other stuff.
> Have attached screenshots & debug output. Is there any configuration
> needs to be done? or any cloud-init service needs to be started? How do
> integrate cloud-init with RHEV-M?
>
> Thanks & Regards,
> Tejesh
>
You are using the "Run" and "New" options, but you have to use the "Run
Once" option. There, in "Run Once" is where we have cloud-init support
in 3.3.
>
> On Thu, Feb 13, 2014 at 9:50 PM, Juan Hernandez <jhernand at redhat.com
> <mailto:jhernand at redhat.com>> wrote:
>
> On 02/13/2014 05:15 PM, Tejesh M wrote:
> > Actually, i want to automate the vm provisioning through java sdk. and
> > this urgent requirement. Is it possible to automate setting hostname,
> > root password n nic info by any means in 3.3? Also in windows
> > administration password as similar to linux.. kindly help as im new to
> > this..
> >
>
> Yes, setting the hostname, root password and NIC info is possible in
> 3.3, using cloud-init and the Java SDK. I tested this with 3.3 and it
> works correctly.
>
> As you are having problems I suggest to try it manually, from the GUI,
> if it doesn't work then please report the details, so that we can
> diagnose and fix it.
>
> Once it works manually from the GUI, we can see why it doesn't work with
> the SDK, but we will need the output generated when running in debug
> mode.
>
> > On 13 Feb 2014 20:32, "Juan Hernandez" <jhernand at redhat.com
> <mailto:jhernand at redhat.com>
> > <mailto:jhernand at redhat.com <mailto:jhernand at redhat.com>>> wrote:
> >
> > On 02/13/2014 03:59 PM, Shahar Havivi wrote:
> > > On 13.02.14 20:17, Tejesh M wrote:
> > >> 1. The Version is RHEV-M 3.3 & Cloud-init is
> > >> cloud-init-0.6.3-0.12.bzr532.el6.noarch
> > >>
> > >> 2. In Webadmin, i don't find any option to set Cloud-init
> data's.
> > I checked
> > >> under New VM->Initial Run.. Am i looking at the right place?
> > >> How to enable cloud-init support in engine?
> > > You will not found it since you are working in 3.3 and this
> > feature presented
> > > in 3.4.
> > > In 3.3 you can try to set the Cloud-Init via the Run-Once
> button.
> > >
> >
> > In 3.3 you need first to create the VM. Once it is created
> select it,
> > click the "Run Once" button, then click on the plus sign next to
> > "Initial Run", check the "Cloud-Init" box, and populate the fields
> > you want.
> >
> > >>
> > >> I have installed cloud-init package in RHEV-M & also in
> Template.
> > >>
> > >> Please suggest.
> > >>
> > >>
> > >> On Thu, Feb 13, 2014 at 7:31 PM, Juan Hernandez
> > <jhernand at redhat.com <mailto:jhernand at redhat.com>
> <mailto:jhernand at redhat.com <mailto:jhernand at redhat.com>>> wrote:
> > >>
> > >>> On 02/13/2014 02:39 PM, Tejesh M wrote:
> > >>>> Hi All,
> > >>>>
> > >>>> Thanks alot.
> > >>>>
> > >>>> I have created one VM with minimal installation & installed
> > cloud-init
> > >>>> package. And, converted that VM into Template. Then executed
> > the code
> > >>>> given in
> > >>>>
> >
> http://lists.ovirt.org/pipermail/users/2014-February/021302.html , but
> > >>>> no luck, the code is not setting root password.
> > >>>>
> > >>>
> > >>> What version of the engine are you running? I may not have the
> > required
> > >>> cloud-init support.
> > >>>
> > >>> Try to run the application in debug mode:
> > >>>
> > >>> Api api = new Api(
> > >>> "https://whatever/api",
> > >>> "user at domain",
> > >>> "password",
> > >>> null,
> > >>> null,
> > >>> null,
> > >>> null,
> > >>> true,
> > >>> null,
> > >>> true // <- This is to enable debug mode
> > >>> );
> > >>>
> > >>> It will send to the log the actual XML documents sent to the
> > server. We
> > >>> can use it to see if the request is generated correctly.
> > >>>
> > >>> It may also happen that cloud-init support isn't working
> > correctly. To
> > >>> verify this try to use the cloud-init support manually from
> > webadmin.
> > >>> Does it work from there?
> > >>>
> > >>>> Also, there is no option to set *Hostname *for the VM.
> > >>>>
> > >>>
> > >>> To set the host name you need to add something like this:
> > >>>
> > >>> Host hostData = new Host();
> > >>> hostData.setAddress("the.host.name
> <http://the.host.name> <http://the.host.name>");
> > >>> cloudData.setHost(hostData);
> > >>>
> > >>>>
> > >>>>
> > >>>> _*Code:*_
> > >>>>
> > >>>> /*********************Begin Customize
> > VM*********************/
> > >>>> // Generate the random password, using whatever
> > mechanism you
> > >>>> // prefer:
> > >>>> String password = "cJql3P9XLQG4drCYVG/6Q/";
> > >>>>
> > >>>> // You need to know the name of the template, the
> > cluster and
> > >>>> // the VM you are going to create:
> > >>>> String templateName = "rhel2_temp";
> > >>>> String clusterName = "testCluster";
> > >>>> String vmName = "myvm";
> > >>>>
> > >>>> // Prepare the data to create the VM from the
> template:
> > >>>> org.ovirt.engine.sdk.entities.Template
> templateData = new
> > >>>> Template();
> > >>>> templateData.setName(templateName);
> > >>>> org.ovirt.engine.sdk.entities.Cluster
> clusterData = new
> > >>> Cluster();
> > >>>> clusterData.setName(clusterName);
> > >>>> org.ovirt.engine.sdk.entities.VM vmDataForCreate =
> > new VM();
> > >>>> vmDataForCreate.setName(vmName);
> > >>>> vmDataForCreate.setCluster(clusterData);
> > >>>> vmDataForCreate.setTemplate(templateData);
> > >>>>
> > >>>> // Send the request to create the VM to the server:
> > >>>> api.getVMs().add(vmDataForCreate);
> > >>>> String state;
> > >>>> // White till the VM is down (it will be locked
> for a
> > while):
> > >>>> for (;;) {
> > >>>> state =
> > api.getVMs().get(vmName).getStatus().getState();
> > >>>> if ("down".equals(state)) {
> > >>>> break;
> > >>>> }
> > >>>> Thread.sleep(1000);
> > >>>> }
> > >>>> System.out.println("System Status:"+state);
> > >>>> // Populate parameters for the action to start
> the VM
> > with
> > >>>> cloud-init:
> > >>>> org.ovirt.engine.sdk.entities.User userData =
> new User();
> > >>>> userData.setUserName("root");
> > >>>> userData.setPassword(password);
> > >>>> Users usersData = new Users();
> > >>>> usersData.getUsers().add(userData);
> > >>>> CloudInit cloudData = new CloudInit();
> > >>>> cloudData.setUsers(usersData);
> > >>>>
> > >>>> Initialization initData = new Initialization();
> > >>>> initData.setCloudInit(cloudData);
> > >>>> VM vmDataForStart = new VM();
> > >>>> vmDataForStart.setInitialization(initData);
> > >>>> Action actionData = new Action();
> > >>>> actionData.setVm(vmDataForStart);
> > >>>>
> > >>>> // Send the request to start the VM to the server:
> > >>>> api.getVMs().get(vmName).start(actionData);
> > >>>> System.out.println("After :
> > >>>> "+api.getVMs().get(vmName).getStatus());
> > >>>> /*********************End Customize
> > VM*********************/
> > >>>>
> > >>>>
> > >>>>
> > >>>> Thanks & Regards,
> > >>>> Tejesh
> > >>>>
> > >>>>
> > >>>>
> > >>>> On Thu, Feb 13, 2014 at 2:26 PM, Juan Hernandez
> > <jhernand at redhat.com <mailto:jhernand at redhat.com>
> <mailto:jhernand at redhat.com <mailto:jhernand at redhat.com>>
> > >>>> <mailto:jhernand at redhat.com <mailto:jhernand at redhat.com>
> <mailto:jhernand at redhat.com <mailto:jhernand at redhat.com>>>> wrote:
> > >>>>
> > >>>> On 02/13/2014 09:29 AM, Shahar Havivi wrote:
> > >>>> > On 13.02.14 00:59, Oved Ourfalli wrote:
> > >>>> >>
> > >>>> >>
> > >>>> >> ----- Original Message -----
> > >>>> >>> From: "Shahar Havivi" <shaharh at redhat.com
> <mailto:shaharh at redhat.com>
> > <mailto:shaharh at redhat.com <mailto:shaharh at redhat.com>>
> > >>>> <mailto:shaharh at redhat.com
> <mailto:shaharh at redhat.com> <mailto:shaharh at redhat.com
> <mailto:shaharh at redhat.com>>>>
> > >>>> >>> To: users at ovirt.org <mailto:users at ovirt.org>
> <mailto:users at ovirt.org <mailto:users at ovirt.org>>
> > <mailto:users at ovirt.org <mailto:users at ovirt.org>
> <mailto:users at ovirt.org <mailto:users at ovirt.org>>>
> > >>>> >>> Cc: "Juan Antonio Hernandez Fernandez"
> > <jhernand at redhat.com <mailto:jhernand at redhat.com>
> <mailto:jhernand at redhat.com <mailto:jhernand at redhat.com>>
> > >>>> <mailto:jhernand at redhat.com
> <mailto:jhernand at redhat.com> <mailto:jhernand at redhat.com
> <mailto:jhernand at redhat.com>>>>,
> > rhevm-api at lists.fedorahosted.org
> <mailto:rhevm-api at lists.fedorahosted.org>
> > <mailto:rhevm-api at lists.fedorahosted.org
> <mailto:rhevm-api at lists.fedorahosted.org>>
> > >>>> <mailto:rhevm-api at lists.fedorahosted.org
> <mailto:rhevm-api at lists.fedorahosted.org>
> > <mailto:rhevm-api at lists.fedorahosted.org
> <mailto:rhevm-api at lists.fedorahosted.org>>>, "Tejesh M"
> > >>>> >>> <tejeshmk at gmail.com <mailto:tejeshmk at gmail.com>
> <mailto:tejeshmk at gmail.com <mailto:tejeshmk at gmail.com>>
> > <mailto:tejeshmk at gmail.com <mailto:tejeshmk at gmail.com>
> <mailto:tejeshmk at gmail.com <mailto:tejeshmk at gmail.com>>>>
> > >>>> >>> Sent: Wednesday, February 12, 2014 11:22:20 PM
> > >>>> >>> Subject: Re: [Users] [rhevm-api] Assign IP address to
> > VM using
> > >>>> Java SDK
> > >>>> >>>
> > >>>> >>> On 12.02.14 22:55, Itamar Heim wrote:
> > >>>> >>>> On 02/12/2014 03:14 PM, Tejesh M wrote:
> > >>>> >>>>> Hi,
> > >>>> >>>>>
> > >>>> >>>>> Can anyone share sample code on how to assign IP
> > address to
> > >>>> guest os &
> > >>>> >>>>> changing the root password while creating VM from
> > Template
> > >>>> using Java SDK?
> > >>>> >>> Hi Tejesh,
> > >>>> >>> You should start here:
> > >>>> >>> http://www.ovirt.org/Api
> > >>>> >>> This link will explain the basics for fetching VM via
> > the API
> > >>>> using HTTP via
> > >>>> >>> curl command line.
> > >>>> >>>
> > >>>> >>> Every VM have a collection of networks and
> manipulating
> > them can
> > >>>> be seeing
> > >>>> >>> here with the REST API examples:
> > >>>> >>>
> > http://www.ovirt.org/Features/Design/Network/SetupNetworks#REST
> > >>>> >>> the section for you is "Attaching a network to a NIC"
> > under the
> > >>> REST
> > >>>> >>> category.
> > >>>> >>>
> > >>>> >>> Shahar Havivi.
> > >>>> >>>
> > >>>> >>
> > >>>> >> Actually it looks like Tejesh is referring to the
> Guests
> > and not
> > >>>> the hosts, so you can use cloud-init in order to do that.
> > >>>> >> See more in
> > "http://www.ovirt.org/Features/Cloud-Init_Integration
> > >>> ".
> > >>>> >> If the VM's operating system is defined as some
> kind of
> > Linux,
> > >>>> then you'll be able to set some stuff using cloud-init,
> > either via
> > >>>> the Run-Once Dialog, or in the regular VM properties
> dialog.
> > >>>> >>
> > >>>> >> Omer - we have REST API support for cloud-init, right?
> > >>>> > Yes, more on that can be found here:
> > >>>> > http://www.ovirt.org/Features/vm-init-persistent
> > >>>> >>
> > >>>>
> > >>>> Tajesh, you have a detailed example of how to set the
> > password in the
> > >>>> following message:
> > >>>>
> > >>>>
> > http://lists.ovirt.org/pipermail/users/2014-February/021302.html
> > >>>>
> > >>>> Setting the IP address is similar.
> > >>>>
> > >>>
--
Dirección Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta
3ºD, 28016 Madrid, Spain
Inscrita en el Reg. Mercantil de Madrid – C.I.F. B82657941 - Red Hat S.L.
More information about the Users
mailing list