2016-01-03 3 views
1

мне нужно установить libgmp3-dev пакет для Ubuntu,Установить меткое пакет через Chef соло и Vagrant

Vagrant файл:

VAGRANTFILE_API_VERSION = "2" 

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 
    config.vm.box = "ubuntu/trusty64" 
    config.vm.provision :chef_solo do |chef| 
    chef.cookbooks_path = ["chef/site-cookbooks", "cookbooks"] 
    chef.add_recipe "build-essential" 
    chef.add_recipe "apt" 
    end 
end 

шашлычник/сайт-поваренные книги/системы/рецепты/default.rb:

package 'libgmp3-dev' do 
    action :install 
end 

Но когда я создал виртуальную машину, внутри не было libgmp3-dev.

Обновление. нашел это решение:

config.vm.provision :shell, :inline => 'sudo apt-get install libgmp3-dev -y' 

Но я думаю, что это не очень хорошее решение

+0

Я определенно согласен, что использование средства обеспечения оболочки не очень хорошее решение для установки программного обеспечения. Не совсем понятно, есть ли у вас своя собственная «системная» кулинарная книга или если вы используете ее в супермаркете, но у вас есть ответы ниже, которые должны помочь вам в любом случае. –

ответ

3

Если вы используете system cookbook from Supermarket, вам необходимо включить system::install_packages рецепт и установить node['system']['packages']['install'] атрибут:

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 
    config.vm.box = "ubuntu/trusty64" 
    config.vm.provision :chef_solo do |chef| 
    chef.cookbooks_path = ["chef/site-cookbooks", "cookbooks"] 
    chef.add_recipe "build-essential" 
    chef.add_recipe "apt" 

    chef.add_recipe "system::install_packages" 
    chef.json = { 
     "system" => { 
     "packages" => { 
      "install" => ["libgmp3-dev"] 
     } 
     } 
    } 
    end 
end 

Если вы используете свою собственную system поваренную книгу с этой инструкцией package, которую вы вставили, я думаю, что the solution proposed by Patrick Lee должно быть достаточно.

1

Основываясь на Vagrant docs for the Chef Solo provisioner, это выглядит, как вы пропустили рецепт в вашем Vagrantfile ...

chef.add_recipe "system" 
+0

Добавлен «системный» рецепт в мой бродячий файл, но это не помогло. Нужно ли также добавлять что-то вроде этой 'system :: install_packages'? [Ссылка для этого рецепта] (https://github.com/xhost-cookbooks/system) – Meldum

+0

Интересно, есть ли проблема столкновения имен с системной кулинарной книгой в супермаркете шеф-повара. Не могли бы вы переименовать папку 'system' в' site-cookbooks', а затем обновить строку 'chef.add_recipe' в вашем Vagrantfile соответственно? –

Смежные вопросы