Ansible-Roles/roles/chrony/tasks/main.yml
2026-05-08 22:12:36 +03:00

92 lines
2.7 KiB
YAML

# vim: ai et ts=2 st=2 sw=2 :
---
- name: Check if we are running supported os
ansible.builtin.assert:
fail_msg: "{{ role_name }} only supports ubuntu versions 20, 22, 24, centos versions 7, and RHEL version 8!"
success_msg: "{{ role_name }} supports {{ ansible_distribution }} version {{ ansible_distribution_version }}"
quiet: "{{ not ansible_check_mode }}"
that: ( ansible_distribution|lower == "ubuntu" and ansible_distribution_version|int in [20, 22, 24] ) or ( ansible_distribution|lower == "fedora" and ansible_distribution_major_version|int in [41] ) or ( ansible_os_family|lower == "redhat" and ansible_distribution_major_version|int in [7, 8, 9, 10] )
- name: Chrony variables for ubuntu
ansible.builtin.set_fact:
chrony_path: /etc/chrony/
chrony_service: chrony
ntp_service: ntp
when: ansible_os_family|lower == "debian"
- name: Chrony variables for redhat related oses
ansible.builtin.set_fact:
chrony_path: /etc/
chrony_service: chronyd.service
ntp_service: ntpd
when: ansible_os_family|lower == "redhat"
## Install chrony
- name: Install chrony on ubuntu
ansible.builtin.apt:
name: chrony
cache_valid_time: 3600
update_cache: true
when: ansible_os_family|lower == "debian"
- name: Install chrony on redhat related oses, except fedora distribution
ansible.builtin.dnf:
name: chrony
when:
- ansible_os_family|lower == "redhat" and ansible_distribution|lower != "fedora"
## Disable old ntpd
- name: Check ntpd is running
ansible.builtin.shell: |
pgrep ntpd
register: ntpd_running
changed_when: ntpd_running.rc == 0
failed_when: false
when: chrony_disable_ntpd and ansible_distribution|lower != "fedora"
- name: Disable ntpd
ansible.builtin.service:
name: "{{ ntp_service }}"
state: stopped
enabled: false
when:
- ntpd_running is changed
- not ansible_check_mode
## Config chrony
- name: Chrony config
ansible.builtin.template:
src: chrony.conf.j2
dest: "{{ chrony_path }}/chrony.conf"
mode: "0644"
register: chrony_conf_file
- name: Enable chrony service and start
ansible.builtin.service:
name: "{{ chrony_service }}"
state: '{{ "started" if chrony_enable else "stopped" }}'
enabled: "{{ chrony_enable }}"
when: not ansible_check_mode
- name: Restart chrony when config is changed
ansible.builtin.service:
name: "{{ chrony_service }}"
state: restarted
when: chrony_conf_file is changed and not ansible_check_mode
## Set timezone
- name: Set timezone
community.general.timezone:
name: "{{ chrony_timezone }}"
- name: Permit NTP traffic in firewalld
ansible.posix.firewalld:
service: ntp
permanent: true
state: enabled
immediate: true