Chef infra 在Chef文件资源中动态添加当前用户名

Chef infra 在Chef文件资源中动态添加当前用户名,chef-infra,recipe,Chef Infra,Recipe,我有以下chef方法将一些数据写入current用户主目录中的文件。正如您所看到的,vagrantuser在我的例子中是硬编码的。我必须怎么做才能使代码根据当前登录的用户动态获取用户 file '/home/vagrant/.ssh/id_rsa' do content "This is the super secret" mode '0755' owner 'vagrant' group 'vagrant' end 我尝试过做如下操作,但不起作用: file'/home/{n

我有以下
chef
方法将一些数据写入
current
用户主目录中的文件。正如您所看到的,
vagrant
user在我的例子中是硬编码的。我必须怎么做才能使代码根据当前登录的用户动态获取
用户

file '/home/vagrant/.ssh/id_rsa' do
  content "This is the super secret"
  mode '0755'
  owner 'vagrant'
  group 'vagrant'
end
我尝试过做如下操作,但不起作用:


file'/home/{node['user']}/.ssh/id\u rsa'
在几乎所有情况下
chef-client
chef-solo
都是以root用户身份运行的,既可以作为系统服务,也可以通过
sudo
。如果这是为了在测试厨房中设置测试环境,只需硬编码即可。如果这是为工作站设置的,那么您可以在
ENV['USER']

中找到用户名,几乎所有情况下
chef-client
chef-solo
都是以root用户身份运行的,无论是作为系统服务还是通过
sudo
。如果这是为了在测试厨房中设置测试环境,只需硬编码即可。如果这是为工作站设置的,那么您可以在
ENV['USER']

中找到用户名。如果您谈论的是谁在运行
chef client
命令,那么请删除所有者和组,让系统执行此操作。如果不是(chef在crontab中以root用户身份或以服务身份运行),这就没有实际意义。如果您正在谈论谁在运行
chef client
命令,那么请删除所有者和组,让系统来执行。如果不是(chef在crontab中以root用户或服务身份运行),这就没有实际意义。