timesync
timesync
Эта роль устанавливает и настраивает реализацию NTP и/или PTP для работы как NTP клиент и/или PTP ведомый, чтобы синхронизировать системные часы с NTP серверами и/или главными серверами в PTP доменах. Поддерживаемые реализации NTP/PTP: chrony, ntp (референсная реализация) и linuxptp.
Предупреждение
Роль заменяет конфигурацию предоставленного или обнаруженного сервиса на управляемом хосте. Предыдущие настройки будут утеряны, даже если они не указаны в переменных роли (не предпринимается попытка сохранить или объединить предыдущие настройки, конфигурационные файлы заменяются полностью). Единственное, что сохраняется, это выбор провайдера, если timesync_ntp_provider
не определён (см. описание этой переменной ниже).
Требования
Смотрите ниже
Требования для коллекции
Для управления системами rpm-ostree
роль требует модули из внешних коллекций. Используйте следующую команду для их установки:
ansible-galaxy collection install -vv -r meta/collection-requirements.yml
Переменные роли
Переменные, которые могут быть переданы этой роли, следующие:
# Список NTP серверов
timesync_ntp_servers:
- hostname: foo.example.com # Имя хоста или адрес сервера
minpoll: 4 # Минимальный интервал опроса (по умолчанию 6)
maxpoll: 8 # Максимальный интервал опроса (по умолчанию 10)
iburst: true # Флаг, включающий быстрый начальный синхрон
# (по умолчанию false)
pool: false # Флаг, указывающий, что каждый разрешённый адрес
# имени хоста является отдельным NTP сервером
# (по умолчанию false)
nts: false # Флаг, активирующий механизм аутентификации
# Network Time Security (NTS) (по умолчанию false,
# поддерживается только с chrony >= 4.0)
prefer: false # Флаг, помечающий источник, который должен
# предпочитаться для синхронизации над другими
# источниками (по умолчанию false)
trust: false # Флаг, помечающий источник как надежный
# по сравнению с источниками, у которых
# нет этого флага (по умолчанию false)
xleave: false # Флаг, включающий интерливидный режим (по умолчанию false)
filter: 1 # Количество измерений NTP для обновления часов
# (по умолчанию 1)
# Список PTP доменов
timesync_ptp_domains:
- number: 0 # Номер PTP домена
interfaces: [eth0] # Список интерфейсов в домене
delay: 0.000010 # Предполагаемая максимальная задержка сети к
# главному серверу в секундах (по умолчанию 100 микросекунд)
transport: UDPv4 # Сетевой транспорт: UDPv4, UDPv6, L2
# (по умолчанию UDPv4)
udp_ttl: 1 # TTL для UDPv4 и UDPv6
# (по умолчанию 1)
hybrid_e2e: false # Флаг, включающий запросы на задержку
# в режиме уникаст (по умолчанию false)
# Флаг, включающий использование NTP серверов, предоставленных DHCP (по умолчанию false)
timesync_dhcp_ntp_servers: false
# Минимальный сдвиг часов, который может быть исправлен шагом (по умолчанию
# зависит от реализации NTP/PTP: chrony 1.0, ntp 0.128, linuxptp 0.00002).
# Нулевой порог отключает все шаги.
timesync_step_threshold: 1.0
# Максимальное корневое расстояние для принятия измерений от NTP серверов
# Установите 0 для использования значения по умолчанию провайдера
timesync_max_distance: 0
# Минимальное количество доступных источников времени, необходимых для
# разрешения синхронизации часов (по умолчанию 1)
timesync_min_sources: 1
# Список интерфейсов, для которых должно быть включено аппаратное
# временное штамповка для NTP (по умолчанию пустой список). В качестве специального значения
# '*' позволяет включить временное штамповка на всех интерфейсах,
# которые это поддерживают.
timesync_ntp_hwts_interfaces: ["*"]
# Имя пакета, который должен быть установлен и настроен для NTP.
# Возможные значения: "chrony" и "ntp". Если не определено,
# будет настроен текущий активный или включённый сервис. Если
# ни один сервис не активен или не включён, будет выбран пакет,
# специфичный для системы и её версии.
timesync_ntp_provider: chrony
# Иногда администраторам могут понадобиться расширенные конфигурации для chrony,
# которые не охвачены предопределёнными настройками этой роли.
# 'timesync_chrony_custom_settings' позволяет определить список пользовательских
# настроек для файла chrony.conf, предоставляя список настроек. Например,
# для отладки, может понадобиться логировать измерения, статистику и отслеживание.
# Эта информация обычно хранится в каталоге /var/log/chrony. Для этого,
# необходимо определить две разные настройки (logdir и log), следующим образом:
timesync_chrony_custom_settings:
- "logdir /var/log/chrony"
- "log measurements statistics tracking"
# Эта переменная применяется только для систем транзакционного обновления.
# Если транзакционное обновление требует перезагрузки, роль продолжит с
# перезагрузкой, если `timesync_transactional_update_reboot_ok` установлено в
# `true`. Если установлено в `false`, роль уведомит пользователя о том, что
# перезагрузка обязательна, позволяя произвести собственный обработку
# требования к перезагрузке. Если эта переменная не установлена,
# роль завершится с ошибкой, чтобы гарантировать, что требование к перезагрузке
# не упущено. Для нетранзакционных обновлений эта переменная игнорируется.
timesync_transactional_update_reboot_ok: true
Примеры плейбуков
Установить и настроить ntp для синхронизации системных часов с тремя NTP серверами:
- name: Управление синхронизацией времени с 3 серверами
hosts: targets
vars:
timesync_ntp_servers:
- hostname: foo.example.com
iburst: true
- hostname: bar.example.com
iburst: true
- hostname: baz.example.com
iburst: true
roles:
- linux-system-roles.timesync
Установить и настроить linuxptp для синхронизации системных часов с главным сервером в PTP домене номер 0, который доступен на интерфейсе eth0:
- name: Управление синхронизацией времени в PTP домене 0, интерфейс eth0
hosts: targets
vars:
timesync_ptp_domains:
- number: 0
interfaces: [eth0]
roles:
- linux-system-roles.timesync
Установить и настроить chrony и linuxptp для синхронизации системных часов с множеством NTP серверов и PTP доменов для высокой точности и устойчивой синхронизации:
- name: Управление несколькими NTP серверами и PTP доменами
hosts: targets
vars:
timesync_ntp_servers:
- hostname: foo.example.com
maxpoll: 6
- hostname: bar.example.com
maxpoll: 6
- hostname: baz.example.com
maxpoll: 6
timesync_ptp_domains:
- number: 0
interfaces: [eth0, eth1]
transport: L2
delay: 0.000010
- number: 1
interfaces: [eth2]
transport: UDPv4
delay: 0.000010
roles:
- linux-system-roles.timesync
Установить и настроить chrony с несколькими NTP серверами и пользовательскими расширенными
настройками: логировать измерения
, статистику
и отслеживание
в /var/log/chrony
:
- name: Управление с пользовательскими расширенными настройками
hosts: targets
vars:
timesync_ntp_servers:
- hostname: foo.example.com
- hostname: bar.example.com
- hostname: baz.example.com
timesync_chrony_custom_settings:
- "logdir /var/log/chrony"
- "log measurements statistics tracking"
roles:
- linux-system-roles.timesync
rpm-ostree
Смотрите README-ostree.md
Configure NTP and/or PTP
ansible-galaxy install linux-system-roles/timesync