79 lines
2.1 KiB
Plaintext
79 lines
2.1 KiB
Plaintext
- name: Install base packages
|
|||
|
|
package:
|
||
|
|
name: [vim, git, curl, avahi-daemon]
|
||
|
|
state: present
|
||
|
|
|
||
|
|
- name: Set hostname
|
||
|
|
hostname:
|
||
|
|
name: "{{ inventory_hostname }}"
|
||
|
|
|
||
|
|
- name: Update /etc/hosts for FQDN resolution
|
||
|
|
lineinfile:
|
||
|
|
path: /etc/hosts
|
||
|
|
regexp: '^127\.0\.1\.1'
|
||
|
|
line: "127.0.1.1 {{ inventory_hostname }}.{{ domain_name }} {{ inventory_hostname }}"
|
||
|
|
|
||
|
|
- name: Check for NetworkManager
|
||
|
|
command: systemctl is-active NetworkManager
|
||
|
|
register: nm_status
|
||
|
|
ignore_errors: yes
|
||
|
|
changed_when: false
|
||
|
|
|
||
|
|
- name: Configure NetworkManager Search Domain (Raspberry Pi Style)
|
||
|
|
block:
|
||
|
|
- name: Get active connection name
|
||
|
|
shell: "nmcli -t -f NAME connection show --active | head -n 1"
|
||
|
|
register: active_conn
|
||
|
|
changed_when: false
|
||
|
|
|
||
|
|
- name: Apply search domain via nmcli
|
||
|
|
command: "nmcli connection modify '{{ active_conn.stdout }}' ipv4.dns-search '{{ domain_name }}'"
|
||
|
|
when: active_conn.stdout != ""
|
||
|
|
notify: Reload NetworkManager
|
||
|
|
when: nm_status.rc == 0
|
||
|
|
|
||
|
|
- name: Configure systemd-resolved Search Domain (Vanilla Debian Style)
|
||
|
|
ini_file:
|
||
|
|
path: /etc/systemd/resolved.conf
|
||
|
|
section: Resolve
|
||
|
|
option: Domains
|
||
|
|
value: "{{ domain_name }}"
|
||
|
|
notify: Restart systemd-resolved
|
||
|
|
when: nm_status.rc != 0
|
||
|
|
- name: Flush handlers to apply DNS changes immediately
|
||
|
|
meta: flush_handlers
|
||
|
|
|
||
|
|
- name: Wait for DNS to be functional
|
||
|
|
command: getent hosts google.com
|
||
|
|
register: dns_check
|
||
|
|
until: dns_check.rc == 0
|
||
|
|
retries: 3
|
||
|
|
delay: 5
|
||
|
|
|
||
|
|
- name: Install merged baseline packages
|
||
|
|
apt:
|
||
|
|
name: "{{ common_packages }}"
|
||
|
|
state: present
|
||
|
|
update_cache: yes
|
||
|
|
cache_valid_time: 3600
|
||
|
|
become: yes
|
||
|
|
|
||
|
|
- name: Configure needrestart for non-interactive automation
|
||
|
|
lineinfile:
|
||
|
|
path: /etc/needrestart/needrestart.conf
|
||
|
|
regexp: '^#?\$nrconf{restart}'
|
||
|
|
line: "$nrconf{restart} = 'a';"
|
||
|
|
become: yes
|
||
|
|
|
||
|
|
- name: Ensure discovery services are enabled and running
|
||
|
|
service:
|
||
|
|
name: "{{ item }}"
|
||
|
|
state: started
|
||
|
|
enabled: yes
|
||
|
|
loop:
|
||
|
|
- avahi-daemon
|
||
|
|
- lldpd
|
||
|
|
become: yes
|
||
|
|
- name: Include maintenance tasks
|
||
|
|
include_tasks: maintenance.yml
|