Puppet 木偶中的快速数列

Puppet 木偶中的快速数列,puppet,Puppet,我想创建如下文件夹: /opt/data/APP/app01…./opt/data/APP/app10 我如何表达这个木偶,下面的正确吗 file { [ '/opt/data','/opt/data/APP',"/opt/data/APP/app[01-10]" ]: ensure => directory, owner => 'appowner', group => 'appgroup', mode => '750', } 最

我想创建如下文件夹:

/opt/data/APP/app01…./opt/data/APP/app10

我如何表达这个木偶,下面的正确吗

file { [ '/opt/data','/opt/data/APP',"/opt/data/APP/app[01-10]" ]:
   ensure  => directory,
   owner   => 'appowner',
   group   => 'appgroup',
   mode    => '750',
}
最新木偶 stdlib中的函数与内置函数相结合,非常适合解决此问题。试试这个:

$dirs=展平([
“/opt/data”,
“/opt/data/APP”,
范围('/opt/data/APP/app01','/opt/data/APP/app10')
])
文件{$dirs:
确保=>目录,
所有者=>'appowner',
group=>appgroup',
模式=>'750',
}
测试:

▶ puppet apply test.pp
注意:在0.02秒内完成环境生产中编辑的已编译目录
注意:/Stage[main]/main/File[/opt/data]/sure:created
注意:/Stage[main]/main/File[/opt/data/APP]/sure:created
注意:/Stage[main]/main/File[/opt/data/APP/app01]/确保:已创建
注意:/Stage[main]/main/File[/opt/data/APP/app02]/sure:created
注意:/Stage[main]/main/File[/opt/data/APP/app03]/确保:已创建
注意:/Stage[main]/main/File[/opt/data/APP/app04]/确保:已创建
注意:/Stage[main]/main/File[/opt/data/APP/app05]/确保:已创建
注意:/Stage[main]/main/File[/opt/data/APP/app06]/sure:created
注意:/Stage[main]/main/File[/opt/data/APP/app07]/确保:已创建
注意:/Stage[main]/main/File[/opt/data/APP/app08]/确保:已创建
注意:/Stage[main]/main/File[/opt/data/APP/app09]/确保:已创建
注意:/Stage[main]/main/File[/opt/data/APP/app10]/确保:已创建
注意:0.03秒后应用目录
严格地说,
flant()
在这里是不需要的,因为数组数组将在上下文中自动展平。这种行为似乎没有记录在案

就个人而言,为了清晰易读,我还是会把它包括进去

傀儡3 但是,如果您有一个早期的Puppet,如Puppet 3,则需要显式地包含stdlib,并且没有
flatte()
函数。因此,你可以这样写:

包括stdlib
$dirs=[
“/opt/data”,
“/opt/data/APP”,
范围('/opt/data/APP/app01','/opt/data/APP/app10')
]
文件{$dirs:
确保=>目录,
模式=>'750',
}

更正:
[01-10]
\d+
什么是“\d+”意思?我把这个
\d
放在哪里表示数字<代码>+表示至少最后一个字符中的一个。这与正则表达式无关,实际上是关于如何在Puppet中模拟Bash括号扩展。这里是否可以使用
Integer[0,9]
而不增加复杂性?“我想不会的。”马特舒查德,我想是的,然后重复?我本来打算自己做的,直到我意识到范围函数似乎做了OP想要的一切。它是puppet 3的应用程序吗。8@user973430,我已使用Puppet 3解决方案进行了更新。