如何将数组项附加到puppet中循环上的字符串

如何将数组项附加到puppet中循环上的字符串,puppet,Puppet,假设我有一个带有目录名的数组 dirs = ['opt', 'apps', 'apache'] 我想迭代并生成以下路径的列表 /opt /opt/apps /opt/apps/apache 我可以通过它来创建文件资源。您为什么要这样迭代这些文件 因为将这些资源转换为文件资源的最简单方法是: $dirs = ['/opt', '/opt/apps', '/opt/apps/apache'] file { $dirs: ensure => directory, } 如果您只想确保前

假设我有一个带有目录名的数组

dirs = ['opt', 'apps', 'apache']
我想迭代并生成以下路径的列表

/opt
/opt/apps
/opt/apps/apache

我可以通过它来创建文件资源。

您为什么要这样迭代这些文件

因为将这些资源转换为文件资源的最简单方法是:

$dirs = ['/opt', '/opt/apps', '/opt/apps/apache']

file { $dirs:
  ensure => directory,
}
如果您只想确保前面的所有目录都已创建,那么还有
dirtree
模块,它将为您完成这一切:

然后可以使用该变量创建目录

正如Matt提到的,您还可以使用映射或迭代器来创建资源

这里的基本示例:

$dirs = ['/opt', '/opt/apps', '/opt/apps/apache']

$dirs.each |String $path| {
  file {$path:
    ensure => directory,
  }
}
此处记录:


有几种不同的方法可以在代码中执行您想要执行的操作,这取决于您在创建这些资源后要对这些资源进行多少管理。

是否有这样的原因要遍历这些文件

因为将这些资源转换为文件资源的最简单方法是:

$dirs = ['/opt', '/opt/apps', '/opt/apps/apache']

file { $dirs:
  ensure => directory,
}
如果您只想确保前面的所有目录都已创建,那么还有
dirtree
模块,它将为您完成这一切:

然后可以使用该变量创建目录

正如Matt提到的,您还可以使用映射或迭代器来创建资源

这里的基本示例:

$dirs = ['/opt', '/opt/apps', '/opt/apps/apache']

$dirs.each |String $path| {
  file {$path:
    ensure => directory,
  }
}
此处记录:


有几种不同的方法可以在代码中执行您想执行的操作,这取决于创建后您想对这些资源进行多少管理。

Puppet不允许重新分配变量,因为我无法获得所需的输出。巧合的是,大约一个月前我碰巧回答了这个问题:Puppet不允许重新分配变量,因为我无法获得所需的输出。巧合的是,我大约一个月前碰巧回答了这个问题:我决定使用绝对路径数组。谢谢@PeterI决定使用绝对路径数组。谢谢@Peter