# ------------------------------------------------------------------------------ # FILE: roles/common/tasks/main.yml # DESCRIPTION: Baseline configuration applied to all managed hosts. # Handles hostname, timezone, core packages, NTP, and # ansible user setup. # ------------------------------------------------------------------------------ - name: Set hostname hostname: name: "{{ inventory_hostname | replace('_', '-') }}" - name: Set timezone timezone: name: "{{ common_timezone }}" - name: Update apt cache apt: update_cache: yes cache_valid_time: 3600 - name: Install base utility packages apt: name: "{{ common_packages }}" state: present - name: Configure NTP to use sundial template: src: timesyncd.conf.j2 dest: /etc/systemd/timesyncd.conf mode: '0644' notify: restart timesyncd - name: Ensure systemd-timesyncd is enabled and running systemd: name: systemd-timesyncd state: started enabled: yes - name: Ensure ansible user has sudo without password lineinfile: path: /etc/sudoers.d/{{ ansible_user }} line: "{{ ansible_user }} ALL=(ALL) NOPASSWD:ALL" create: yes mode: '0440' validate: 'visudo -cf %s'