Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Recursion 复制目录,但不复制其内容_Recursion_Copy_Puppet - Fatal编程技术网

Recursion 复制目录,但不复制其内容

Recursion 复制目录,但不复制其内容,recursion,copy,puppet,Recursion,Copy,Puppet,我想管理文件/home/user\u name/scripts/file0,/home/user\u name/scripts/file1。。。在我的节点上,作为主节点上具有相同路径的文件的副本 依靠/home/user\u name出现在每个节点上,我将其放入清单中: file { '/home/user_name/scripts': ensure => 'directory', path => '/home/user_name/scripts', recurs

我想管理文件
/home/user\u name/scripts/file0
/home/user\u name/scripts/file1
。。。在我的节点上,作为主节点上具有相同路径的文件的副本

依靠
/home/user\u name
出现在每个节点上,我将其放入清单中:

file { '/home/user_name/scripts':
  ensure  => 'directory',
  path    => '/home/user_name/scripts',
  recurse => true
}
这确实会获取在每个节点上创建的目录,但内容是
file0
file1
。。。没有被复制

我试图添加一个
source
参数,还添加了
recurse=>remote
,但没有进一步成功

更新:尝试添加
参数时,我添加了:

file { '/home/user_name/scripts':
  ensure  => 'directory',
  path    => '/home/user_name/scripts',
  recurse => true,
  source  => '/home/user_name/scripts'
}
但是没有成功。顺便说一句,下面是运行
puppet apply


如果希望Puppet复制文件,则需要告诉Puppet从哪里复制文件,即提供源属性:

file {'/my/path':
    ensure  => 'directory',
    path    => '/my/path',
    recurse => true,
    source  => '/home/user_name/scripts',
    }

这将创建一个目录/my/path,并将所有文件和目录从节点的本地目录/home/user\u name/scripts递归复制到/my/path。

如果希望Puppet复制文件,则需要告诉Puppet从哪里复制文件,即提供源属性:

file {'/my/path':
    ensure  => 'directory',
    path    => '/my/path',
    recurse => true,
    source  => '/home/user_name/scripts',
    }

这将创建一个目录/my/path,并将所有文件和目录从节点的本地目录/home/user\u name/scripts递归复制到/my/path。

@MattSchuchard已经指向您。他们解释说Puppet支持
source
参数形式的四种选择,并且您尝试使用的形式依赖于本地文件作为被管理文件的源。也就是说,本地到正在配置的节点

如果您想使用驻留在主机上的文件作为源,并且客户端无法直接访问这些文件(例如,通过网络文件系统),那么您只剩下两种选择:使用
puppet:
http:
方案的URI。除非您想在主机上运行HTTP服务器,否则只有
puppet:
URI才是真正可行的选择

但是,默认情况下,Puppet的文件服务器只提供模块外的文件,而不是任意路径的文件。为什么要从主文件系统中提供任意文件?多大的灾难啊。为什么一般用户需要主目录呢

最好的解决方案是将目录树放在
文件
资源出现的任何模块中——比如mymodule/files/user\u name/scripts。然后您可以这样编写资源:

file { '/home/user_name/scripts':
  ensure  => 'directory',
  recurse => true,
  source  => 'puppet://modules/mymodule/user_name/scripts'
}

但如果您坚持,您应该能够将源文件保留在现在的位置,并使用符号链接将其修补在一起:

mymodule/files/user_name-scripts -> /home/user_name/scripts
。。。而且

file { '/home/user_name/scripts':
  ensure  => 'directory',
  recurse => true,
  source  => 'puppet://modules/mymodule/user_name-scripts',
  links   => 'follow'
}

@MattSchuchard已经指给你看了。他们解释说Puppet支持
source
参数形式的四种选择,并且您尝试使用的形式依赖于本地文件作为被管理文件的源。也就是说,本地到正在配置的节点

如果您想使用驻留在主机上的文件作为源,并且客户端无法直接访问这些文件(例如,通过网络文件系统),那么您只剩下两种选择:使用
puppet:
http:
方案的URI。除非您想在主机上运行HTTP服务器,否则只有
puppet:
URI才是真正可行的选择

但是,默认情况下,Puppet的文件服务器只提供模块外的文件,而不是任意路径的文件。为什么要从主文件系统中提供任意文件?多大的灾难啊。为什么一般用户需要主目录呢

最好的解决方案是将目录树放在
文件
资源出现的任何模块中——比如mymodule/files/user\u name/scripts。然后您可以这样编写资源:

file { '/home/user_name/scripts':
  ensure  => 'directory',
  recurse => true,
  source  => 'puppet://modules/mymodule/user_name/scripts'
}

但如果您坚持,您应该能够将源文件保留在现在的位置,并使用符号链接将其修补在一起:

mymodule/files/user_name-scripts -> /home/user_name/scripts
。。。而且

file { '/home/user_name/scripts':
  ensure  => 'directory',
  recurse => true,
  source  => 'puppet://modules/mymodule/user_name-scripts',
  links   => 'follow'
}

我们可以看到您声称添加了
source
属性的实际资源,以及目录应用期间代理的相关输出吗。@MattSchuchard我刚刚编辑了我的帖子
source
属性看起来可疑。请尝试查看以下内容:。此外,代理输出中没有
文件
。抱歉@MattSchuchard文档不清楚。
source
属性应该是什么样子?我想避免使用
puppet://
,因为我可能会遇到将主服务器上的本地文件夹同步到主服务器的情况agents@user2478159,您打算从何处复制文件?这决定了
属性的值应采用何种形式。马特链接的文档中也包含了这一点,那么您不清楚其中的哪一部分?我们可以看到您声称添加了
source
属性的实际资源,以及目录应用期间代理的相关输出吗。@马特舒查德我刚刚编辑了我的帖子
source
属性看起来可疑。请尝试查看以下内容:。此外,代理输出中没有
文件
。抱歉@MattSchuchard文档不清楚。
source
属性应该是什么样子?我想避免使用
puppet://
,因为我可能会遇到将主服务器上的本地文件夹同步到主服务器的情况agents@user2478159,您打算从何处复制文件?这决定了
属性的值应采用何种形式。Matt链接的文档中也包含了这一点,那么您不清楚其中的哪一部分?谢谢您的回复!我已经实现了
puppet
URI,但没有使用符号链接;)现在我知道没有办法做到这一点,谢谢你的回复!我已经实现了
puppet
URI,但没有使用符号链接;)现在我知道了