通过 chef 文件资源内容在文件中写入两个变量

Writing two variables in a file via chef file resource content

是否可以在不使用模板 erb 文件的情况下将两个变量写入 chef 生成的文件?

username = secret[:username]
password = secret[:password]

file "/home/secret_file.txt" do
  content username password
  owner 'user'
  group 'user'
  mode '0755'
end

仅添加一个变量按预期工作,但如上所示使用两个变量我收到一条错误消息“Chef::Resource::File 的未定义方法‘用户名’”

您要在文件的一行中添加这些变量吗?内容属性取字符串类型

您可以使用字符串插值来创建字符串并将内容添加到文件中:

username = secret[:username]
password = secret[:password]

file "/home/secret_file.txt" do
  content "#{username} #{password}"
  owner 'user'
  group 'user'
  mode '0755'
end

或者如果您需要以某种方式格式化它:

username = secret[:username]
password = secret[:password]
output = <<-CODE
The username is #{username}
The password is #{password}
CODE

file "/home/secret_file.txt" do
  content output
  owner 'user'
  group 'user'
  mode '0755'
end