timesync

timesync

ansible-lint.yml ansible-test.yml markdownlint.yml shellcheck.yml tft.yml tft_citest_bad.yml woke.yml

Эта роль устанавливает и настраивает реализацию 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

Установить
ansible-galaxy install linux-system-roles/timesync
Лицензия
mit
Загрузки
601632
Владелец