tek bir kukla modülü uygulanırken yol nasıl ayarlanır?


12

Ben böyle tek bir modül çalıştırmak için çalışıyorum:

puppet apply --verbose --modulepath=moduleshere --noop -e 'include myclass'

Ancak, yolun ayarlanmadığını belirten bu tür bir hata alıyorum

Parameter unless failed: '[ -e "${logfile}" ]' is not qualified and no path was specified. Please qualify the command or specify a path.

Ben açıkça her böyle bir yerde yol belirtmek istemiyorum ve tam bir kukla çalışma bir parçası olarak çalıştırıldığında iyi çalışıyor. Tek bir modülü çalıştırırken yolu nasıl belirleyebilirim?


1
Lütfen uygun cevabı kabul eder misiniz?
kenorb

Yanıtlar:


15

Bir Execkaynaktaki komutların ya tam olarak nitelenmesi (yani /usr/bin/testyerine test) ya da patho Execkaynağın niteliğinin ayarlanması gerekir.

Kukla manifest (ler) ini değiştirebiliyorsanız, pathtüm Execkaynaklar için varsayılan bir öznitelik ayarlamak üzere aşağıdaki tanımı ekleyebilirsiniz /bin:

Exec { path => "/bin" }

(Daha fazla veya daha az) kirli bir geçici çözüm olarak, komut satırındaki pathherhangi bir Execkaynak için varsayılanı da ayarlayabilirsiniz :

$ puppet apply --verbose -e 'Exec { path => "/bin" }' your_manifest.pp

Dokümantasyon göstergeleri:


2

Bu .. tam koşunun bir parçası olarak çalışmamalıdır. Komuttaki yürütülebilir dosya için tam bir yol gerekir unless. Belki de tüm dosyalarınızın bir parçası olan global bir dosyada ayarlanmış bir yolunuz var mı?

unless => '/usr/bin/[ -e "${logfile}" ]'Bunun yerine deneyin .


1

Shane ile varsayılan yolun muhtemelen küresel çapta bir manifestte belirlendiğine katılıyorum. Aynı şeyi yapabilirsiniz ama bir argüman olarak geçemezsiniz, bu yüzden ya stdin kullanın:

$ puppet apply -v --modulepath=moduleshere --noop <<EOF
Exec { path => "/bin:/sbin:/usr/bin:/usr/sbin" }
include myclass
EOF

veya Exec ve include satırlarını içine koyup example.ppkullanın puppet apply -v ... example.pp.


1

Tam nitelikli yol kullanmanız gerekir.

Örneğin:

exec { "sample":
  command => "/usr/bin/test",
}

veya:

exec { "sample":
  path    => ['/usr/bin', '/usr/sbin', '/bin'],
  command => "test",
}
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.