Pengujian Wayang jika ada file


8

Saya sedang mencari cara untuk menguji apakah ada file di klien saya (hanya tes bukan pembuatan). Saya telah menemukan cara (File.exists) dalam chef tetapi itu tidak sederhana dengan boneka.

Terima kasih sebelumnya.

Jawaban:


6

Cara "asli" untuk melakukan ini tanpa eksekutif jika Anda menggunakan Wayang 2.6.6+:

file { '/path/to/myfile':
  ensure => 'present',
  audit  => 'all',
}

(Fungsi ini ada sejak Puppet 2.6.0, tetapi ada sejumlah masalah dengan audit yang hanya benar-benar dituntaskan dengan rilis 2.6.6.)

Jika Anda menggunakan versi yang lebih lama, Anda juga dapat memberi tahu sumber untuk menjalankan dalam noopmode, yang hanya akan menampilkan pesan ketika Puppet dijalankan dan file tidak ada:

file { '/path/to/myfile':
  ensure => 'present',
  noop   => 'true',
}

ya. ini hebat dengan versi baru boneka wayang. ive telah bekerja dengan pra 2.6.0 dan harus menulis fungsi ruby ​​saya sendiri untuk file yang ada / cek kosong.
MealstroM

9

Anda harus membuat fungsi Anda sendiri atau menggunakan exec dengan perintah onlyif. sesuatu seperti :

exec { "mycommand":
  path => "/usr/bin:/usr/sbin:/bin",
  onlyif => "test -f /etc/blalba" //yours command 
}

pastikan => sekarang akan membuat file jika tidak ada. bazic hanya ingin menguji dan tidak membuatnya. Lihat docs: docs.puppetlabs.com/references/stable/type.html#file
shakalandy

Terima kasih, tetapi tidak ada yang menarik di dokumen.
bazic

Saya telah memperbarui jawaban saya
MealstroM

1
@MealstroM: Bukankah " creates => '/etc/blabla'" lebih baik daripada " onlyif"?
freiheit

1
@MealstroM: Dalam kasus khusus ini, createsakan memiliki hasil yang sama dan lebih sederhana (dan sedikit lebih cepat). Ya, secara umum onlyifmemang memberikan lebih banyak fleksibilitas.
freiheit
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.