有没有更好的方法来处理双引号hiera到yaml


子阳
2025-03-19 02:49:34 (4小时前)


我使用hiera来保持环境/主机特定配置远离代码。为了生成配置文件 - yaml我碰到以下场景:

Hieara配置文件:

elasticsearch :: …

3 条回复
  1. 0# 阿政ღ | 2019-08-31 10-32



    你想要实现的目标是什么

    字符串数组
    </强>


    hiera




    这个:




    1. elasticsearch::discovery_unicast_hosts: [ HOSP-BD-02”, HOSP-BD-03”, HOSP-BD-04 ]

    2. </code>


    不是定义数组的正确方法

    yaml


    检查以下关于hiera的文章

    查找类型




    你需要的是:




    1. elasticsearch::discovery_unicast_hosts:

    2. - "HOSP-BD-02"
    3. - "HOSP-BD-03"
    4. - "HOSP-BD-04" 
    5. </code>

  2. 1# ℘ 宋唐 ℒº ѵ ℯ楚厦 | 2019-08-31 10-32



    您的

    join

    方法是正确的,但你的价值观缺乏报价。



    最干净的方法是确保您的YAML包含数据中的实际引号(在您当前的表示法中,YAML会将引号视为语法糖)。



    如果这对你来说是令人讨厌的(我可能会落后),你可以在处理过程中使用

    regsubst

    功能。




    1. $quoted = regsubst($elasticsearch::discovery_unicast_hosts, ‘(.*)’, ‘“\1”‘)
      $discovery_unicast_hosts_joined = join($quoted, “,”)

    2. </code>

登录 后才能参与评论