Answer is:
as written in source code, "config-drive = true" and file injection
using personality are mutually exclusive mechanisms.
On 10/25/17 2:14 AM, Volodymyr Litovka wrote:
Also, python-guestfs package installed as well, so Nova is able to use
it, at least quick check (snipped from Nova sources) passed:
# python2.7
Python 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from oslo_utils import importutils
>>> g = importutils.import_module('guestfs')
>>> print g
<module 'guestfs' from '/usr/lib/python2.7/dist-packages/guestfs.pyc'>
>>> from eventlet import tpool
>>> t = tpool.Proxy(g.GuestFS())
>>> t.add_drive("/dev/null")
>>> t.launch()
>>> print t
<guestfs.GuestFS object at 0x7f99c437e410>
No ideas why I'm facing this problem. Anybody can comment on this?
Thanks again.
On 10/25/17 1:24 AM, Volodymyr Litovka wrote:
Hi colleagues,
it makes me crazy, but how to make it work file injection into instance?
nova.conf already configured with
======
[DEFAULT]
debug=true
[libvirt]
inject_partition = -1
[guestfs]
debug=true
[quota]
injected_files = 5
injected_file_content_bytes = 10240
injected_file_path_length = 255
=======
libguestfs and libguestfs-tools are installed (on host machine):
libguestfs-hfsplus:amd64 1:1.32.2-4ubuntu2
libguestfs-perl 1:1.32.2-4ubuntu2
libguestfs-reiserfs:amd64 1:1.32.2-4ubuntu2
libguestfs-tools 1:1.32.2-4ubuntu2
libguestfs-xfs:amd64 1:1.32.2-4ubuntu2
libguestfs0:amd64 1:1.32.2-4ubuntu2
and, finally,
nova --debug boot --config-drive true --image <image> --flavor
<flavor> --security-groups <group> --key-name <key> --file
/etc/qqq=/dTest.txt --nic [...] dtest
makes a correct request (note a personality parameter)
REQ: curl -g -i -X POST http://controller:8774/v2.1/servers -H
"Accept: application/json" -H "User-Agent: python-novaclient" -H
"OpenStack-API-Version: compute 2.53" -H
"X-OpenStack-Nova-API-Version: 2.53" -H "X-Auth-Token:
{SHA1}11e6bac1ea20a124903ff967873c186a179d545e" -H "Content-Type:
application/json" -d '{"server": {"name": "dtest", "imageRef":
"12c86830-8d76-4159-a6bc-81966d7a220e", "key_name": "xxx",
"flavorRef": "d0ff4bc5-df38-4f20-8908-afc516d594e6", "max_count": 1,
"min_count": 1, *"personality": [{"path": "/etc/qqq", "contents":
"ZG9rYSB0ZXN0CmRva2EgdGVzdApkb2thIHRlc3QK"}]*, "networks": [{"uuid":
"9cc72002-fe24-44a5-aa04-22221ac0470f"}], "security_groups":
[{"name": "dfc7d642-b55f-465c-84c2-9d95c9c565bf"}], "config_drive":
true}}'
but nothing everywhere - neither '/etc/qqq' on guest VM nor logs
(according to guestfs.debug=true) on host machine.
It's Pike on Ubuntu 16.04.3.
What I'm doing wrong?
Thanks.
--
Volodymyr Litovka
"Vision without Execution is Hallucination." -- Thomas Edison
--
Volodymyr Litovka
"Vision without Execution is Hallucination." -- Thomas Edison
--
Volodymyr Litovka
"Vision without Execution is Hallucination." -- Thomas Edison
_______________________________________________
Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
Post to : openstack@lists.openstack.org
Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack