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

标签 chef-infra

我想在我的 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节点证书。

一些想法:

  1. /etc/chef 权限授予您的测试用户
  2. 使用 sudo 与测试用户一起运行 Chef 客户端(需要 sudoers 文件中的条目)
  3. 修改 client.rb 文件,将 client_key 指向您的测试用户主目录
  4. 以 root 身份首次运行 Chef,以便它可以写入其节点证书,然后就不必在 /etc/chef 中再次写入

关于chef-infra - 以非 root 用户身份运行 Chef 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28280211/

相关文章:

mysql - 如果我 include_recipe "database::mysql",我可以使用 mysql_database 资源吗?

ubuntu - 在资源 `install` 上执行操作 'package[libmysqlclient-dev]' 时出错

windows - 运行 berks install 时出错

测试 Chef 角色和环境

windows - 以编程方式附加到 Windows 中所有用户的路径。

amazon-web-services - 当我们不提及节点名称时,Chef 如何获取 aws ec2 的实例 ID

chef-infra - 我的 Chef Server 服务器应该显示为一个节点吗?

chef-infra - 删除没有管理员权限的 Chef 库项目

amazon-web-services - AWS、Packer、Vagrant 和 Chef 它们如何协同工作?

chef-infra - Chef,如何在创建服务之前运行创建 init.d 脚本的模板