Saya menggunakan boneka untuk (secara teoritis) mendapatkan npcd untuk memulai setelah instalasi, namun pada Ubuntu, layanan tersebut diinstal dengan pengaturan default di / etc / default / npcd dari RUN = "no":
$ cat /etc/default/npcd
# Default settings for the NPCD init script.
# Should NPCD be started? ("yes" to enable)
RUN="no"
# Additional options that are passed to the daemon.
DAEMON_OPTS="-d -f /etc/pnp4nagios/npcd.cfg"
Saya akan berpikir bahwa blok konfigurasi boneka ini akan mengurus hal-hal:
service { "npcd":
enable => true,
ensure => "running",
require => Package["pnp4nagios"],
}
Tapi sayangnya, tidak, dan benar-benar menulis ulang file di / etc / default, saya tidak yakin apa yang harus dilakukan. Apakah ada cara mudah untuk mengaktifkan layanan yang tidak saya lihat?
Sebagai catatan, saya menggunakan Ubuntu 12.04.2 dan boneka versi 3.1.0.
/etc/default/npcd
denganfile
sumber daya saja? Thefile
tergantung padapackage
, danservice
tergantung padafile
. Saya selalu curiga mengedit file melaluised
atauaugeas
jika saya bisa menghindarinya.Jawaban:
Memperbarui file itu dan memulai kembali layanan adalah satu-satunya cara. Anda dapat mendorong file baru dan kemudian membuat layanan Mengharuskannya; dengan cara itu ketika konten diperbarui layanan akan mulai dengan benar.
Jika Anda tidak ingin mengganti file seluruhnya, Anda dapat menggunakan alat Puppet augeas untuk hanya memodifikasi satu baris dalam file default.
Ada beberapa layanan di Debian dan turunannya yang tidak mulai secara otomatis setelah paket diinstal kecuali jika diaktifkan di / etc / default. Agak menyebalkan.
Sunting: FYI skrip init sebenarnya membaca nilai-nilai dari file itu (hanya sumber biasanya).
sumber
update-rc.d
untuk mengaktifkan / menonaktifkan layanan, bukan/etc/default
- ini bukan cara standar untuk mengelola layanan, jadi itu di luar kendali boneka.Untuk itu saya memeriksa beberapa daemon standar pada mesin 12,04 saya. Anda harus mengelola file, tidak ada jalan lain pada saat ini.
snmpd
mengumpulkan
wayang
mdadm
haproxy
sumber
Saya pikir salah satu cara yang layak untuk melakukannya adalah menggunakan alat augeas dengan boneka, misalnya
lihat manual untuk detailnya
sumber
Saya menggunakan sed untuk memodifikasi file. Augeas sepertinya berlebihan.
Ide diambil dari sini:
http://www.codelord.net/2010/12/19/using-puppet-to-automatically-configure-new-ec2-inances/
Jadi, dalam kasus Anda
sumber
Melakukan ini dengan
augeas
mengetik dalam Wayang adalah satu arah (seperti yang disarankan oleh @DukeLion).Cara lain adalah dengan menggunakan
augeasproviders
modul , denganshellvar
penyedia:Ini lebih baik karena Augeas akan digunakan dengan bersih oleh penyedia Ruby. Ini juga akan mengelola penawaran dan komentar secara otomatis.
sumber