我想在我的 Linux 机器上以测试用户身份运行 Chef-client。为此,我在 client.rb 文件中添加了来自/etc/chef/client.rb 的缓存路径。
cache_path "~/.chef/cache"
然后我从测试用户(非root用户)运行chef-client命令。它显示错误?
Chef encountered an error attempting to create the client
如何设置缓存路径?是否需要将client.rb、chef-validator.pem、client.pem、first-boot.json移到测试用户下?
最佳答案
首先,chef 旨在以 root 身份运行。许多资源假设它们以 root 身份运行,并且需要它。如果不以 root 身份运行,它们将会失败。
对于您的错误,您的测试用户无权在 /etc/chef
(默认位置)中写入文件,并且需要写入 client.pem
节点证书。
一些想法:
- 将
/etc/chef
权限授予您的测试用户 - 使用
sudo
与测试用户一起运行 Chef 客户端(需要 sudoers 文件中的条目) - 修改
client.rb
文件,将client_key
指向您的测试用户主目录 - 以 root 身份首次运行 Chef,以便它可以写入其节点证书,然后就不必在
/etc/chef
中再次写入
关于chef-infra - 以非 root 用户身份运行 Chef 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28280211/