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

Shanil S xielesshanil at gmail.com
Wed Sep 10 04:44:40 UTC 2014


Hi Juan,

What i am planning to do is to make work the following script

#cloud-config

# phone_home: if this dictionary is present, then the phone_home
# cloud-config module will post specified data back to the given
# url
# default: none
# phone_home:
#  url: http://my.foo.bar/$INSTANCE/
#  post: all
#  tries: 10
#
phone_home:
 url: http://my.example.com/$INSTANCE_ID/
 post: [ pub_key_dsa, pub_key_rsa, pub_key_ecdsa, instance_id ]

(
http://cloudinit.readthedocs.org/en/latest/topics/examples.html#run-commands-on-first-boot
)

but it wasn't working when i tried, i hope to post the above values to the
specific url and get the posted details.

-- 
Regards
Shanil

On Wed, Sep 10, 2014 at 10:02 AM, Shanil S <xielesshanil at gmail.com> wrote:

> Hi Juan,
>
> Okay.. Thanks.. its working.
>
> I would like to execute other page something like test_script.php by
> posting some values to it using the cloud init, Is it possible to do it ?
>
>
>
> --
> Regards
> Shanil
>
> On Fri, Sep 5, 2014 at 10:08 PM, Juan Hernandez <jhernand at redhat.com>
> wrote:
>
>> On 09/05/2014 12:55 PM, Shanil S wrote:
>> > Hi Juan,
>> >
>> > Thanks for your reply.
>> >
>> > I tried with the above but i was unable to find the 'iwashere.txt' after
>> > executing the above xml.
>> >
>>
>> I repeated the test, this time with 3.4, and it worked fine for me. As
>> the formatting of the XML is very important I'd suggest that you take
>> the attached script (instead of copy & paste from the mail), change the
>> password and VM id and run it.
>>
>> There are two kind of things that can go wrong here. One is that the
>> engine/VDSM combination may not be generating the right file. To verify
>> this start the VM with the attached script, and once it is started go to
>> the hypervisor where it is running and find the corresponding qemu
>> process:
>>
>>   # ps -ef | grep -- '-name myvm'
>>
>> This will give you a very long command line. That command line should
>> include a "-drive" option containing the full path of the disk image
>> generated by the engine/VDSM, something like this:
>>
>>   -drive
>>
>> file=/var/run/vdsm/payload/b5f087d4-022d-4d5f-8a1e-268c562c7bb1.b6fcddff571bb8c2028c61b623d172a6.img
>>
>> To inspect its content make a copy (just in case) and mount it:
>>
>>   # cp -drive
>>
>> file=/var/run/vdsm/payload/b5f087d4-022d-4d5f-8a1e-268c562c7bb1.b6fcddff571bb8c2028c61b623d172a6.img
>> /root/my.img
>>   # mount -o loop,ro /root/my.img /mnt
>>
>> Inspect the content:
>>
>>   # find /mnt
>>   /mnt/openstack
>>   /mnt/openstack/content
>>   /mnt/openstack/content/0000
>>   /mnt/openstack/latest
>>   /mnt/openstack/latest/meta_data.json
>>   /mnt/openstack/latest/user_data
>>
>> The content of the custom-script should be at the end of the "user_data"
>> file, so take a look at that:
>>
>>   # cat /mnt/openstack/latest/user_data
>>   #cloud-config
>>   ssh_pwauth: true
>>   disable_root: 0
>>   output:
>>     all: '>> /var/log/cloud-init-output.log'
>>   user: root
>>   password: mypassword
>>   chpasswd:
>>     expire: false
>>   runcmd:
>>   - 'sed -i ''/^datasource_list: /d'' /etc/cloud/cloud.cfg; echo
>> ''datasource_list:
>>     ["NoCloud", "ConfigDrive"]'' >> /etc/cloud/cloud.cfg'
>>   runcmd:
>>    - echo "I was here!" > /iwashere.txt
>>
>> If your custom script isn't there then there is some problem in the
>> engine/VDSM side, otherwise the problem is probably in cloud-init
>> itself, and we will need someone with more knowledge of cloud-init to
>> debug it.
>>
>> Don't forget to umount the file when finished:
>>
>>   # umount /mnt
>>
>> >
>> > On Fri, Sep 5, 2014 at 3:00 PM, Juan Hernandez <jhernand at redhat.com
>> > <mailto:jhernand at redhat.com>> wrote:
>> >
>> >     On 09/05/2014 10:46 AM, Sven Kieske wrote:
>> >     >
>> >     >
>> >     > Am 05.09.2014 10:27, schrieb Juan Hernandez:
>> >     >> Trying to make an example for this I discovered that the
>> "custom_script"
>> >     >> element is currently ignored if the "cloud_init" element is
>> present.
>> >     >> Instead we are taking the content of the first "file" element
>> from the
>> >     >> "cloud_init" element and appending it to the cloud-init
>> configuration
>> >     >> file. I believe that this is a bug, as it breaks backwards
>> compatibility:
>> >     >>
>> >     >>   https://bugzilla.redhat.com/1138564
>> >     >
>> >     > Thanks for the report, I just proposed this as a blocker for the
>> 3.4.4
>> >     > release as it is a clear regression.
>> >     > Also I rely on this functionality in my 3.3. setup and I want to
>> upgrade
>> >     > to 3.4 so I can't upgrade until this is fixed and released.
>> >
>> >     Agree, I set the bug as a blocker for 3.4.4.
>> >
>> >     >>
>> >     >> However, you can exploit this bug to do what you want. This is
>> an example:
>> >     >
>> >     > Well I guess this is a pretty bad idea, because it will just work
>> >     > until the bug is fixed?
>> >     >
>> >
>> >     No, what I proposed in the example is to put the custom script in
>> both
>> >     the first "file" inside "clud_init" and in the "custom_script"
>> element.
>> >     That should work with the current status and also if/when we fix the
>> >     bug.
>> >
>>
>> --
>> 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/20140910/03fafb30/attachment-0001.html>


More information about the Users mailing list