Merge "Check the time synchronization and list the NTP servers chrony is trying to access"

This commit is contained in:
Zuul 2022-09-30 01:14:53 +00:00 committed by Gerrit Code Review
commit d0bbe840a8
3 changed files with 82 additions and 0 deletions

View File

@ -0,0 +1,30 @@
======================
check_ntp_reachability
======================
--------------
About The Role
--------------
An Ansible role that will check if the time is synchronised with the NTP servers.
The role fails, if the time is not NTP synchronised and prints NTP servers which
chrony is trying to synchronise with. This role is recommended to run, if the
``Undercloud`` deployment fails on NTP synchronisation task.
Requirements
============
This role runs on ``Undercloud``.
License
=======
Apache
Author Information
==================
Red Hat TripleO Validations Team
.. ansibleautoplugin::
:role: roles/check_ntp_reachability

View File

@ -0,0 +1,20 @@
---
- hosts: undercloud
gather_facts: false
vars:
metadata:
name: Check if the NTP pool is reachable for the time synchronization
description: |
Time synchronization is essential for successful deployment. The chrony
daemon is used for connection with the NTP pool for receiving time data,
if the connection is unsuccessful the deployment fails. This validation
is recommended to run if the deployment is failing on time synchronization
task. This validation prints NTP servers chrony is trying to access.
groups:
- pre-deployment
categories:
- undercloud
products:
- tripleo
roles:
- check_ntp_reachability

View File

@ -0,0 +1,32 @@
---
# Copyright 2022 Red Hat, Inc.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
- name: Check NTP server reachability
shell:
chronyc -n sources | awk 'NR > 2 { print $2 }'
register: sources_output
- name: Check if the time is synchronised
command: chronyc tracking
register: tracking_output
- name: Fail if chrony is not synchronised
fail:
msg: >
The time is not synchronized with the NTP servers. Currently daemon is trying
to connect with the following NTP servers:
{{ sources_output.stdout_lines }}
when: tracking_output.stdout is search("Not synchronised")