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

Shanil S xielesshanil at gmail.com
Thu Sep 4 05:59:22 EDT 2014


Hi Juan,

I tried with the above touch command but it seems the 'iwashere' file isn't
created after executing it the above command.

-- 
Regards
Shanil


On Thu, Sep 4, 2014 at 3:02 PM, Juan Hernandez <jhernand at redhat.com> wrote:

> On 09/04/2014 10:58 AM, Shanil S wrote:
> > Hi Juan,
> >
> > Okay.. Thanks for your update. Also i found some sample cloud init
> > scripts from here
> > https://github.com/number5/cloud-init/tree/master/doc/examples and i
> > tried the following scripts
> >
> > - type: foo/wark
> > filename: bar
> > content: |
> > This is my payload
> > hello
> > - this is also payload
> > - |
> > multi line payload
> > here
> > -
> > type: text/upstart-job
> > filename: my-upstart.conf
> > content: |
> > Test file contents
> >
> > And run the start vm using the above script using cloud init and api,
> > Could you please tell me where i can find the result of the above script
> ?
> > I think the above script will create a file like my-upstart.conf
> >
>
> As I said I am not a cloud-init expert, so I don't really know what is
> the meaning or effect of this script. But I think that you need to use
> the "runcmd" option. For example:
>
> <action>
>   ...
>   <initialization>
>     <cloud-init>...</cloud-init>
>     <custom-script><![CDATA[runcmd:
>  - touch /iwashere
> ]]></custom-script>
>   </initialization>
> </action>
>
> If you use this it should run the "touch /iwashere" command, and you can
> check that it did verifying that the "/iwashere" file exists.
>
> As I said I didn't test this, so I may not work. I'd appreciate if you
> can test it, and once it works update the wiki with the correct
> instructions:
>
>
> http://www.ovirt.org/REST-Api#How_can_I_run_a_custom_script_using_cloud-init.3F
>
> >
> > On Thu, Sep 4, 2014 at 1:56 PM, Juan Hernandez <jhernand at redhat.com
> > <mailto:jhernand at redhat.com>> wrote:
> >
> >     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>
> >     > <mailto: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>
> >     >     <mailto: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.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ovirt.org/pipermail/users/attachments/20140904/2fe50708/attachment.html>


More information about the Users mailing list