【问题标题】:What does `Chef::Config[:file_cache_path]` do exactly?`Chef::Config[:file_cache_path]` 究竟做了什么?
【发布时间】:2014-11-24 08:04:59
【问题描述】:

首先,我很抱歉问了这么愚蠢的问题。但我问的原因是因为我很难找到答案。我试过搜索 Chef 的文档,但没有找到明确的解释。

那么Chef::Config[:file_cache_path] 究竟提供了什么?我读过最好使用它而不是硬编码文件路径。但它的评估结果是什么?

在这个特殊的 sn-p 中

newrelic_agent = Chef::Config[:file_cache_path] + '/rewrelic_nginx_agent.tar.gz'


remote_file newrelic_agent do
  source 'http://nginx.com/download/newrelic/newrelic_nginx_agent.tar.gz'
  mode "0744"
end

提前致谢。

【问题讨论】:

    标签: chef-infra


    【解决方案1】:

    具体值因平台和安装方法而异,但该配置值默认为您可以写出临时文件的位置。通常它将类似于/var/chef/cache。这用于缓存食谱和其中的文件,但正如您所指出的,您也可以在自己的代码中使用它来做同样的事情。

    【讨论】:

    • 不使用 /tmp 的其他原因是某些操作系统将其放在 ramdisk 上以提高速度,而有些操作系统将其挂载为 noexec 以确保安全。
    • 谢谢。我只是找到了一个很好的解释here
    • @StephenKing 作为一个在过去两年里学到了很多 Chef 的人,我不能责怪他。仅 opscode 的网站上就有多个版本的文档,目前还不清楚哪个版本是最新的。最重要的是,找到正确的页面来回答任何给定的问题绝非易事。我知道你至少部分是在开玩笑,但我会说我不知道​​在文档中的哪里可以找到它。
    • 另外 /tmp 通常是模式 1777,它更适合 root 运行进程写入 /var 下自己的目录,而不是可能遭受 symlink-in-tmp 攻击和其他有时潜伏的不良情况到那个时髦的模式位。 Chef::Config[:file_cach_path] 应该归运行 chef-client 的进程所有,其他用户不能写入它,这使它成为比 /tmp 或 /var/tmp 更好的选择。
    • Chef::Config[:file_cache_path]e ;)
    猜你喜欢
    • 1970-01-01
    • 2012-07-23
    • 2016-09-10
    • 2023-03-15
    • 2012-10-17
    • 2021-06-04
    • 1970-01-01
    • 2018-07-30
    • 2019-10-06
    相关资源
    最近更新 更多