J'utilise une marionnette pour (théoriquement) faire démarrer npcd lors de l'installation, mais sur Ubuntu, ce service est installé avec le paramètre par défaut dans / 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"
Je pense que ce bloc de configuration de marionnettes s'occuperait des choses:
service { "npcd":
enable => true,
ensure => "running",
require => Package["pnp4nagios"],
}
Mais hélas, ce n'est pas le cas, et à moins de réécrire le fichier dans / etc / default, je ne sais pas quoi faire. Existe-t-il un moyen simple d'activer le service que je ne vois pas?
Pour mémoire, j'utilise Ubuntu 12.04.2 et la version marionnette 3.1.0.
/etc/default/npcd
avec unefile
ressource? Lefile
dépend dupackage
, et leservice
dépend dufile
. J'ai toujours peur de modifier des fichiers viased
ouaugeas
si je peux l'éviter.Réponses:
La mise à jour de ce fichier, puis le redémarrage du service est le seul moyen. Vous pouvez pousser un nouveau fichier, puis rendre le service Exiger cela; de cette façon, lorsque le contenu est mis à jour, le service démarre correctement.
Si vous ne voulez pas remplacer entièrement le fichier, vous pouvez utiliser l'outil Puppet augeas pour simplement modifier la ligne unique dans le fichier par défaut.
Il y a quelques services dans Debian et ses dérivés qui ne démarrent pas automatiquement après l'installation du paquet à moins qu'il ne soit activé dans / etc / default. Un peu ennuyeux.
Edit: Pour info, le script init lit en fait les valeurs de ce fichier (il suffit de le trouver habituellement).
la source
update-rc.d
pour activer / désactiver le service, pas/etc/default
- ce n'est pas une façon standard de gérer les services, donc c'est hors du contrôle de la marionnette.Pour l'enfer, j'ai vérifié quelques-uns des démons standard sur mes machines 12.04. Vous devez gérer le fichier, aucun moyen de le contourner à ce stade.
snmpd
collecté
fantoche
mdadm
haproxy
la source
Je pense que l'un des moyens possibles de le faire est d'utiliser l'outil augeas avec une marionnette, par exemple
reportez-vous au manuel pour plus de détails
la source
J'utilise sed pour modifier le fichier. Augeas semble exagéré.
Idée tirée d'ici:
http://www.codelord.net/2010/12/19/using-puppet-to-automatically-configure-new-ec2-instances/
Donc, dans ton cas
la source
Faire cela avec le
augeas
type dans Puppet est un moyen (comme suggéré par @DukeLion).Une autre façon consiste à utiliser le
augeasproviders
module , avec leshellvar
fournisseur:C'est mieux car Augeas sera utilisé proprement par le fournisseur Ruby. Il gérera également les devis et les commentaires automatiquement.
la source