OpenStack CLI:从云初始化脚本访问 `--属性`

OpenStackCLI: Access `--property`'s from cloudinit script

我正在使用 OpenStack CLI 创建服务器实例,并且需要将自定义属性 (--property) 传递到 --user-data 参数引用的初始化脚本中。

所以,我的调用看起来像这样:

openstack server create myServer \
  ...other args...
  --user-data ./initScript.sh \
  --property "foo=bar"

initScript.sh 中,如何访问 foo 属性 及其值?

--property 定义的元素进入元数据的 meta 元素。 [source]

如果你运行

curl http://169.254.169.254/openstack/2018-08-27/meta_data.json

你会得到

{
   "hostname": "test.novalocal",
   …
   "meta": {
      "foo": "bar",
      …
   },
   …
}

并解析出 shell 脚本中的值,您可以使用例如:

$ curl http://169.254.169.254/openstack/2018-08-27/meta_data.json \
    | jq -r '.meta.foo'
bar

请参阅 Metadata Service 的文档,了解有关可用于检索此信息的格式和各种方法的更多信息。