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?


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:


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.


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.


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",
}
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.