当前位置: 首页 > article >正文

puppet 配置 6 变量的特殊用法

目的

  • 变量常用于 template 中
  • 本文用于介绍一些变量在 template 中的用法

常见变量使用

变量定义

mon_osd_down_out_interval: "172800"

直接调用方法

mon_osd_down_out_interval    = <%= @mon_osd_down_out_interval %>

组数使用方法1

    initial_ceph_mon_info:
      - mon_name:  "ns-ceph-208217"
        mon_addr:  "10.5.8.123"
      - mon_name:  "ns-ceph-208218"
        mon_addr:  "10.5.8.131"
      - mon_name:  "ns-ceph-208219"
        mon_addr:  "10.5.8.147"

希望获得效果

mon_initial_members = ns-ceph-208217,ns-ceph-208218,ns-ceph-208219

调用方法

mon_initial_members = <%= @initial_ceph_mon_info.map { |server| server["mon_name"] } .join(",") %>

组数使用方法2

    initial_ceph_mon_info:
      - mon_name:  "ns-ceph-208217"
        mon_addr:  "10.5.8.123"
      - mon_name:  "ns-ceph-208218"
        mon_addr:  "10.5.8.131"
      - mon_name:  "ns-ceph-208219"
        mon_addr:  "10.5.8.147"

希望获得效果

[mon.ns-ceph-208217]
  host = ns-ceph-208217
  mon addr = 10.5.8.123

[mon.ns-ceph-208218]
  host = ns-ceph-208218
  mon addr = 10.5.8.131

[mon.ns-ceph-208219]
  host = ns-ceph-208219
  mon addr = 10.5.8.147

调用方法

<% if @initial_ceph_mon_info -%>
<% @initial_ceph_mon_info.each do |key| -%>
[mon.<%= key["mon_name"] %>]
  host = <%= key["mon_name"] %>
  mon addr = <%= key["mon_addr"] %>

<% end -%>

组数使用方法3

    ceph_osd_group:
      - journal_disk: "/dev/sdl"
        osd_disk:
          - "/dev/sdb"
          - "/dev/sdc"
          - "/dev/sdd"
          - "/dev/sde"
          - "/dev/sdf"
      - journal_disk: "/dev/sdm"
        osd_disk:
          - "/dev/sdg"
          - "/dev/sdh"
          - "/dev/sdi"
          - "/dev/sdj"
          - "/dev/sdk"

期望得到结果

jdisks = /dev/sdl  /dev/sdm 

puppet 语法

jdisks="<%= @ceph_osd_group.map { |server| server["journal_disk"] } .join(" ") %>"

组数使用方法4

    ceph_osd_group:
      - journal_disk: "/dev/sdl"
        osd_disk:
          - "/dev/sdb"
          - "/dev/sdc"
          - "/dev/sdd"
          - "/dev/sde"
          - "/dev/sdf"
      - journal_disk: "/dev/sdm"
        osd_disk:
          - "/dev/sdg"
          - "/dev/sdh"
          - "/dev/sdi"
          - "/dev/sdj"
          - "/dev/sdk"

期望得到结果

/dev/sdb  /dev/sdl1
/dev/sdc  /dev/sdl2
/dev/sdd  /dev/sdl3
/dev/sde  /dev/sdl4
/dev/sdf  /dev/sdl5
/dev/sdg  /dev/sdm1
/dev/sdh  /dev/sdm2
/dev/sdi  /dev/sdm3
/dev/sdj  /dev/sdm4
/dev/sdk  /dev/sdm5

语法

<% @ceph_osd_group.each do  |serverinfo| -%>
<% serverinfo["osd_disk"].each_index do |index|  -%>
 <%= serverinfo["osd_disk"][index]  %>  <%= serverinfo["journal_disk"] %><%= index +1 %>
<% end -%>
<% end -%>

http://www.kler.cn/a/447337.html

相关文章:

  • UDP系统控制器_音量控制、电脑关机、文件打开、PPT演示、任务栏自动隐藏
  • 知网研学 | 知网文献(CAJ+PDF)批量下载
  • CLION中运行远程的GUI程序
  • 游戏渠道假量解决方案
  • Map.put 方法
  • 关于数据流图绘制和使用上的一些个人经验
  • python--在服务器上面创建conda环境
  • 多线程设计模式-保护性暂停之面向对象
  • django中cookie与session的使用
  • 【背景信息】Proxmox Virtual Environment 创建AD域实现统一身份认证(一)
  • Android 搭建AIDL Client和Server端,双向通信
  • OpenCV实现实时人脸检测和识别
  • Python 图像处理领域的十一个基础操作
  • 聚观早报 | 百度回应进军短剧;iPad Air将升级OLED
  • 7-2 排序
  • Android音频中常用的BT Format和Profile介绍
  • Excel智能公式,根据日期一键生成唯一订单编号
  • 【python因果库实战9】TMLE - 目标最大似然估计2
  • 如何使用 Python 连接 SQLite 数据库?
  • MicroPython+ESP32:五.PC远程控制LED灯
  • 36.2 内置的k8s采集任务分析
  • AI呼入机器人详解
  • ubuntu 执行sh脚本出现报错:source:not found
  • 界面控件DevExpress v24.2.3全新发布——正式支持.NET 9
  • 算法—回文链表
  • Docker的网络