90 lines
3 KiB
YAML
90 lines
3 KiB
YAML
---
|
|
# Copyright (C) 2023 Maciej Delmanowski <drybjed@gmail.com>
|
|
# Copyright (C) 2023 DebOps <https://debops.org/>
|
|
# SPDX-License-Identifier: GPL-3.0-only
|
|
|
|
- name: Import DebOps global handlers
|
|
ansible.builtin.import_role:
|
|
name: 'global_handlers'
|
|
|
|
- name: Check if other time daemons are installed
|
|
environment:
|
|
LC_MESSAGES: 'C'
|
|
ansible.builtin.shell: |
|
|
set -o nounset -o pipefail -o errexit &&
|
|
dpkg --get-selections | grep -w -E '({{ timesyncd__skip_packages | join("|") }})'
|
|
| awk '{print $1}' || true
|
|
args:
|
|
executable: '/bin/bash'
|
|
register: timesyncd__register_time_daemons
|
|
changed_when: False
|
|
failed_when: False
|
|
check_mode: False
|
|
|
|
- name: Set timesyncd deployment state
|
|
ansible.builtin.set_fact:
|
|
timesyncd__fact_service_state: '{{ "present"
|
|
if (not timesyncd__register_time_daemons.stdout | d())
|
|
else "absent" }}'
|
|
|
|
- name: Install required timesyncd packages
|
|
ansible.builtin.package:
|
|
name: '{{ timesyncd__base_packages + timesyncd__packages }}'
|
|
state: 'present'
|
|
register: timesyncd__register_packages
|
|
until: timesyncd__register_packages is succeeded
|
|
when: timesyncd__enabled | bool
|
|
|
|
- name: Make sure that Ansible local facts directory exists
|
|
ansible.builtin.file:
|
|
path: '/etc/ansible/facts.d'
|
|
state: 'directory'
|
|
mode: '0755'
|
|
when: timesyncd__enabled | bool
|
|
|
|
- name: Save timesyncd local facts
|
|
ansible.builtin.template:
|
|
src: 'etc/ansible/facts.d/timesyncd.fact.j2'
|
|
dest: '/etc/ansible/facts.d/timesyncd.fact'
|
|
mode: '0755'
|
|
notify: [ 'Refresh host facts' ]
|
|
when: timesyncd__enabled | bool
|
|
tags: [ 'meta::facts' ]
|
|
|
|
- name: Update Ansible facts if they were modified
|
|
ansible.builtin.meta: 'flush_handlers'
|
|
|
|
- name: Remove systemd-timesyncd configuration if requested
|
|
ansible.builtin.file:
|
|
path: '/etc/systemd/timesyncd.conf.d/ansible.conf'
|
|
state: 'absent'
|
|
notify: [ 'Restart systemd-timesyncd service' ]
|
|
when: timesyncd__enabled | bool and timesyncd__deploy_state == 'absent'
|
|
|
|
- name: Create systemd-timesyncd configuration directory
|
|
ansible.builtin.file:
|
|
path: '/etc/systemd/timesyncd.conf.d'
|
|
state: 'directory'
|
|
mode: '0755'
|
|
when: timesyncd__enabled | bool and timesyncd__deploy_state != 'absent'
|
|
|
|
- name: Generate systemd-timesyncd configuration
|
|
ansible.builtin.template:
|
|
src: 'etc/systemd/timesyncd.conf.d/ansible.conf.j2'
|
|
dest: '/etc/systemd/timesyncd.conf.d/ansible.conf'
|
|
mode: '0644'
|
|
notify: [ 'Restart systemd-timesyncd service' ]
|
|
when: timesyncd__enabled | bool and timesyncd__deploy_state != 'absent'
|
|
|
|
- name: Flush handlers when needed
|
|
ansible.builtin.meta: 'flush_handlers'
|
|
|
|
- name: Prepare cleanup during package removal
|
|
ansible.builtin.import_role:
|
|
name: 'dpkg_cleanup'
|
|
vars:
|
|
dpkg_cleanup__dependent_packages:
|
|
- '{{ timesyncd__dpkg_cleanup__dependent_packages }}'
|
|
when: timesyncd__enabled | bool
|
|
tags: [ 'role::dpkg_cleanup', 'skip::dpkg_cleanup',
|
|
'role::timesyncd:dpkg_cleanup' ]
|