diff --git a/playbooks/time-region-ntp.yml b/playbooks/time-region-ntp.yml index 60cdfbb..bcedc3c 100644 --- a/playbooks/time-region-ntp.yml +++ b/playbooks/time-region-ntp.yml @@ -1,5 +1,5 @@ --- -- name: Configure timezone and NTP on Ubuntu & Rocky Linux +- name: Configure timezone and NTP hosts: all become: yes @@ -8,29 +8,40 @@ ntp_server: "0.in.pool.ntp.org" tasks: - - - name: Set timezone - ansible.builtin.timezone: - name: "{{ timezone_region }}" - register: timezone_result - - - name: Debug timezone result - ansible.builtin.debug: - msg: "Timezone changed to {{ timezone_region }} successfully." - when: timezone_result.changed - - # ------------------------------------------------------------- - # Ubuntu: configure timesyncd - # ------------------------------------------------------------- - - name: Configure NTP on Ubuntu (systemd-timesyncd) + # ---------------------------------------------------------- + # TIMEZONE (Works on Ubuntu LXC + Rocky) + # ---------------------------------------------------------- + - name: Set timezone (manual method for compatibility) block: - - name: Enable and configure systemd-timesyncd + - name: Copy timezone file + ansible.builtin.copy: + src: "/usr/share/zoneinfo/{{ timezone_region }}" + dest: /etc/localtime + remote_src: yes + + - name: Write /etc/timezone + ansible.builtin.copy: + dest: /etc/timezone + content: "{{ timezone_region }}\n" + register: tz_change + + - name: Debug timezone set + ansible.builtin.debug: + msg: "Timezone set to {{ timezone_region }} successfully." + when: tz_change.changed + + # ---------------------------------------------------------- + # UBUNTU NTP (systemd-timesyncd) + # ---------------------------------------------------------- + - name: Configure NTP for Ubuntu (systemd-timesyncd) + block: + - name: Create timesyncd.conf ansible.builtin.copy: dest: /etc/systemd/timesyncd.conf content: | [Time] NTP={{ ntp_server }} - FallbackNTP=1.in.pool.ntp.org 2.in.pool.ntp.org 3.in.pool.ntp.org + FallbackNTP=1.in.pool.ntp.org 2.in.pool.ntp.org register: ubuntu_ntp - name: Restart timesyncd @@ -39,29 +50,40 @@ state: restarted enabled: yes - - name: Debug ubuntu NTP + - name: Debug Ubuntu NTP ansible.builtin.debug: - msg: "NTP configured on Ubuntu using {{ ntp_server }}" + msg: "Ubuntu NTP configured with {{ ntp_server }}" when: ubuntu_ntp.changed when: ansible_facts['os_family'] == "Debian" - # ------------------------------------------------------------- - # Rocky Linux: configure chrony - # ------------------------------------------------------------- - - name: Configure NTP on Rocky Linux (chrony) + # ---------------------------------------------------------- + # ROCKY LINUX NTP (chrony) + # ---------------------------------------------------------- + - name: Configure NTP for Rocky Linux (chrony) block: - name: Install chrony ansible.builtin.package: name: chrony state: present - - name: Configure chrony NTP source + - name: Backup chrony.conf + ansible.builtin.copy: + src: /etc/chrony.conf + dest: /etc/chrony.conf.bak + remote_src: yes + + - name: Remove existing server lines ansible.builtin.replace: path: /etc/chrony.conf - regexp: '^server .*$' - replace: "server {{ ntp_server }} iburst" - register: rocky_ntp + regexp: '^server .*' + replace: '' + register: removed_servers + + - name: Add new time server entry + ansible.builtin.lineinfile: + path: /etc/chrony.conf + line: "server {{ ntp_server }} iburst" - name: Restart chronyd ansible.builtin.systemd: @@ -69,14 +91,15 @@ state: restarted enabled: yes - - name: Debug rocky NTP + - name: Debug Rocky NTP ansible.builtin.debug: - msg: "NTP configured on Rocky Linux using {{ ntp_server }}" - when: rocky_ntp.changed + msg: "Rocky Linux NTP configured with {{ ntp_server }}" when: ansible_facts['os_family'] == "RedHat" - # Final debug - - name: Print final success message + # ---------------------------------------------------------- + # Final output + # ---------------------------------------------------------- + - name: Final summary ansible.builtin.debug: - msg: "Timezone and NTP configuration applied successfully on {{ inventory_hostname }}" + msg: "Timezone + NTP successfully applied on {{ inventory_hostname }}"