У меня есть куча серверов rhel, и я должен убедиться, что все они синхронизированы по времени. Они все используют службу chronyd.
Мой вопрос, есть ли какая-то утилита, чтобы проверить это через команду? Кто-нибудь знает об ansible-модуле, который это делает? Я не нашел.
Все, что я хочу, это проверить, работают ли все серверы с одинаковым временем, строго и эффективно. Возможно, мне подойдет что-то похожее на ntpdate.
Заранее спасибо!
решение1
Проверьте, синхронизирован ли chrony с командами
Вы можете использовать специальные команды chrony для проверки статуса ntp. Если вы хотите увидеть информацию о текущем сервере ntp, используйте
chronyc tracking
Для отображения всех ntp-серверов
chronyc sources
Более подробную информацию см. здесь: fedora - проверьте, синхронизирован ли chrony
Сочетание с ansible
Модуля ansible нет, но есть другой способ.
У вас все еще должна быть утилита ntpstat, которая также работает для chrony. Коды возврата дают информацию о статусе ntp. 0 для часов синхронизированных, 1 для несинхронизированных и 2, если состояние часов не определено. Смотритестраница руководства
Вы можете убедиться в этом
ntpstat
echo $?
Если вы используете командный модуль ansible для запуска ntpstat, он по умолчанию завершается ошибкой, если код возврата команды не равен 0. Так что в этом случае мы можем использовать это в своих интересах. Создайте простой плейбук, который запускает команду ntpstat.
- name: Check if chrony is synchronized
command: ntpstat
Запустите playbook для нужной группы хостов. Все хосты, которые выходят из строя, не имеют синхронизированного ntp.
Чтобы пойти дальше, вы можете скопировать глобальную конфигурацию chrony (chrony.conf) на все хосты и перезапустить службу chronyd с помощью ansible, если код возврата не равен 0.
- name: Check if chrony is synchronized
command: ntpstat
register: ntpstat_rc
ignore_errors: true
- name: Copy chrony configuration
copy:
src: <global chrony.conf on your ansible server>
dest: /etc/chrony.conf
backup: yes
when: ntpstat_rc.rc != 0
- name: Restart chrony service
systemd:
name: chronyd
state: restarted
when: ntpstat_rc.rc != 0
Надеюсь, это поможет.
Ваше здоровье