13 votos

La fijación de los servicios que se han deshabilitado en /etc/default/ con títeres?

Estoy usando títeres para (en teoría) obtener npcd para comenzar con la instalación, sin embargo en Ubuntu, que el servicio viene instalado con la configuración por defecto en /etc/default/npcd de EJECUTAR="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"

Yo creo que este bloque de títeres de configuración se haría cargo de las cosas:

    service { "npcd":
       enable   => true,
       ensure   => "running",
       require  => Package["pnp4nagios"],
    }   

Pero, por desgracia, no es así, y a falta de realidad reescribir el archivo en /etc/default, no estoy seguro de qué hacer. Hay una manera sencilla para habilitar el servicio que yo no estoy viendo?

Para el registro, estoy usando Ubuntu 12.04.2 y de títeres, la versión 3.1.0.

12voto

Luke Puntos 543

La actualización de ese archivo y, a continuación, reiniciar el servicio es la única manera. Usted puede empujar un nuevo archivo y, a continuación, hacer que el servicio que Requieren; de esa manera, cuando el contenido se actualiza el servicio correctamente inicio.

Si usted no desea reemplazar el archivo puede utilizar el Puppet de augias herramienta que acaba de modificar la única línea en los valores predeterminados de archivo.

Hay un par de servicios en Debian y sus derivados que no autostart después de instalar el paquete, a menos de que esté habilitado en /etc/default. Algo molesto.

Edit: FYI el script de inicio es en realidad la lectura de los valores de ese archivo (de contratación es por lo general).

8voto

kashani Puntos 3273

Por el placer de hacerlo he comprobado un par de la norma demonios en mi 12.04 máquinas. Usted tiene que administrar el archivo, no hay manera alrededor de ella en este punto en el tiempo.

snmpd

# snmpd control (yes means start daemon).
SNMPDRUN=yes

collectd

# 0: start collectd on boot, 1: do not start collectd on boot
# default: 0
DISABLE=0

títeres

# Start puppet on boot?
START=yes

mdadm

# START_DAEMON:
#   should mdadm start the MD monitoring daemon during boot?
START_DAEMON=true

haproxy

# Set ENABLED to 1 if you want the init script to start haproxy.
ENABLED=1

6voto

DukeLion Puntos 2341

Creo que uno de los posibles maneras de hacerlo es usando la herramienta de augias con títeres, por ejemplo,

augeas { "npcd_default":
  changes => [
    "set /files/etc/default/npcd/Run yes",
  ],
}

consulte el manual para obtener más detalles

0voto

dmourati Puntos 9454

Yo uso sed para modificar el archivo. Augias parece una exageración.

sed -i /etc/default/puppet -e 's/START=no/START=yes/'

Idea tomada de aquí:

http://www.codelord.net/2010/12/19/using-puppet-to-automatically-configure-new-ec2-instances/

Así que, en su caso

sed -i /etc/default/npcd -e 's/RUN="no"/RUN="yes"/'

0voto

ℝaphink Puntos 5295

Hacer esto con la augeas tipo de Puppet es una forma (como sugerido por @DukeLion).

Otra manera es usar el augeasproviders módulo, con el shellvar proveedor de:

shellvar { 'npcd_default':
  ensure   => present,
  target   => '/etc/default/npcd',
  variable => 'RUN',
  value    => 'yes',
  comment  => 'We want npcd to run',
}

Esto es mejor porque Augias será utilizado limpiamente por el Rubí de proveedor. Que también se encargará de citar y comentar de forma automática.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: