2015-07-24 18 views
10

VirtualBox'ta vagrant ile bir Red Hat Enterprise Linux 7 VM'si oluşturuyorum. Her ikisi kayıtlı değil VirtualBox misafir eklemeler var ve olmayan bir taban kutu varsa, o el aşağıdakileri yapmanız gerekir:Vagrant middleware eklentilerinin çalışma sırasını nasıl tanımlayabilirim?

  • abonelik yöneticisi ile kutu Kayıt
  • Misafir eklerini yükle

İlk olarak kayıt işlemini gerçekleştirmem gerekmesinin sebebi, misafir eklemeleri yüklemek için fazladan paketler yüklemem gerekiyor.

Artık, bu görevlerin her ikisi için de üçüncü taraf vagrant eklentileri vardır: vagrant-registration ve vagrant-vbguest.

Yaptığım sorun, vagrant-vbguest eklentisinin her zaman ilk önce çalıştırmayı denemesi ve ihtiyaç duyduğu paketleri indirememesidir, çünkü vagrant-registration eklentisi henüz sistemi kaydetme şansına sahip değildir.

Onlardan birini diğerinden önce çalıştırmak için zorlamak için bir yolu var mı? Ya da henüz düşünmediğim başka bir alternatif çözüm (ben serseri bir sihirbaz değilim (ya da sadece bir vagrant mı?) Henüz)?

+0

aradığınız cevabı olmayabilir yani https://github.com/projectatomic/adb-vagrant-registration/issues/69

sorunu düzeltildi ve sabit sürümü yayınlandığında Bkz ancak vm için vbguest eklentiyi devre dışı bırakabilir ('config.vbguest ekledi. auto_update = false') ve "vagrant vbguest" ile başlatıldıktan sonra manuel olarak çalıştırın. –

+0

@ FredericHenri Evet, bunu anladım, teşekkürler. Aradığım şey daha iyi bir yol. Yine de yorum yaptığınız için teşekkürler :) –

cevap

4
benim yorumların ruhu içinde

ama doğru sırada aday olacağını (kendim deneyin vermedi) olsa daha otomatik bir şekilde

Düzenleme

VAGRANTFILE_API_VERSION = "2" 
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 
    config.vbguest.auto_update = false 

    if Vagrant.has_plugin?("vagrant-registration") 
    system "vagrant vbguest --auto-reboot --no-provision" if ARGV[0] == 'up' 
    end 

emin olmalıdır Bu kodla ilgili sorun, komut çalıştırıldığında vbgugu çalıştırabilmesi için vgu çalıştırılmadan önce klavyeyi çalıştırabilmesidir. Makine önyüklendikten sonra belirli komut

config.vbguest.auto_update = false 
config.trigger.after :up do 
    run "vagrant vbguest --auto-reboot --no-provision" 
end 

vbguest doğru çalıştırılır çalıştırıldıktan sonra

görüyorum diğer olasılık belirli komut dosyasını çalıştırmak için serseri tetik eklentisi (https://github.com/emyl/vagrant-triggers), tanımlayabilirsiniz kullanmaktır

==> default: Machine booted and ready! 
==> default: Checking for guest additions in VM... 
    default: The guest additions on this VM do not match the installed version of 
    default: VirtualBox! In most cases this is fine, but in rare cases it can 
    default: prevent things such as shared folders from working properly. If you see 
    default: shared folder errors, please make sure the guest additions within the 
    default: virtual machine match the version of VirtualBox you have installed on 
    default: your host and reload your VM. 
    default: 
    default: Guest Additions Version: 4.2.0 
    default: VirtualBox Version: 4.3 
==> default: Mounting shared folders... 
    default: /vagrant => /Users/fhenri/project/examples/vagrant/precise 
==> default: Running triggers after up... 
==> default: Executing command "vagrant vbguest --auto-reboot --no-provision"... 
==> default: GuestAdditions versions on your host (4.3.16) and guest (4.2.0) do not match. 
:

vagrant up çalışan çıktısını (ilginç kısmı) (yani serseri-kayıttan sonra kendi eşyalarını farz ediyorum)

Konuk eklentileri yüklenir ve makine yeniden başlatıldı Tamam

+0

Girişiniz için teşekkürler. Vagrant, exec ile çalıştırılmaktan hoşlanmıyor gibi görünüyor. İşte aldığım şey (bunu "vagrant durumuna" dönüştürsem bile): "Vagrant bir Bundler ortamında çalışıyor gibi görünüyor.Sizin mevcut Gemfile kullanılacaktır. Vagrant, "vagrant plugin" ile yüklenen tüm eklentilerini otomatik olarak yüklemez. Vagrant, herhangi bir eklentiyi 'da Gemfile'ınızdaki 'eklentiler' grubunda otomatik olarak yükleyecektir. Vagrant'ı 'u VAGRANT_FORCE_BUNDLER ile devralmaya zorlayabilirsiniz. "Bu sonsuza kadar döngü yapar. –

+0

" exec'by 'system' değiştirmeyi denediniz mi? –

+0

Şimdi bunu denedim ve host makinemi vagrant süreçlerle öldürdüm. Sadece belirli vagrant komutları için 'exec' ya da 'system' için bir yol var mı? Bence sorun, 'vagrant status' –

İlgili konular