从云元数据配置文件
项目描述
os-apply-config
从云元数据(JSON)应用配置
它做什么?
它将类似这样的一个或多个JSON文件的元数据
{"keystone": {"database": {"host": "127.0.0.1", "user": "keystone", "password": "foobar"}}}
转换为类似这样的服务配置文件
[sql] connection = mysql://keystone:foobar@127.0.0.1/keystone ...other settings...
用法
只需传递模板目录树的路径
sudo os-apply-config -t /home/me/my_templates
默认情况下,它将根据文件/var/lib/os-collect-config/os_config_files.json的内容读取配置文件。为了保持向后兼容性,它还将回退到/cite>/var/run/os-collect-config/os_config_files.json,但回退路径已弃用,将在以后的版本中删除。主要路径可以通过命令行开关–os-config-files或环境变量OS_CONFIG_FILES_PATH来更改。该列表也可以用环境变量OS_CONFIG_FILES来覆盖。如果使用OS_CONFIG_FILES覆盖,路径预期用冒号“:”分隔。每个引用的json文件都必须具有作为其根结构的映射。列表中稍后提到的文件中的键将覆盖此列表中较早文件中的键。例如
OS_CONFIG_FILES=/tmp/ec2.json:/tmp/cfn.json os-apply-config
这将读取ec2.json和cfn.json,如果它们有任何重叠的键,将使用cfn.json中的值。这将为在模板路径中找到的任何模板填充树。有关自动收集数据和填充此列表的程序,请参阅https://opendev.org/openstack/os-collect-config。
您还可以使用 –metadata 命令行选项覆盖 OS_CONFIG_FILES,多次指定而不是用冒号分隔列表。
os-apply-config 还会始终尝试先在旧遗产路径中读取元数据,以填充树。这些路径可以通过 –fallback-metadata 进行更改。
模板
模板目录结构应模仿根文件系统,并只包含您希望配置的文件的模板。例如
~/my_templates$ tree . +-- etc +-- keystone | +-- keystone.conf +-- mysql +-- mysql.conf
示例树可以在 这里 找到。
如果模板是可执行的,它将被视为一个 可执行模板。否则,它将被视为一个 mustache 模板。
Mustache 模板
如果您不需要任何逻辑,只需进行一些字符串替换,请使用 mustache 模板。
元数据设置可以通过点('.')表示法访问
[sql] connection = mysql://{{keystone.database.user}}:{{keystone.database.password}}@{{keystone.database.host}}/keystone
可执行模板
需要逻辑的配置用可执行模板表达。
可执行模板是一个脚本,它接受配置作为 JSON 字符串通过标准输入,并将配置文件写入标准输出。
如果脚本遇到问题,应该退出非零状态,以便 os-apply-config 知道发生了什么。
脚本的输出将被写入与模板树中可执行模板路径对应的路径。
#!/usr/bin/env ruby require 'json' params = JSON.parse STDIN.read puts "connection = mysql://#{c['keystone']['database']['user']}:#{c['keystone']['database']['password']}@#{c['keystone']['database']['host']}/keystone"
您甚至可以在 heredoc 中嵌入 mustache,并使用它
#!/usr/bin/env ruby require 'json' require 'mustache' params = JSON.parse STDIN.read template = <<-eos [sql] connection = mysql://{{keystone.database.user}}:{{keystone.database.password}}@{{keystone.database.host}}/keystone [log] ... eos # tweak params here... puts Mustache.render(template, params)
快速入门
# install it sudo pip install -U git+https://opendev.org/openstack/os-apply-config.git # grab example templates git clone https://opendev.org/openstack/tripleo-image-elements /tmp/config # run it os-apply-config -t /tmp/config/elements/nova/os-apply-config/ -m /tmp/config/elements/seed-stack-config/config.json -o /tmp/config_output
项目详情
下载文件
下载适合您平台文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分发
构建版本
os-apply-config-14.0.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8c44ef209268bc8ec2f45e34e734f8bb381decd517b6221f2714c22a00eda99d |
|
MD5 | 784adda8c69cf85d6d539480ecde4bc0 |
|
BLAKE2b-256 | 6cd6a324904b9f1549290241c4349828893534ad1745cd35f04a39ebd52a2cc3 |
os_apply_config-14.0.0-py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0c4541dad0930f553cc577d16523c277ffd2b42aa9e08f649b2c193e05779bbf |
|
MD5 | a8f9fac99090005d5c22907e777bf734 |
|
BLAKE2b-256 | 5687ca051a2f5505b1fe693e9c6cc5e546d6e11f3c697d0a5a1222689c4d8ec1 |