使用puppet管理不同子目录下的一组文件

使用puppet管理不同子目录下的一组文件

因此我需要为 Windows 上的某些用户生成文件树。

我需要提供一个用户列表,最好是来自外部事实,并让 puppet 确保一组文件位于一个目录中(但允许不同的非托管文件),并且该目录命名为:C:\VaultWorkspace\username\Vault

因此,我将拥有与指定用户数量相同的用户名目录。我想要用户名目录和用户名用户拥有的文件...我最好的猜测是以下,但它不起作用。

我见过:是否可以使用 Puppet 来确保目录中存在多个文件而无需定义所有文件?其中看起来像“当然,如果到“/my/dir”的路径很长或者文件很多,就会变得有点笨拙,所以在这种情况下,你最好创建一个包含目录路径的定义,然后将文件名数组传递给它。”这是我想要做的,但是那篇文章并没有解释这个定义......

class inventor {
    case $kernel {
            'linux': {

            }

            'windows': {
  @file {'VaultWorkspace':
  path => "C:/VaultWorkspace/${user}/Vault",
  source => "puppet:///modules/inventor/Vault",
  recurse => true,
  owner => "${user}",
  group => 'Users',
  mode => 0755,
  ensure => present,
  }

  realize File["$inventorusers"]
            }
    }
}

$inventorusers = ['username1','username2','usernamen']

答案1

定义类型可以完成这项工作:

define userworkspace {
  file { "VaultWorkspace-${title}":
    path    => "C:/VaultWorkspace/${title}/Vault",
    source  => "puppet:///modules/inventor/Vault",
    recurse => true,
    owner   => $title,
    group   => 'Users',
    mode    => 0755,
    ensure  => present,
  }
}

$inventorusers = ['username1','username2','usernamen']

userworkspace { $inventorusers: }

相关内容