通过 Chef solo 和 Vagrant 安装 apt 包
Install apt package via Chef solo and Vagrant
我需要为 Ubuntu、
安装 libgmp3-dev
包
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
chef/site-cookbooks/system/recipes/default.rb:
package 'libgmp3-dev' do
action :install
end
但是我创建虚拟机的时候,里面没有libgmp3-dev
更新。 找到了这个解决方案:
config.vm.provision :shell, :inline => 'sudo apt-get install libgmp3-dev -y'
但我认为这不是一个很好的解决方案
根据 Vagrant docs for the Chef Solo provisioner,您的 Vagrantfile 中似乎缺少一个食谱...
chef.add_recipe "system"
如果您使用 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
说明,我认为 应该足够了。
我需要为 Ubuntu、
安装libgmp3-dev
包
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
chef/site-cookbooks/system/recipes/default.rb:
package 'libgmp3-dev' do
action :install
end
但是我创建虚拟机的时候,里面没有libgmp3-dev
更新。 找到了这个解决方案:
config.vm.provision :shell, :inline => 'sudo apt-get install libgmp3-dev -y'
但我认为这不是一个很好的解决方案
根据 Vagrant docs for the Chef Solo provisioner,您的 Vagrantfile 中似乎缺少一个食谱...
chef.add_recipe "system"
如果您使用 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
说明,我认为