人偶数据数组

Puppet data array

我有一个模块可以根据服务器创建一些目录:

class linux_sftp::sftp_mount ($sftp_mount_ip, $sftp_mount_username, $sftp_mount_password, $sftp_mount_point) {

  file { "/mnt/${sftp_mount_point}":
    ensure => directory,
    subscribe => Exec['sftp_remount'],
  }

在data.yml

sftp_mount_point: "stcontent1"

我想向数据中添加更多文件夹,例如:stcontent2、stcontent3。这是一种添加它并循环遍历数据的方法吗?

sftp_mount_point: 
  - "stcontent1"
  - "stcontent2" ...

是的,您可以使用 lambda 方法(如果需要也可以作为函数调用)迭代来完成此任务。您的用例最常见的是 each。它可以很容易地在类型 Array[String] 上调用,就像您在问题中遇到的那样。

$sftp_mount_point.each |String $mount| {
  file { "/mnt/${mount}":
    ensure => directory,
  }
}

请注意,file 类型没有 subscribable 属性,因此 subscribe 不是有效属性,因此我在上面将其删除。