跳转到主要内容

从云元数据配置文件

项目描述

团队和仓库标签

https://governance.openstack.org/tc/badges/os-apply-config.svg

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.jsoncfn.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

项目详情


发布历史 发布通知 | RSS 源

下载文件

下载适合您平台文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。

源代码分发

os-apply-config-14.0.0.tar.gz (28.2 kB 查看哈希值)

上传时间 源代码

构建版本

os_apply_config-14.0.0-py3-none-any.whl (32.0 kB 查看哈希值)

上传时间 Python 3

支持