Korzystam z marionetki, aby (teoretycznie) uruchomić npcd podczas instalacji, jednak w Ubuntu ta usługa jest instalowana z domyślnym ustawieniem w / etc / default / npcd z 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"
Myślałem, że ten blok konfiguracji lalek załatwi sprawy:
service { "npcd":
enable => true,
ensure => "running",
require => Package["pnp4nagios"],
}
Ale niestety tak nie jest, a właściwie przepisywanie pliku w / etc / default, nie jestem pewien, co robić. Czy istnieje prosty sposób włączenia usługi, której nie widzę?
Dla przypomnienia używam Ubuntu 12.04.2 i wersji marionetkowej 3.1.0.
/etc/default/npcd
zfile
zasobu?file
Zależy odpackage
iservice
zależy odfile
. Zawsze jestem ostrożny w edytowaniu plików za pośrednictwemsed
lubaugeas
jeśli mogę tego uniknąć.Odpowiedzi:
Aktualizacja tego pliku, a następnie ponowne uruchomienie usługi to jedyny sposób. Możesz wcisnąć nowy plik, a następnie ustawić usługę Wymagaj tego; w ten sposób po zaktualizowaniu zawartości usługa uruchomi się poprawnie.
Jeśli nie chcesz całkowicie zamieniać pliku, możesz użyć narzędzia Puppet augeas, aby po prostu zmodyfikować pojedynczą linię w pliku domyślnym.
W Debianie i jego pochodnych jest kilka usług, które nie uruchamiają się automatycznie po zainstalowaniu pakietu, chyba że są włączone w / etc / default. Trochę irytujące.
Edycja: FYI skrypt init w rzeczywistości odczytuje wartości z tego pliku (zwykle po prostu go pozyskuje).
źródło
update-rc.d
do włączania / wyłączania usługi, a nie/etc/default
- to nie jest standardowy sposób zarządzania usługami, więc nie można tego kontrolować.Do diabła z tym sprawdziłem kilka standardowych demonów na moich komputerach 12.04. Musisz zarządzać plikiem, w żadnym momencie nie można go obejść.
snmpd
zebrane
marionetka
mdadm
haproksy
źródło
Myślę, że jednym z możliwych sposobów, aby to zrobić, jest użycie narzędzia augeas z marionetką, np
szczegółowe informacje można znaleźć w instrukcji obsługi
źródło
Używam sed do modyfikacji pliku. Augeas wydaje się przesadą.
Pomysł zaczerpnięty stąd:
http://www.codelord.net/2010/12/19/using-puppet-to-automatically-configure-new-ec2-instances/
Więc w twoim przypadku
źródło
Robienie tego z
augeas
typem w Puppet jest jednym ze sposobów (jak sugeruje @DukeLion).Innym sposobem jest użycie
augeasproviders
modułu zshellvar
dostawcą:Jest to lepsze, ponieważ Augeas będzie używany wyłącznie przez dostawcę Ruby. Będzie również automatycznie zarządzać cytowaniem i komentowaniem.
źródło