我通过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/]:跳过 因为依赖失败
在创建符号链接时,不应尝试再次复制文件。但它似乎仍在尝试..
答案 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语句知道文件已经存在。