cara mengatur jalur saat menerapkan modul boneka tunggal?

12

Saya mencoba menjalankan satu modul seperti ini:

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

Namun, saya mendapatkan kesalahan semacam ini, menunjukkan jalur tidak disetel

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

Saya tidak ingin secara eksplisit menentukan jalur di setiap lokasi tersebut, dan itu berfungsi dengan baik ketika dijalankan sebagai bagian dari boneka penuh. Bagaimana saya bisa menentukan jalur ketika menjalankan satu modul?

Kambing Hess
sumber
1
Bisakah Anda menerima jawaban yang sesuai?
kenorb

Jawaban:

15

Perintah dalam Execsumber daya harus sepenuhnya memenuhi syarat (yaitu /usr/bin/testalih-alih test) atau pathatribut dari Execsumber daya itu harus ditetapkan.

Jika Anda dapat memodifikasi manifes Wayang, Anda dapat menambahkan definisi berikut untuk mengatur pathatribut default untuk semua Execsumber daya ke /bin:

Exec { path => "/bin" }

Sebagai solusi (kurang lebih) kotor Anda juga dapat hanya menetapkan default pathuntuk Execsumber daya apa pun di baris perintah:

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

Petunjuk dokumentasi:

Joseph
sumber
2

Itu .. seharusnya tidak berfungsi sebagai bagian dari full run. Perlu path lengkap ke executable dalam unlessperintah. Mungkin Anda memiliki set path dalam file global yang merupakan bagian dari menjalankan penuh Anda?

Coba unless => '/usr/bin/[ -e "${logfile}" ]'saja.

Shane Madden
sumber
1

Saya setuju dengan Shane bahwa jalur default mungkin diatur dalam manifes yang tercakup secara global. Anda bisa melakukan hal yang sama tetapi Anda tidak bisa meneruskannya sebagai argumen, jadi gunakan stdin:

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

atau letakkan Exec dan sertakan baris ke dalam example.pplalu gunakan puppet apply -v ... example.pp.

Dominic Cleal
sumber
1

Anda perlu menggunakan jalur yang sepenuhnya memenuhi syarat.

Sebagai contoh:

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

atau:

exec { "sample":
  path    => ['/usr/bin', '/usr/sbin', '/bin'],
  command => "test",
}
kenorb
sumber