我的 hiera 文件中有这个结构,它在我的 smb.conf 中创建了一些规则。
samba::shares:
PDF:
- comment = "PDF"
- path = /home/smb/pdf
- browseable = yes
- hide dot files = yes
- read only = no
- public = yes
- writable = yes
- create mode = 0775
- printable = no
Partage:
- comment= "Partage"
- path = /home/smb/Partage
- browseable = yes
- hide dot files = yes
- read only = no
- public = yes
- writable = yes
- create mode = 0775
- printable = no
我想访问每个共享的路径以自动创建具有正确权限的文件夹。
我用 hiera_hash() 尝试了许多解决方案,但找不到正确的设置。:
define create_folder{
# I want to loop on PDF, Partage, etc. and extract path
# for each one (/home/smb/pdf, /home/smb/Partage, etc.).
$path = hiera_hash('path')
file{"$path":
path => $path,
ensure => diretory,
owner => "smb",
group => "smb",
require => File["/home/smb/"],
mode => '775',
}
}
你能帮我吗 ?
问候。
这是该
create_resources
方法的应用程序。在您的情况下,您不会从资源内部获取哈希,而是从外部获取:
的第二个参数
hiera_hash
是默认值。我更喜欢总是在那里保留一个空的哈希,以便能够在所有机器上加载资源,即使只有某些机器定义了值。最后,我添加了一个每次运行 puppet run 的脚本:
问候。