首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复杂hiera查找不工作

复杂hiera查找不工作
EN

Stack Overflow用户
提问于 2015-01-09 12:13:44
回答 2查看 3.7K关注 0票数 5

我在yaml文件中有以下定义:

代码语言:javascript
复制
keepalived:
    cluster_name: "cluster.example.lan"
    cluster_ip: "192.168.1.10"
    cluster_nic: "eth0"
haproxy:
    bind_address: %{hiera('keepalived::cluster_ip')}

因此,在bind_address中,我得到了一个空字符串。

如果我使用%{hiera('keepalived')},我已经打印了整个散列,但是我只需要从这个散列中输出cluster_ip。如何查找cluster_ip

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-09 13:51:15

我想这不是可能:

Hiera只能插值值为字符串的变量。(来自木偶的数字也作为字符串传递,可以安全地使用。)不能插值其值为布尔值、非来自木偶的数字、数组、散列、资源引用或显式undef值的变量。 此外,Hiera不能插值任何数组或散列的单个元素,即使该元素的值是字符串.

您可以始终将cluster_ip定义为变量:

代码语言:javascript
复制
common::cluster_ip: "192.168.1.10"

而不是用它:

代码语言:javascript
复制
keepalived:
    cluster_name: "cluster.example.lan"
    cluster_ip: "%{hiera('common::cluster_ip')}"
    cluster_nic: "eth0"

haproxy:
    bind_address: "%{hiera('common::cluster_ip')}"
票数 8
EN

Stack Overflow用户

发布于 2016-09-02 16:35:41

希拉用。在字符串内插中查找数组或散列中的子元素。将hiera代码更改如下:

代码语言:javascript
复制
keepalived:
  cluster_name: "cluster.example.lan"
  cluster_ip: "192.168.1.10"
  cluster_nic: "eth0"
haproxy:
  bind_address: %{hiera('keepalived.cluster_ip')}

对于数组,使用数组索引(基于0)而不是哈希键。

请参阅插值散列或数组元素

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

https://stackoverflow.com/questions/27860333

复制
相关文章

相似问题

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