`Chef :: Config [:file_cache_path]`到底做了什么?

swi*_*lip 27 chef-infra

首先,我为提出这样一个愚蠢的问题而道歉.但我问的原因是因为我很难找到答案.我试过搜索Chef的文档,但我没有找到明确的解释.

究竟Chef::Config[:file_cache_path]提供了什么?我已经读过,最好使用它而不是硬编码文件路径.但它评价的是什么?

在这个特定的片段中

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
Run Code Online (Sandbox Code Playgroud)

提前致谢.

cod*_*ger 28

具体值因平台和安装方法而异,但该配置值默认为可以写出临时文件的地方.一般来说它会是这样的/var/chef/cache.这用于缓存其中的cookbook和文件,但正如您所指出的,您也可以使用自己的代码中的相同类型的东西.

  • 不使用/ tmp的其他原因是某些操作系统将其放在ramdisk上以提高速度,有些操作系统将其安装为noexec以保证安全性. (3认同)
  • 此外,/ tmp通常是模式1777,对于root运行进程而言,它更好地写入/ var下的自己的目录,而不是可能遭受symlink-in-tmp攻击以及由于该时髦模式位有时潜伏的其他不良.`Chef :: Config [:file_cach_path]`应该由运行chef-client的进程拥有,其他用户不应该写入它,这使得它比/ tmp或/ var/tmp更好. (2认同)