[ovirt-users] Passing custom script to cloud init using api

Juan Hernandez jhernand at redhat.com
Thu Sep 4 04:26:30 EDT 2014


On 09/04/2014 06:29 AM, Shanil S wrote:
> Hi Juan,
> 
> Is there anyways to specify the custom script from a file in the xml ?
> ie, i have a script in a file called script.sh and i would like to
> include this script in the xml with the api call. Is there any methods
> for this ?
> 

You can deploy files using cloud-init, and the run them using the custom
script. Something like this:

  <action>
    ...
    <initialization>
      <cloud-init>
        <files>
          <file name="/root/myscript.sh"/>
            <content><![CDATA[#!/bin/sh the content of your
script]]></content>
          </file>
        </files>
      </cloud-init>
      <custom_script><![CDATA[runcmd:
 - sh /root/myscript.sh
]]></custom_script>
    </initialization>
  </action>

But I'm not a cloud-init expert, and I didn't test this, so I don't
really know if the custom_script will run before or after the files are
deployed. It makes more sense to run the scripts after deploying the
files, but you will have to test it yourself.

The content of the files and the scripts has to be embedded in the XML
document that you send to the RESTAPI server, there is no way to send an
XML document and a separate file. Building this kind of XML document
shouldn't be complicated if you use the CDATA syntax like in the example
above.

Another thing that you may consider, if you have to run a complicated
script or set of scripts, is to have them pre-installed in the template
that you use to create the VM, then you just need to run them.

> -- 
> Regards
> Shanil
> 
> 
> On Tue, Sep 2, 2014 at 3:02 PM, Shanil S <xielesshanil at gmail.com
> <mailto:xielesshanil at gmail.com>> wrote:
> 
>     Hi Juan,
> 
>     Thanks for the solution.
> 
>     -- 
>     Regards
>     Shanil
> 
> 
>     On Tue, Sep 2, 2014 at 2:59 PM, Juan Hernandez <jhernand at redhat.com
>     <mailto:jhernand at redhat.com>> wrote:
> 
>         On 09/02/2014 05:46 AM, Shanil S wrote:
>         > Hi All,
>         >
>         > From the ovirt admin panel, there is an option to give the
>         custom script
>         > in the cloud init ( Run Once-> cloud init- > Custom script ).
>         Is there
>         > any ways to pass the custom script to cloud init using the
>         rest api ?
>         >
> 
>         The custom script should go inside the "custom_script" element
>         inside
>         the "initialization" element:
> 
>           <action>
>             ...
>             <initialization>
>               <cloud_init>...</cloud_init>
>               <custom_script>your custom script</custom_script>
>             </initialization>
>           </action>
> 
>         --
>         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.
> 
> 
> 
> 
> 
> _______________________________________________
> Users mailing list
> Users at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/users
> 


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