如何为自定义事实添加依赖项 -在所有 exec 命令之前首先执行的事实['name']



实际上我正在从ftp下载文件列表,并从下载的路径中读取所有文件名列表进行处理。

exec{"download from ftp ${value}"我正在下载包含文件的目录和子目录,从 ftp 到本地。从该路径,我使用自定义事实获取列表$facts['listdirectory']

我的问题是Facts['listdirectory']是在从ftp下载之前执行的。

如何在下载后向$datadir=$facts['listdirectory']添加依赖项或如何使此事实得到执行?

class classname{
exec{"download from ftp ${value}":
command => "wget -r --user=${ftp_username}  -- 
password=${ftp_password}  ${value}/* -P ${patch_download_path}",
path    => ['/usr/bin', '/usr/sbin',],
timeout => 1800,
user    =>'root',
}
$datadir=$facts['listdirectory']
}

我的问题是 Facts['listdirectory'] 在从 ftp 下载之前被执行。

看起来你的意思是在下载目录内容(而不是事实实现)之前确定事实的值。 无论如何,这当然是将要发生的事情。

首先评估将通知给定目录构建运行的所有事实,然后作为一个组交付给目录构建器(通常在木偶主节点上远程运行)。 这为目录生成器提供了计算机状态的一致快照,因为它通过根据提供的事实评估清单来计算所需的目标状态。 结果以类和资源目录的形式提供,然后由本地 Puppet 应用。

只有在目录应用程序阶段,Exec资源指定的命令才会运行。 这是在整个目录构建之后,并且在事实评估之后很久。 如果要动态适应已下载的内容,则必须在下一次Puppet 运行时执行此操作,或者编写脚本并通过相同或其他Exec资源运行脚本,或者编写包含整个过程的自定义类型和提供程序(可能也包括下载)。

最新更新