Vagrant, yürütülmesi için bir Kukla tezahürleri dizinine işaret edebilir mi?


9

Vagrant bazı başlangıç ​​Kukla yapılandırmasını başlatmak için Vagrant kullanıyorum ve modüller içine ekstra manifests yapmadan ve bu şekilde dahil olmadan kukla yürütme iş akışına birden fazla manifesto (sadece site.pp dışında) dahil / çalıştırmak nasıl karıştı.

Vagrant'ı işaret ettiğim kukla manifests dizininde (aşağıya bakın) yürütmek istediğim iki manifest var: site.pp ve hierasetup.pp.

config.vm.provision "puppet" do |puppet|
  puppet.manifests_path = "puppet_files/manifests"
  puppet.module_path    = "puppet_files/modules"
  puppet.manifest_file  = "site.pp"
  puppet.options = "--verbose --debug"
end 

Şu anda site.pp hierasetup.pp çağıran manifest olmak yaşıyorum. Sitem.pp şöyle görünüyor:

File {
  owner => 'root',
  group => 'root',
  mode  => '0644',
}

import "hierasetup.pp"

include jboss

Ama "içe aktarma" kullanımdan kaldırılması hakkında bu hatayı alıyorum:

Uyarı: 'import' kullanımı /tmp/vagrant-puppet-1/manifests/site.pp:33 adresinde kullanımdan kaldırıldı. Bkz http://links.puppetlabs.com/puppet-import-deprecation (: 610: grammar.ra de _reduce_190' ')' de

"Bunun yerine denenecekler" altındaki referans URL'ye göre " Düğüm tanımlarınızı ayrı dosyalarda tutmak için ana manifest olarak bir dizin belirtin " yazıyor .

Dahası , ana tezahürlerdeki bu kukla dokümanı şöyle diyor:

" Önerilen: Ana manifest'i bir ENC'ye güvenmek yerine yoğun bir şekilde kullanıyorsanız, manifest ayarını $ confdir / manifests olarak değiştirmeyi düşünün. Bu, import anahtar kelimesinden kaçınırken üst düzey kodunuzu birden fazla dosyaya bölmenizi sağlar. aynı zamanda basit ortamların davranışlarıyla da eşleşecektir. "

Görünüşe göre, Kukla, Vagrant'ın bunun için bir hüküm yapacağını ve " puppet.manifest_file =" site.pp "satırını bırakıp bunun yerine tüm * .pp dosyalarının yürütüleceği ana dizin. Ancak Vagrant içinde bu satırı kaldırmak yalnızca yerine beklenen "default.pp" hakkında bir şikayet oluşturur:

kukla sağlayıcısı: * Yapılandırılmış Kukla manifest'i eksik. Lütfen mevcut bir bildirimin yolunu belirtin: /some/path/puppet_files/manifests/default.pp

Yani:

  1. Öncelikle, içindeki tüm * .pp dosyalarının yürütüleceği bir dizinin işaretleneceği şekilde, birden çok manifest'i doğru şekilde çağırmanın "yeni" (içe aktarılmayan) yolunu anlıyor muyum?
  2. Ve ikincisi, Vagrant, Kukla'nın “içe aktarma” yı kullanımdan kaldırmasıyla bağlantılı olarak dizinlere referans vermek için bu yeni değişikliği "yakaladı" mı?

Güncelleme: Shane sayesinde Vagrant'ın GitHub sorun izleyicisi sitesinde # 2 (Vagrant'ın kodu kukla manifest dizinlerine işaret etmek için yakalanmadı) ile ilgili sorun bildirildi ve o zamandan beri yama yapıldı: https://github.com/mitchellh/vagrant / sorunlar / 4169

Yanıtlar:


6

Öncelikle, içindeki tüm * .pp dosyalarının yürütüleceği bir dizinin işaretleneceği şekilde, birden çok manifest'i doğru şekilde çağırmanın "yeni" (içe aktarılmayan) yolunu anlıyor muyum?

Evet yaparsın. Buraya bakın :

Ana manifest'i bir ENC'ye güvenmek yerine yoğun bir şekilde kullanıyorsanız, manifest ayarını $ confdir / manifests olarak değiştirmeyi düşünün. Bu, içe aktarma anahtar kelimesinden kaçınırken üst düzey kodunuzu birden çok dosyaya bölmenize olanak tanır.

Dahası, manifestve modulepathayrıca dizin ortamları ve tezahür dizin davranışı lehine önerilmemektedir alıyorsanız, bakın burada :

Dizin ortamları tamamlandığına göre, yapılandırma dosyası ortamları kullanımdan kaldırıldı. Puppet.conf dosyasındaki ortam bloklarının tanımlanması, puppet.conf dosyasındaki modulepath, manifest ve config_version ayarlarının her kullanımında olduğu gibi kullanımdan kaldırma uyarısına neden olur.

Bu, birçok dağıtım için oldukça büyük bir değişikliktir, ancak uzun vadede iyi bir gelişme olmalıdır.


Ve ikincisi, Vagrant, Kukla'nın “içe aktarma” yı kullanımdan kaldırmasıyla bağlantılı olarak dizinlere referans vermek için bu yeni değişikliği "yakaladı" mı?

Hayır, yoktur; dokümanlarından:

manifest_file (string) - Kukla çalıştırması için giriş noktası görevi görecek manifest dosyasının adı. Bu bildirim dosyasının yapılandırılan manifests_path dosyasında bulunması bekleniyor

Vagrant ile kullanmak için, şimdilik talihsiz olan kullanımdan çıkarma uyarılarıyla uğraşmak zorunda kaldınız. Ancak, içe aktarmanın 4.x'e kadar kaldırılması planlanmamıştır, bu nedenle Vagrant'a yetişmesi için biraz zaman verir.


Delirmediğimi bilmek güzel, çünkü anlaşmanın bir saatten beri ne olduğunu anlamaya çalışıyorum. Vagrant geliştiricileri bu özelliğe duyulan ihtiyacın farkında mıdır, yoksa böyle eklemeler önerebilecek bir yer var mı?
SeligkeitIstInGott

Henüz onlardan istenmemiş gibi görünüyor - buraya bakın . Modern kukla ile daha iyi hizalamak için oraya bir sorun bırakın (ya da bir github hesabınız yoksa yapacağım)!
Shane Madden

Bence iş arkadaşlarımın hepsinde github hesapları var, ama bir hesabım varsa girişimin ne olacağını bile bilmiyorum. Bir kodlayıcıya değil, IT olduğumdan birine ihtiyacım yok. Bunu korkunç bir şekilde yapar mısın?
SeligkeitIstInGott

1
@SeligkeitIstInGott Elbette, dosyalanmış bir şey alacağım!
Shane Madden

2
@SeligkeitIstInGott Tamamlandı - github.com/mitchellh/vagrant/issues/4039
Shane Madden
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.