Estoy usando puppet (teóricamente) para que npcd se inicie después de la instalación, sin embargo, en Ubuntu, ese servicio viene instalado con la configuración predeterminada en / etc / default / npcd de 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"
Creo que este bloque de configuración de marionetas se encargaría de las cosas:
service { "npcd":
enable => true,
ensure => "running",
require => Package["pnp4nagios"],
}
Pero, por desgracia, no lo hace, y salvo reescribir el archivo en / etc / default, no estoy seguro de qué hacer. ¿Existe una manera directa de habilitar el servicio que no estoy viendo?
Para el registro, estoy usando Ubuntu 12.04.2 y la versión de títeres 3.1.0.
/etc/default/npcd
con unfile
recurso? Elfile
depende delpackage
, y elservice
depende delfile
. Siempre desconfío de editar archivos a travéssed
oaugeas
si puedo evitarlo.Respuestas:
Actualizar ese archivo y luego reiniciar el servicio es la única forma. Puede insertar un nuevo archivo y luego hacer que el servicio lo requiera; de esa manera, cuando se actualicen los contenidos, el servicio se iniciará correctamente.
Si no desea reemplazar el archivo por completo, puede usar la herramienta Puppet augeas para modificar la línea única en el archivo predeterminado.
Hay algunos servicios en Debian y sus derivados que no se inician automáticamente después de instalar el paquete, a menos que esté habilitado en / etc / default. Un poco molesto.
Editar: FYI, el script de inicio en realidad está leyendo los valores de ese archivo (solo lo obtiene normalmente).
fuente
update-rc.d
para habilitar / deshabilitar el servicio, no, no/etc/default
es una forma estándar de administrar los servicios, por lo que está fuera del control de Puppet.Por el simple hecho de que revisé algunos de los demonios estándar en mis máquinas 12.04. Tienes que administrar el archivo, no hay manera de evitarlo en este momento.
snmpd
coleccionar
marioneta
mdadm
haproxy
fuente
Creo que una de las formas factibles de hacerlo es usar la herramienta augeas con títeres, por ejemplo
consulte el manual para más detalles
fuente
Yo uso sed para modificar el archivo. Augeas parece exagerado.
Idea tomada de aquí:
http://www.codelord.net/2010/12/19/using-puppet-to-automatically-configure-new-ec2-instances/
Entonces, en tu caso
fuente
Hacer esto con el
augeas
tipo en Puppet es una forma (como lo sugiere @DukeLion).Otra forma es usar el
augeasproviders
módulo , con elshellvar
proveedor:Esto es mejor porque Augeas será utilizado limpiamente por el proveedor de Ruby. También gestionará las citas y comentarios automáticamente.
fuente