2012-03-27 1 views
22

Sotto il mio codice per l'installazione di vcider. Sto imparando lo chef ma non ho visto nulla per l'installazione di un dpkg. Mi piacerebbe usare la versione nella sceneggiatura. Il codice qui sotto funziona.Qual è il modo idiomatico per installare un pacchetto Debian usando Chef?

script "install_vcider" do 
    interpreter "bash" 
    user "root" 
    cwd "/tmp" 
    code <<-EOH 
    wget https://my.vcider.com/m/downloads/vcider_2.0.1b_amd64.deb 
    dpkg -i vcider__amd64.deb 
    EOH 
end 

Anche con il codice di cui sopra posso sostituire 2.0.1b con # {version}? attributo di file -> default [: vcider] [: versione] 2.0.1b

recipe file - > version = node[:vcider][:version] 

risposta

41

la cosa giusta è quella di utilizzare il built-in tipi di risorse. Presumendo che hai impostato le version e arch variabili in modo appropriato:

remote_file "/tmp/vcider_#{version}_#{arch}.deb" do 
    source "https://my.vcider.com/m/downloads/vcider_#{version}_#{arch}.deb" 
    mode 0644 
    checksum "" # PUT THE SHA256 CHECKSUM HERE 
end 

dpkg_package "vcider" do 
    source "/tmp/vcider_#{version}_#{arch}.deb" 
    action :install 
end 
+0

Grazie :) anche .... questo è corretto dopo l'installazione? servizio "vcider-nmd" supporta : status => true,: restart => true,: reload => true action [: enable,: start] end – Tampa

+0

@Tampa sembra plausibile. In realtà, ho la sfortuna di essere in un negozio di burattini proprio ora, quindi il mio chef sta diventando sempre più arrugginito. –

+0

Oh .... ho dovuto rimuovere richiedono per farlo funzionare. – Tampa