Saya ingin menjalankan mysql_tzinfo_to_sql
setiap kali paket tzinfo (di Ubuntu Server) berubah. Saya pikir Wayang dapat mengatasi hal ini.
Saya pikir salah satu Wayang akan bereaksi terhadap perubahan dalam versi paket, atau jika tidak, maka perubahan cap waktu dari file yang terkandung dalam paket.
Satu-satunya cara saya bisa melihat untuk melakukan ini adalah memiliki sumber daya tanpa tindakan langsung, dan memiliki eksekutif tergantung padanya.
Pertanyaan yang saya miliki adalah:
- Apakah mungkin untuk mendefinisikan file yang hanya digunakan untuk Memberitahu sumber daya lain (seperti exec )?
- Apakah mungkin untuk menentukan sumber daya paket sehingga sumber daya lain (seperti exec ) diaktifkan ketika paket berubah atau diperbarui?
- Apakah mungkin untuk mendefinisikan sumber daya exec yang menjalankan baris perintah shell (dengan pipa dan pengalihan misalnya) daripada perintah dari sistem file?
Jika disatukan, rasanya luar biasa.
FOLLOWUP : Jawaban yang fantastis! Demi kelengkapan (dan untuk catatan), saya harus mencatat hal berikut:
- Perintah shell lengkap yang menarik adalah
mysql_tzinfo_to_sql | mysql -u root -p password
(memuat tzinfo ke dalam database MySQL untuk penggunaan MySQL). - Pengauditan
/etc/tzinfo
akan sia-sia karena ini hanyalah konfigurasi zona waktu lokal; tujuannya adalah untuk melihat perubahan dalam data tzinfo itu sendiri (dengan demikian mengawasi/usr/share/zoneinfo
). - Demikian juga, isinya akan menjadi hal yang salah untuk ditonton - karena mereka kemungkinan tidak akan berubah; yang terbaik adalah menonton mtime atau semua karena filetimes harus berubah setelah setiap pembaruan tzinfo.
Juga, James Turnbull menulis semua tentang audit ketika diperkenalkan. The Metaparameter Referensi berisi deskripsi singkat dari cara kerja audit
parameter.
Jawaban:
Gunakan atribut audit untuk melacak konten file atau nomor versi paket dan memicu perubahan dengan berlangganan sumber daya paket. Beberapa masalah dengan ini, ini tidak bekerja dengan --noop karena file state.yaml akan memperbarui file md5 checksum / versi paket dalam mode --noop. Saya tidak yakin apakah ini bug yang tertunda karena saya tidak dapat melacaknya saat ini.
Metode yang lebih andal hanyalah menggandakan file di tempat lain dan menggunakannya untuk memicu pembaruan (lokasi tidak penting, kami hanya melacak tzinfo asli sebagai sumber).
Metode kedua tentu saja tidak bekerja dengan paket, tetapi Anda akan menghindari masalah --noop dan state.yaml.
Mengenai pertanyaan ketiga, ya, Anda bisa menggunakan pipa dan arahan ulang (gunakan judul dan letakkan perintah di atribut perintah):
sumber
Ya, Anda harus dapat melakukan ini.
* contoh kode teoritis
Ya, melalui notifikasi meta-parameter. Namun saya tidak 100% positif bahwa fitur audit baru di boneka 2.6 akan memicu pemberitahuan jika versi paket berubah di luar kendali boneka.
Ya, dengan refreshonly => true
Ya, lihat contoh saya. Wayang menjalankan perintah exec di luar shell interaktif untuk kesederhanaan dan keamanan. Anda dapat meminta bash penggunaan boneka dalam mode subkulit dengan tombol -c, tetapi perhatikan kutipannya.
sumber
bash -c
untuk melakukan pengalihan?bash -c
diperlukan untuk pengalihan shell dalam contoh ini. Wayang tidak menggunakan shell interaktif untukexec
.Saya yakin saya bisa membuatnya bekerja. inilah bagian yang relevan dari manifes wayang saya:
setelah up pertama, exec mysql_tzinfo dilewati. diuji dengan touch'ing / usr / share / zoneinfo / Etc / UTC, yang mendorong mysql_tzinfo exec untuk dijalankan pada berikutnya.
sumber
Pertanyaan ini sudah lama, tetapi saya berkeliaran mencari sesuatu yang lain, dan ingin menambahkan jawaban alternatif untuk dipertimbangkan.
Itu tidak menggunakan boneka: Karena kami ingin memicu pada pemasangan / pembaruan RPM mengapa tidak menggunakan pemicu RPM? Ini memanfaatkan sistem yang sangat digunakan untuk melakukan instalasi, memperluasnya dengan benar dengan cara yang dirancang.
Membangun pemicu RPM sangat sederhana, dan meskipun tidak menyenangkan untuk dipelajari, setelah yang pertama dilakukan dapat diulangi untuk aplikasi dan kondisi lainnya dengan sangat mudah - dengan demikian, biaya tidak nol tetapi manfaatnya cepat dan jauh lebih besar daripada yang biaya.
Sementara kami berada di sini untuk Wayang, dan masalahnya dapat dipecahkan dengan wayang, saya khawatir itu meningkatkan bagian lemah dari alat untuk merespons kondisi yang jauh lebih mudah untuk memicu dengan alat yang sudah ada di host dan alat di mana sebagian besar admin di kotak harus mencelupkan jari kaki mereka. Maaf menyarankan solusi di luar garis, tetapi jika Anda berkeliaran di pesan ini di masa depan seperti yang saya lakukan, dan pemicu RPM adalah pilihan untuk Anda, harap pertimbangkan itu.
sumber