Saya menggunakan debian squeeze dengan PostgreSQL 9.1 dari backports. Wayang memiliki versi 2.7.14. Sayangnya skrip init mengembalikan kode keluar yang salah untuk status. Karena itu saya menulis statusperintah khusus untuk mendeteksi apakah postgresql berjalan atau tidak.
service { 'postgresql':
ensure => running,
enable => true,
hasstatus => false,
hasrestart => true,
status => "pg_lsclusters -h | awk 'BEGIN {rc=0} {if ($4 != \"online\") rc=3} END { exit rc }'",
provider => debian,
}
Perintah saya bekerja seperti mantra, tetapi wayang tampaknya memiliki masalah. Saya selalu mendapatkan notice: /Stage[main]/Postgresql/Service[postgresql]/ensure: ensure changed 'stopped' to 'running'meskipun sudah berjalan.
Jadi coba yang berikut ini:
service { 'postgresql':
ensure => running,
enable => true,
hasstatus => false,
hasrestart => true,
status => "exit 0",
provider => debian,
}
Seperti yang saya pahami statusperintah khusus ini , boneka harus selalu berpikir bahwa postgresql sedang berjalan. Namun demikian wayang mencoba memulai postgresql - setiap saat.
Apa kesalahanku? Atau itu bug di boneka?
statusperintah wayang bekerja seperti yang diharapkan!
provider => init(dan menghapusenableparameter).