2012-03-27 11 views
22

Debajo de mi código para instalar vcider. Estoy aprendiendo chef pero no he visto nada para instalar un dpkg. Me gustaría usar la versión en el script. El código a continuación funciona.¿Cuál es la forma idiomática de instalar un paquete 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 

Incluso con el código anterior, ¿puedo reemplazar 2.0.1b con # {version}? archivo de atributos -> default [: vcider] [: versión] 2.0.1b

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

Respuesta

41

lo correcto es utilizar el incorporado en los tipos de recursos. Suponiendo que haya configurado los versionarch y las variables adecuadamente:

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

Gracias :) también .... es esto correcto después de instalar? el servicio "vcider-nmd" do admite: estado => true,: restart => true,: reload => verdadero acción [: enable,: start] final – Tampa

+0

@Tampa parece plausible. De hecho, tengo la desgracia de estar en una tienda de marionetas en este momento, por lo que mi Chef se está volviendo cada vez más oxidado. –

+0

Oh .... Tuve que eliminar requieren para que funcione. – Tampa

Cuestiones relacionadas