Revision history [back]

click to hide/show revision 1
initial version

How extensible is nova metadata? I'd like to alter the user data after boot

If I run nova --debug meta <vm_instance> set cat=dog I can see that the API will add the metadata into the cache for that instance.

If I run nova boot and I specify "--user-data" and add a script/mime-type/any_of_the_supported cloud init types...etc The data injected here is only at boot time. Personalities (5 files) can also be loaded as well...

This is all great... However, I'd like to inject different stuff into the VM through the lifetime of the VM "without" using a floating IP to get to the VM. Nor do I have the ability to ssh to the VM (certainly not as root).

I want to modify the metadata/user_data to inject other stuff during the lifetime of the VM. If I can inject new key-value pairs I should be able to change more stuff. (Note: we are using the full openstack API and are very comfortable with passing any type of JSON to and from the API.

On the VM, I'm using Curl to see the contents of the metadata on a per instance basis. On the compute-node that is also running the metadata process I try to query the metadata port (ie curl http://10.2.2.22:8775/) what can I use are the request to get access to the each different vm instance metadata spaces/caches. is it possible?

Can I post anything else to the metadata server in this way?

HELP ME please :)

Aside from writing a new agent to sit along side the metadata server I have not other options with what is provided by openstack to get data to or from the vms.

How extensible is can I extend nova metadata? I'd like metadata to alter the user data after bootVM's boot?

If I run nova --debug meta <vm_instance> set cat=dog I can see that the API will add the metadata into the cache for that instance.

If I run nova boot and I specify "--user-data" and add a script/mime-type/any_of_the_supported cloud init types...etc The data injected here is only at boot time. Personalities (5 files) can also be loaded as well...

This is all great... However, I'd like to inject different stuff into the VM through the lifetime of the VM "without" using a floating IP to get to the VM. Nor do I have the ability to ssh to the VM (certainly not as root).

I want to modify the metadata/user_data to inject other stuff during the lifetime of the VM. If I can inject new key-value pairs I should be able to change more stuff. (Note: we are using the full openstack API and are very comfortable with passing any type of JSON to and from the API.

On the VM, I'm using Curl to see the contents of the metadata on a per instance basis. On the compute-node that is also running the metadata process I try to query the metadata port (ie curl http://10.2.2.22:8775/) what can I use are the request to get access to the each different vm instance metadata spaces/caches. is it possible?

Can I post anything else to the metadata server in this way?

HELP ME please :)

Aside from writing a new agent to sit along side the metadata server I have not other options with what is provided by openstack to get data to or from the vms.

How can I extend nova metadata to alter the user data after VM's boot?

If I run nova --debug meta <vm_instance> set cat=dog I can see that the API will add the metadata into the cache for that instance.

If I run nova boot and I specify "--user-data" and add a script/mime-type/any_of_the_supported cloud init types...etc The data injected here is only at boot time. Personalities (5 files) can also be loaded as well...

This is all great... However, I'd like to inject different stuff into the VM through the lifetime of the VM "without" using a floating IP to get to the VM. Nor do I have the ability to ssh to the VM (certainly not as root).

I want to modify the metadata/user_data to inject other stuff during the lifetime of the VM. If I can inject new key-value pairs I should be able to change more stuff. (Note: we are using the full openstack API and are very comfortable with passing any type of JSON to and from the API.

On the VM, I'm using Curl to see the contents of the metadata on a per instance basis. On the compute-node that is also running the metadata process I try to query the metadata port (ie curl http://10.2.2.22:8775/) what can I use are the request to get access to the each different vm instance metadata spaces/caches. is it possible?

Can I post anything else to the metadata server in this way?

HELP ME please :)

Aside from writing a new agent to sit along side the metadata server I have not other options with what is provided by openstack to get data to or from the vms.