Chef infra Chef服务器上存储的cookbook_文件在哪里
我创建了一个非常基本的配方:Chef infra Chef服务器上存储的cookbook_文件在哪里,chef-infra,Chef Infra,我创建了一个非常基本的配方: cookbook_file "cookbook_test_file" do path "/tmp/test_file123" action [:create_if_missing, :create] end 我还在我的食谱中的files->default下创建了食谱\u test\u文件,并将食谱添加到运行手册中 一切都很完美。 该文件被传播到客户端。如果在客户端上更改了文件,那么下次运行chef客户端时,该文件将按预期更新。没有问题 但是,我在chef服
cookbook_file "cookbook_test_file" do
path "/tmp/test_file123"
action [:create_if_missing, :create]
end
我还在我的食谱中的files->default下创建了食谱\u test\u文件,并将食谱添加到运行手册中
一切都很完美。
该文件被传播到客户端。如果在客户端上更改了文件,那么下次运行chef客户端时,该文件将按预期更新。没有问题
但是,我在chef服务器上的任何位置都找不到cookbook_test_文件。我尝试按如下方式完全限定该文件的默认目录:
/usr/local/bin/cookbook\u test\u文件,但无效
这些文件存储在chef服务器的何处?我也没有在PostgreSQL数据库中看到它
谢谢。它们最终被放在书架上的文件存储中,但不能直接使用。查看
/var/opt/chef server/bookshelf
,这些文件是通过内容哈希存储的,并且在它们前面有一个CRC检查
不过,文件元数据都存储在Postgres中,无论是沙盒数据还是烹饪书版本。@coderanger已经提供了您想要的答案 我想补充的是,刀子可以用来检查作为烹饪书一部分上传的内容。以下示例返回apache2 cookbook中的所有文件:
$ knife cookbook show apache2 2.0.0 files -Fj
[
{
"name": "apache2_module_conf_generate.pl",
"path": "files/default/apache2_module_conf_generate.pl",
"checksum": "424ea6efb9da5b8cd9739f7f0f1fc9d5",
"specificity": "default",
"url": "http://127.0.0.1:8889/file_store/checksums/424ea6efb9da5b8cd9739f7f0f1fc9d5"
}
]
你为什么在乎?内容散列存储的影响之一是,您无法更改服务器上的内容(因为更改内容会更改其散列值),因此即使知道内容在哪里,您也无法轻松更改它们。。。由于重定向层的原因,要知道它们在哪里并不容易。谢谢你的回答。我只想看看文件上传是否正确。那么,指定完整路径并只指定文件名是否有意义呢?谢谢您的解释。