[ovirt-users] cloud_init not apply when v create from API

Juan Hernández jhernand at redhat.com
Wed Mar 30 08:51:57 UTC 2016


On 03/30/2016 08:44 AM, Arpit Makhiyaviya wrote:
> 
> I used  *Version: 3.6.3.4-1.el7.centos* of ovirt engine.I already tried
> following xml request with run VM but still its not working.
> From admin panel of oVirt Its completely working but I found issue only
> with oVirt API (VM start but cloudinit data not accepted).
> 

Version 3.6.3.4 is affected by the bug that I mentioned. The result is
that the "cloud_init" element is just ignored. That will be fixed in
version 3.6.5. Meanwhile you can use the workaround suggested in comment
1 of the bug:

  https://bugzilla.redhat.com/show_bug.cgi?id=1305904#c1

Translated to XML it should look like described by Karim Boumedhel in
comment 7:

  https://bugzilla.redhat.com/show_bug.cgi?id=1305904#c7

> *XML Request : * 
> 
> <action>
>    <async>false</async>
>   <use_cloud_init>true</use_cloud_init>
> <vm>
>   <initialization>
>      <cloud_init>
>        <host>
>          <address>vishal.123456</address>
>        </host>
>        <regenerate_ssh_keys>true</regenerate_ssh_keys>
>        <timezone>Atlantic/Reykjavik</timezone>
>        <users>
>          <user>
>            <user_name>root</user_name>
>            <password>Vishal at 131</password>
>          </user>
>        </users>
>        <network_configuration>
>          <nics>
>            <nic>
>              <name>eth1</name>
>              <boot_protocol>STATIC</boot_protocol>
>              <network>
>                <ip address="51.254.56.84" netmask="255.255.255.255"
> gateway="149.202.85.254" />
>              </network>
>              <on_boot>false</on_boot>
>            </nic>
>            
>          </nics>
>          <dns>
>            <servers>
>              <host>
>                <address>8.8.8.8</address>
>              </host>
>            </servers>
>            <search_domains>
>              <host>
>                <address>8.8.4.4</address>
>              </host>
>            </search_domains>
>          </dns>
>        </network_configuration>
>        
> 
>      </cloud_init>
>   </initialization>
> </vm>
>    
> </action>
> 
> Regards,
> *Arpit Makhiyaviya*
> Software Engineer
> +91-79-40038284
> +91-971-437-6669
> <http://www.sculptsoft.com>
> 
> On Wed, Mar 30, 2016 at 12:27 AM, Juan Hernández <jhernand at redhat.com
> <mailto:jhernand at redhat.com>> wrote:
> 
>     On 03/29/2016 03:07 PM, Arpit Makhiyaviya wrote:
>     > Thanks for quick response.
>     > we already knew this and we are passing following xml when calling
>     Start
>     > action.
>     >
> 
>     What version of the engine are you using exactly? This is a known bug.
>     The "cloud_init" element is ignored. See here for details:
> 
>       Cloud-Init payload not passed into VM via python SDK
>       https://bugzilla.redhat.com/1305904
> 
>     That will be fixed in version 3.6.5. If you have a version 3.6.2 or
>     newer then you can use the workaround described there, using the
>     "initailization" element directly.
> 
>     > <action>
>     > <vm>
>     >   <initialization>
>     >      <cloud_init>
>     >        <host>
>     >          <address>vm-cloud-init-restapi</address>
>     >        </host>
>     >        <authorized_keys>
>     >          <authorized_key>
>     >            <user>
>     >              <user_name>root</user_name>
>     >            </user>
>     >            <key>ssh-rsa restapi-cloud-init-ssh-key
>     root at localdomain</key>
>     >          </authorized_key>
>     >        </authorized_keys>
>     >        <regenerate_ssh_keys>true</regenerate_ssh_keys>
>     >        <timezone>Atlantic/Reykjavik</timezone>
>     >        <users>
>     >          <user>
>     >            <user_name>root</user_name>
>     >            <password>SuperSecretPassword!</password>
>     >          </user>
>     >        </users>
>     >        <network_configuration>
>     >          <nics>
>     >            <nic>
>     >              <name>eth0</name>
>     >              <boot_protocol>STATIC</boot_protocol>
>     >              <network>
>     >                <ip address="192.168.2.11" netmask="255.255.255.0"
>     > gateway="192.168.2.254" />
>     >              </network>
>     >              <on_boot>true</on_boot>
>     >            </nic>
>     >            <nic>
>     >              <name>eth1</name>
>     >              <boot_protocol>DHCP</boot_protocol>
>     >              <on_boot>true</on_boot>
>     >            </nic>
>     >          </nics>
>     >          <dns>
>     >            <servers>
>     >              <host>
>     >                <address>10.20.30.100</address>
>     >              </host>
>     >            </servers>
>     >            <search_domains>
>     >              <host>
>     >                <address>domain.your.rhevm.com
>     <http://domain.your.rhevm.com>
>     > <http://domain.your.rhevm.com></address>
>     >              </host>
>     >            </search_domains>
>     >          </dns>
>     >        </network_configuration>
>     >        <files>
>     >          <file>
>     >            <name>/tmp/file1.txt</name>
>     >            <content>line 1
>     > line 2
>     > and now something special
>     > !@#$%^&amp;*()_+</content>
>     >            <type>PLAINTEXT</type>
>     >          </file>
>     >        </files>
>     >      </cloud_init>
>     >   </initialization>
>     > </vm>
>     > </action>
>     >
>     > we also found following link . is this related to my issue?
>     >
>     > https://gerrit.ovirt.org/#/c/50240/2
>     >
>     > Regards,
>     > *Arpit Makhiyaviya*
>     > Software Engineer
>     > +91-79-40038284
>     > +91-971-437-6669
>     > <http://www.sculptsoft.com>
>     >
>     > On Tue, Mar 29, 2016 at 6:24 PM, Renout Gerrits <mail at renout.nl
>     <mailto:mail at renout.nl>
>     > <mailto:mail at renout.nl <mailto:mail at renout.nl>>> wrote:
>     >
>     >     In the more recent versions you have to use
>     'use_cloud_init=True' in
>     >     the api, which isn't described in most documentation yet. Maybe
>     >     thats the reason it isn't working?
>     >
>     >     Here's a working snippet:
>     >
>     >     vm = api.vms.get(name=vm_name)
>     >
>     >     action = params.Action(
>     >         use_cloud_init=True,
>     >         vm=params.VM(
>     >           initialization=params.Initialization(
>     >             regenerate_ssh_keys=True,
>     >             host_name=vm_fqdn,
>     >             nic_configurations=params.GuestNicsConfiguration(
>     >               nic_configuration=[
>     >                 params.GuestNicConfiguration(
>     >                   name="eth0",
>     >                   boot_protocol="static",
>     >                   on_boot=True,
>     >                   ip=params.IP(
>     >                     address=vm_address,
>     >                     netmask=vm_netmask,
>     >                     gateway=vm_gateway,
>     >                     ),
>     >                   ),
>     >                 ],
>     >               ),
>     >             ),
>     >           ),
>     >         )
>     >
>     >     vm.start(action)
>     >
>     >
>     >     On Tue, Mar 29, 2016 at 2:03 PM, Arpit Makhiyaviya
>     >     <arpit.icreate at gmail.com <mailto:arpit.icreate at gmail.com>
>     <mailto:arpit.icreate at gmail.com <mailto:arpit.icreate at gmail.com>>>
>     wrote:
>     >
>     >         Hello,
>     >         we are using ovirt api with json data format.
>     >         we have create vm from template and i want to set
>     >         ip,macaddress,user and password for that we are using
>     cloud_init
>     >         for that we it can't set any options.
>     >
> 

-- 
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