puppet:创建符号链接并将文件保存在原始目录中

时间:2015-11-19 10:10:42

标签: postgresql puppet

我通过Centos7中的puppet安装的软件会创建一个默认文件夹,其中包含该文件夹中的一些文件。但是,我想通过符号链接将该目录移动到另一个目录。 我设法使用以下代码使其运行一次:

  #create symlink for xlog partition
  file { '/pglogs/94/':
    ensure  => present,
    source  => "/var/lib/pgsql/9.4/data/pg_xlog/",
    recurse => true,
  } ->
  file { '/var/lib/pgsql/9.4/data/pg_xlog/':
    ensure => 'link',
    target => '/pglogs/94/',
    force  => true,
  }

但是从第二次开始我得到了错误:

  

注意:/ Stage [main] / Dap :: Dwh / File [/ pglogs / 94 /]:不删除   目录;使用' force'覆盖通知:   / stage [main] / Dap :: Dwh / File [/ pglogs / 94 /]:不删除目录;使用   '力'覆盖错误:无法删除现有文件错误:   / stage [main] / Dap :: Dwh / File [/ pglogs / 94 /] / ensure:从目录更改   链接失败:无法删除现有文件   / Stage [main] / Dap :: Dwh / File [/ pglogs / 94 / archive_status]:依赖   文件[/ pglogs / 94 /]出现故障:true警告:   / Stage [main] / Dap :: Dwh / File [/ pglogs / 94 / archive_status]:跳过   因为依赖关系失败注意:   /阶段[主要] /沓:: DWH /文件[/ pglogs / 94/000000010000000000000001]:   依赖文件[/ pglogs / 94 /]有失败:true警告:   /阶段[主要] /沓:: DWH /文件[/ pglogs / 94/000000010000000000000001]:   因依赖失败而跳过提示:   /Stage[main]/Dap::Dwh/File[/var/lib/pgsql/9.4/data/pg_xlog/]:   依赖文件[/ pglogs / 94 /]有失败:true警告:   /Stage[main]/Dap::Dwh/File[/var/lib/pgsql/9.4/data/pg_xlog/]:跳过   因为依赖失败

在创建符号链接时,不应尝试再次复制文件。但它似乎仍在尝试..

1 个答案:

答案 0 :(得分:1)

好的,我找到了答案。

我忘了添加' links =>遵循'复制部分。 最终的代码变成这样:

#create symlink for xlog partition
file { '/pglogs/94/':
  ensure  => present,
  source  => "/var/lib/pgsql/9.4/data/pg_xlog/",
  recurse => true,
  links   => follow,
} ->
file { '/var/lib/pgsql/9.4/data/pg_xlog/':
  ensure => 'link',
  target => '/pglogs/94/',
  force  => true,
}  

links => follow确保copy语句知道文件已经存在。