Я использую Puppet для администрирования кластера серверов Debian. Мне нужно изменить часовой пояс каждой машины в кластере. Правильный способ сделать это - использовать dpkg-reconfigure tzdata
. Но я могу только изменить его, если использую диалог. Есть ли способ автоматизировать это из оболочки, чтобы я мог просто написать Exec, чтобы сделать это легко?
Если нет, то я думаю, что следующим лучшим способом будет распределение марионеток /etc/timezone
и /etc/localtime
правильные данные по кластеру.
Любой вклад приветствуется!
Ответы:
Вам необходимо указать интерфейс как «неинтерактивный», и он сохранит ваши текущие настройки.
dpkg-reconfigure примет текущие настройки системы как госпел, поэтому просто измените часовой пояс, как обычно, и запустите его с неинтерактивным флагом
например, для меня, чтобы перейти на "Европа / Дублин", где я нахожусь:
Очевидно, это позволяет вам использовать puppet / cfengine так, как вам нравится, для распространения / etc / timezone.
источник
echo 'Europe/Dublin' | sudo tee /etc/timezone > /dev/null
sudo bash -c 'echo "Europe/Dublin" > /etc/timezone'
Поскольку принятый ответ больше не работает (Debian Jessie, апрель 2017 г.), подход, модифицированный из ссылки на комментарий @ gertvdijk, по- видимому, делает эту работу сейчас:
источник
Вы должны быть в состоянии использовать debconf-set-selections для предварительной настройки конфигурации. Установите debconf-utils и запустите
debconf-get-selections | grep tzdata
на правильно сконфигурированной системе, чтобы выяснить, что также нужно установить.источник
Вы также можете использовать рецепт из (ныне несуществующего) Puppet wiki ( архива ), который заменяется
/etc/localtime
соответствующим файлом zoneinfo из/usr/share/zoneinfo
: -Я не уверен, что dpkg -configure делает что-то еще, но я использовал приведенный выше рецепт, и он отлично работает.
источник
Это очень просто и нужно всего лишь набрать команду и ответить на простые вопросы.
затем запустите:
источник