簡體   English   中英

測試食譜時,Chef-Solo在Vagrant中找不到設備錯誤

[英]Device not found error in Vagrant with Chef-Solo while testing cookbook

我在存儲庫中創建了一些食譜,這些食譜在AWS實例中執行。 我在AWS的位置dev/xvdb處手動創建一個EBS卷,然后使用以下廚師代碼安裝它:

mount "mount encrypted EBS volume at opt directory for app deployment" do
  action [:mount, :enable]
  device "/dev/xvdb"
  fstype "ext3"
  mount_point "/opt"
end

現在,為了在本地測試菜譜,我配置了一個無用的框並嘗試運行其中包含上述代碼的菜譜。 我有以下Vagrant配置:

Vagrant.configure("2") do |config|
  config.vm.box = "precise32"
  config.vm.provision "chef_solo" do |chef|
      chef.cookbooks_path = "cookbooks"
      chef.data_bags_path = "databags"
      chef.environments_path = "environments"
      chef.environment = "dev"
      chef.roles_path = "roles"
      chef.add_role("webapp")
  end
end

但是由於Vagrant框沒有/dev/xvdb文件夾路徑,因此它失敗並顯示:

==>默認:Chef :: Exceptions :: Mount ==>默認:==>默認:----------------------- ==>默認: ==>默認值:設備/ dev / xvdb不存在

如何在流浪漢盒子上本地進行測試?

添加諸如only_if { node['ec2'] }以便僅在實際的EC2計算機上聚合該資源。 您還可以使用來自node['cloud']或類似內容的內容進行檢查,或者如果您想使其完全通用,則可以使用only_if { ::File.exist?('/dev/xvdb') }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM