如何在模板中使用 Vault 项目?

How do I use vault items in templates?

我在学厨师。

我有这个食谱:

chef_gem 'chef-vault' do
  compile_time true if respond_to?(:compile_time)
end

require 'chef-vault'

vault = ChefVault::Item.load("vault01", "vaultitem1")

log 'DEBUG' do
  message vault['myuser']
  level :info
end

directory 'c:/blah'

template 'c:/blah/template.txt' do
  source 'template.txt.erb'
end

你可以看到我正在从配方中的保险库中获取价值。

我应该如何将这些值插入到我的模板文件中?

有什么方法可以从我的 template.txt.erb 内部获取保险库值?

使用variables属性。你传递一个散列,然后这些键在你的模板中作为变量可用:

template 'c:/blah/template.txt' do
  source 'template.txt.erb'
  variables vault: ChefVault::Item.load("vault01", "vaultitem1")
end

# and then in the template
<%= @vault['foo'] %>

另请查看 chef-vault 食谱(与 chef-vault gem 不同),它有一个很好的 chef_vault_item() 帮助程序来简化测试。