Używam marionetki do administrowania klastrem serwerów Debiana. Muszę zmienić strefę czasową każdej maszyny w klastrze. Właściwym sposobem na zrobienie tego jest użycie dpkg-reconfigure tzdata
. Ale mogę to zmienić tylko wtedy, gdy korzystam z okna dialogowego. Czy jest jakiś sposób na zautomatyzowanie tego z powłoki, żebym mógł po prostu napisać Exec, aby było to łatwe?
Jeśli nie, myślę, że następnym najlepszym sposobem byłoby prawdopodobnie rozprowadzenie marionetek /etc/timezone
i /etc/localtime
poprawne dane w klastrze.
Doceniamy każdy wkład!
Odpowiedzi:
Musisz określić interfejs jako „nieinteraktywny”, co spowoduje zapisanie twoich bieżących ustawień.
dpkg-reconfigure weźmie obecne ustawienia systemu jako gospel, więc po prostu zmień strefę czasową tak, jak normalnie i uruchom ją z nieinteraktywną flagą
np. dla mnie przejście na „Europe / Dublin”, gdzie jestem:
Oczywiście pozwala to na użycie marionetki / cfengine, tak jak chcesz rozpowszechniać także / etc / timezone.
źródło
echo 'Europe/Dublin' | sudo tee /etc/timezone > /dev/null
sudo bash -c 'echo "Europe/Dublin" > /etc/timezone'
Ponieważ zaakceptowana odpowiedź już nie działa (Debian Jessie, kwiecień 2017 r.), Podejście zmodyfikowane z linku komentarza @ gertvdijk wydaje się teraz działać:
źródło
Powinieneś być w stanie użyć opcji debconf-set-set, aby wstępnie ustawić konfigurację. Zainstaluj debconf-utils i uruchom
debconf-get-selections | grep tzdata
na odpowiednio skonfigurowanym systemie, aby dowiedzieć się, co go ustawić.źródło
Możesz także użyć przepisu z (obecnie nieistniejącego) Puppet wiki ( archiwum ), który zastępuje
/etc/localtime
odpowiedni plik zoneinfo z/usr/share/zoneinfo
: -Nie jestem pewien, czy dpkg-rekonfiguracja robi coś dodatkowego, ale użyłem powyższego przepisu i działa idealnie.
źródło
To bardzo proste i wystarczy wpisać polecenie i odpowiedzieć na proste pytania.
następnie uruchomić:
źródło