首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我的YAML数据中是否有傀儡评估变量?

我的YAML数据中是否有傀儡评估变量?
EN

Stack Overflow用户
提问于 2016-01-07 23:03:09
回答 1查看 273关注 0票数 1

我的hiera数据中有一个yaml文件:

代码语言:javascript
运行
复制
wsgi_keystone_conf_contents: |
 Listen 5000 
 Listen 35357

 <VirtualHost *:5000>
     WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
     WSGIProcessGroup keystone-public
     WSGIScriptAlias / /var/www/cgi-bin/keystone/main
     WSGIApplicationGroup %{GLOBAL}
     WSGIPassAuthorization On
     LogLevel info 
     ErrorLogFormat "%{cu}t %M"
     ErrorLog /var/log/httpd/keystone-error.log
     CustomLog /var/log/httpd/keystone-access.log combined
 </VirtualHost>

 <VirtualHost *:35357>
     WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=%{GROUP}
     WSGIProcessGroup keystone-admin
     WSGIScriptAlias / /var/www/cgi-bin/keystone/admin
     WSGIApplicationGroup %{GLOBAL}
     WSGIPassAuthorization On
     LogLevel info 
     ErrorLogFormat "%{cu}t %M"
     ErrorLog /var/log/httpd/keystone-error.log
     CustomLog /var/log/httpd/keystone-access.log combined
 </VirtualHost>

我试图在我的傀儡清单中创建一个wsgi-keystone.conf文件,如下所示:

代码语言:javascript
运行
复制
file { '/etc/httpd/conf.d/wsgi-keystone.conf':
    ensure   => present,
    content  => $wsgi_keystone_conf_contents,
}

但这会导致这样的文件.

代码语言:javascript
运行
复制
Listen 5000
Listen 35357

<VirtualHost *:5000>
    WSGIDaemonProcess keystone-public processes=5 threads=1 user=keystone group=keystone display-name=
    WSGIProcessGroup keystone-public
    WSGIScriptAlias / /var/www/cgi-bin/keystone/main
    WSGIApplicationGroup
    WSGIPassAuthorization On
    LogLevel info
    ErrorLogFormat "t %M"
    ErrorLog /var/log/httpd/keystone-error.log
    CustomLog /var/log/httpd/keystone-access.log combined
</VirtualHost>

<VirtualHost *:35357>
    WSGIDaemonProcess keystone-admin processes=5 threads=1 user=keystone group=keystone display-name=
    WSGIProcessGroup keystone-admin
    WSGIScriptAlias / /var/www/cgi-bin/keystone/admin
    WSGIApplicationGroup
    WSGIPassAuthorization On
    LogLevel info
    ErrorLogFormat "t %M"
    ErrorLog /var/log/httpd/keystone-error.log
    CustomLog /var/log/httpd/keystone-access.log combined
</VirtualHost>

上面的文件语法错误,httpd不会重新启动。我应该如何将数据放入YAML文件中?我需要逃离%吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-22 17:15:34

简短的回答是的。

在希拉,有插值令牌

插值标记看起来像%{variable}%{function("input")}。也就是说,它们包括:

  • 百分比符号(%)
  • 开口卷曲支撑({)

其中之一:

  • 变量名
  • 查找函数及其输入(Hiera 1.3及更高版本)
  • 合拢的卷曲支撑

如果配置文件中的任何设置或数据源中的值包含内插令牌,Hiera将在运行时用它引用的值替换该令牌。

这意味着您的%{GLOBAL}与插值令牌完全匹配。在最终的输出中,Puppet显示它没有变量GLOBAL的值,并且它输出为空。

逸出Hiera数据上有一个线程,但我不认为这通常是您想要做的。最好的做法是编写一个erb模板,只需将值传递给要放入的模板,而不是配置文件的全部内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34666796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档