
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@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...
On Thu, Sep 4, 2014 at 1:56 PM, Juan Hernandez <jhernand@redhat.com <mailto:jhernand@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@gmail.com <mailto:xielesshanil@gmail.com> > <mailto:xielesshanil@gmail.com <mailto:xielesshanil@gmail.com>>> wrote: > > Hi Juan, > > Thanks for the solution. > > -- > Regards > Shanil > > > On Tue, Sep 2, 2014 at 2:59 PM, Juan Hernandez <jhernand@redhat.com <mailto:jhernand@redhat.com> > <mailto:jhernand@redhat.com <mailto:jhernand@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.