Chef infra 以非root用户身份运行chef客户端

Chef infra 以非root用户身份运行chef客户端,chef-infra,Chef Infra,我想在我的linux机器上以测试用户的身份运行chef客户端。为此,我在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.pe

我想在我的linux机器上以测试用户的身份运行chef客户端。为此,我在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\u key
    指向测试用户主目录
  • 以root用户身份首次运行chef,这样它就可以写入其节点证书,这样就不必在
    /etc/chef

  • 添加了缓存路径“/home/test/cache”。这也显示了同样的错误,它说我可以读取您告诉我要签名的请求,这是在这个位置/etc/chef写入client.rb文件所必需的。我是否应该在/home/test location中创建一个文件夹'chef',并将文件放在那里(client.pem、client.rb、validation.pem)。嘿,我授予了chmod 777对文件夹/etc/chef/中存在的所有文件的权限。现在,chef客户端从测试用户运行。这条路对吗?我没有在client.rb文件中添加cache_路径?那么它是如何工作的。我检查了文件夹/var/chef/cache的权限,它的全部都是“755”模式