2016-07-14 9 views
0

Ich lerne Koch.Wie verwende ich Vault-Elemente in Vorlagen?

Ich habe dieses Rezept:

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 

Sie können sehen, ich bin den Wert aus dem Tresor im Rezept zu bekommen.

Wie soll ich diese Werte in meine Vorlagendatei einfügen?

Gibt es eine Möglichkeit, die Vaults vaulles aus meiner Vorlage.txt.erb zu bekommen?

Antwort

1

Verwenden Sie die variables Eigenschaft. Sie geben es einen Hash und dann sind diese Schlüssel als Variablen in der Vorlage zur Verfügung:

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'] %> 

Auch der Koch-Gewölbe Kochbuch Check-out (die sich von der Koch-Gewölbe gem), die einen schönen chef_vault_item() Helfer muss Tests machen einfacher.

+0

Ah großartig, ich war mir nicht sicher, ob ich die Vault-Methoden in der Seite der Vorlage selbst aufrufen oder injizieren musste. Ich wollte mir das Kochbuch als nächstes ansehen, bin mir aber immer noch nicht sicher, welche Vorteile es über den Edelstein bietet. – red888

+1

Meistens nur dieser Helfer, und er hat ein Rezept, das du anstelle des 'chef_gem'-Schnipsels, den du hast, enthalten kannst. Es ist ziemlich minimal :) – coderanger