我正在尝试在puppet模块中配置属性文件。属性文件最终应该包含以下内容:
server_url=https://my-login.com/server
token_url=https://my-login.com/token
client_id=my-application
我们有多个应用程序将部署到的环境(开发,登台和生产),server_url
和token_url
在每个环境中都会有所不同,但client_id
将永远不同是相同的。所以我制作了一个这样的erb模板:
server_url=<%=@server_url%>
token_url=<%=@token_url%>
client_id=my-application
这样的清单文件:
# $env will be DEV, STG or PRD
$server_url = 'https://my-login-dev.com/server'
$token_url = 'https://my-login-dev.com/token'
file {'/apps/my-application/common/client.properties':
ensure => 'present',
content => template("common/client.properties.erb"),
}
我希望根据server_url
变量的值设置token_url
和env
的值。理想情况下,这可以通过选择要包含的特定文件来实现。例如,为每个环境都有一个urls.properties
文件,从中加载变量。因此urls.properties.dev
将包含以下内容:
server_url=https://my-login.com/server
token_url=https://my-login.com/token
然后你可以像这样包含它:
# server_url and token_url set up by the following line
include urls.properties.${env}
file {'/apps/my-application/common/client.properties':
ensure => 'present',
content => template("common/client.properties.erb"),
}
我找不到任何关于如何执行此操作的文档,而且我找不到通过黑客攻击使其工作的方法。
有可能实现这一目标吗?我应该采取另一种方法来解决问题吗? (我不想使用部分模板,因为我不希望将文件拆分成很多块)。