Kök projesinde Vagrantfile olan bir yemek kitapları klasörüm var. Sadece yemek kitapları bir çift var (marş"apt" bağlıdır ve veritabanı mysql bağlıdır). Bu yemek kitapları, berks yemek kitabıyla üretildi.vagrant Berkshelf berksfile_path
Şimdi sorun Vagrantfile içinde config.berkshelf.berksfile_path ayarlamak için geldiğinde koyarsanız, bilmiyorum ./cookbooks/starter/Berksfile veya ./cookbooks/database/Berksfile olduğunu Her iki yemek kitabında da bağımlılık var. İkinci satıcı yemek kitapları üzerine yazılacağı oluşturulan beri
Ben yemek kitapları-src içine bu yemek kitapları taşımak ve yineleme her biri içinden ve Berks satıcı ../../cookbooks yürütmek ama işe yaramadı gibi birden çok seçenek çalıştı önceki.
Ayrıca, her yemek kitaplarının bağımlılıklarını ./cookbooks/the-cookbook/cookbooks içine de denedim ancak vagrant bunları tanımıyor. =================================
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.hostname = "chef-DK"
config.vm.provider "virtualbox" do |v|
v.customize ["modifyvm", :id, "--cpuexecutioncap", "67"]
v.memory = 537
end
config.berkshelf.enabled = true
config.berkshelf.berksfile_path = "./cookbooks/starter/Berksfile"
config.vm.provision :chef_solo do |chef|
chef.install = false
chef.run_list = [
'recipe[starter::default]',
'recipe[database::default]'
]
end
end
project/
├── cookbooks/
│ ├── database
│ │ ├── recipes
│ │ ├── Berksfile
│ │ └── metadata.rb
│ └── starter
│ ├── recipes
│ ├── Berksfile
│ └── metadata.rb
└── Vagrantfile
:
Bu benim serseri dosyasıdır =========== başlangıç / metadata.rb arasında
içeriği:
name 'starter'
maintainer 'YOUR_NAME'
maintainer_email 'YOUR_EMAIL'
license 'All rights reserved'
description 'Installs/Configures starter'
long_description 'Installs/Configures starter'
version '0.1.0'
depends 'apt', '~> 3.0.0'
içeriği marş/Berksfile:
source "https://supermarket.chef.io"
metadata
cookbook 'apt', '~> 3.0.0'
=============================================================== veritabanı/Berksfile ait
name 'database'
maintainer 'The Authors'
maintainer_email '[email protected]'
license 'all_rights'
description 'Installs/Configures database'
long_description 'Installs/Configures database'
version '0.1.0'
depends 'mysql', '~> 6.0'
içeriği: veritabanı/metadata.rb ait
Ben berkshelfmetadata
talimat yemek kitabı metadata.rb okur olduğunu açıklamak istiyorum her şeyden source "https://supermarket.chef.io"
metadata
cookbook 'mysql', '~> 6.1.3'
"MetaSayfa" ve "Bağımlılık" öğelerinizin çıktısını "metadata.rb" dosyalarınıza ekler misiniz? sadece alışılmadık bir bağımlılığınızın olmadığını kontrol etmek için. Muhtemelen diğer iki yemek kitabını içeren başka bir üçüncü Berksfile oluşturmanız gerekecektir. – zuazo
Sadece ana soruya istediğin şeyi ekledim. Bu çift yemek kitabının bulunduğu kök klasörüne bir berksfile eklemeyi denedim ancak daha sonra berbat, berksfile yanında hiçbir metadata.rb olmadığından şikayet ederdi. Aslında çalıştığım ancak aradığım şey olmayan bir geçici çözüm denedim. Ben sadece benim başlangıç / berksfile bir öznitelik veritabanı özgeçmişine yol özniteliği ile koydum ve aynı zamanda veritabanı/berksfile tüm bağımlılıkları starter/berksfile ve nihayet satıcı başlangıç yemek kitabına taşıyorum ama yine de bu aslında aradığım şey değil istediğim gibi çalış. –