2017-05-01 2 views
0

Unten ist die Ressource, die ich benutze, um viele Dateien zu kopieren.Wie definiert und ruft man ein Array im Koch auf?

['contacts_nagios2.cfg','generic-host_nagios2.cfg','generic-service_nagios2.cfg','hostgroups_nagios2.cfg','services_nagios2.cfg','timeperiods_nagios2.cfg'].each do |file| 
    cookbook_file "/etc/nagios3/conf.d/#{file}" do 
    source "#{file}" 
    mode '0644' 
    end 
end 

Können wir definieren [ 'contacts_nagios2.cfg', 'generic-host_nagios2.cfg', 'generic-service_nagios2.cfg', 'hostgroups_nagios2.cfg', 'services_nagios2.cfg', 'timeperiods_nagios2.cfg '] als Attribut innerhalb des gleichen Rezepts?

+0

Wie jedes andere Attribut? Was hast du probiert? – StephenKing

Antwort

2

Dies wird ein Attribut vom Typ Array erstellen und kann innerhalb der Rezeptdatei definiert werden:

node.default['nagios_config_files']=['contacts_nagios2.cfg','generic-host_nagios2.cfg','generic-service_nagios2.cfg','hostgroups_nagios2.cfg','services_nagios2.cfg','timeperiods_nagios2.cfg'] 

und wenn Sie später tun können, um das hinzufügen möchten:

node.default['nagios_config_files']|=['more_configs.cfg','even_more_configs.cfg'] 

(Hinweis das Rohr ‚|‘ vor dem Schild ‚=‘)

Dann können Sie das Attribut wie verwenden vor:.

node['nagios_config_files'].each do |file| 
    cookbook_file "/etc/nagios3/conf.d/#{file}" do 
    source "#{file}" 
    mode '0644' 
    end 
end 
Verwandte Themen