From a834789df55efffc63edab94abe82921add68b1d Mon Sep 17 00:00:00 2001 From: Chris Hammer Date: Wed, 28 Feb 2024 20:01:57 -0500 Subject: [PATCH] Updates for better compatibility --- roles/hostname/defaults/main.yml | 13 ++++++++++ roles/hostname/tasks/main.yml | 41 ++++++++++++++++++++++++++++---- roles/resolv_conf/tasks/main.yml | 4 ++-- 3 files changed, 51 insertions(+), 7 deletions(-) create mode 100644 roles/hostname/defaults/main.yml diff --git a/roles/hostname/defaults/main.yml b/roles/hostname/defaults/main.yml new file mode 100644 index 0000000..da38b08 --- /dev/null +++ b/roles/hostname/defaults/main.yml @@ -0,0 +1,13 @@ +--- +hostname_project_author : Chris Hammer +hostname_project_email : chris@thezengarden.net +hostname_project_repo : https://github.com/jchristianh-ansible-collections/baseos + +hostname_template_header : The Zen Garden + +hostname_hostname_file : /etc/hostname +hostname_hostname_version : 1.0.0 +hostname_hostname_revision : 240228 + + +... diff --git a/roles/hostname/tasks/main.yml b/roles/hostname/tasks/main.yml index 21984cb..11e6764 100644 --- a/roles/hostname/tasks/main.yml +++ b/roles/hostname/tasks/main.yml @@ -1,9 +1,40 @@ --- -- name: Set hostname for host - ansible.builtin.hostname: - name: "{{ inventory_hostname }}" - notify: - - "Restart_syslog_{{ ansible_distribution | lower }}_{{ ansible_distribution_major_version }}" + +- name: Use hostname module to set hostname, or failback to command module + block: + - name: Set hostname for host using hostname module + ansible.builtin.hostname: + name: "{{ inventory_hostname }}" + notify: + - "Restart_syslog_{{ ansible_distribution | lower }}_{{ ansible_distribution_major_version }}" + + rescue: + - name: Ensure hostname package is present + ansible.builtin.package: + name: hostname + state: present + + - name: Set hostname file if running in container + ansible.builtin.set_fact: + hostname_hostname_file: "{{ hostname_hostname_file }}.container" + when: + - ansible_virtualization_type | regex_search("docker|podman|container") + + - name: Add entry into hostname file + ansible.builtin.lineinfile: + path: "{{ hostname_hostname_file }}" + line: "{{ inventory_hostname }}" + state: present + create: true + mode: '0644' + + - name: Update hostname from /etc/hostname + ansible.builtin.command: + cmd: "hostname -F {{ hostname_hostname_file }}" + notify: + - "Restart_syslog_{{ ansible_distribution | lower }}_{{ ansible_distribution_major_version }}" + when: + - not ansible_virtualization_type | regex_search("docker|podman|container") ... diff --git a/roles/resolv_conf/tasks/main.yml b/roles/resolv_conf/tasks/main.yml index be83abc..f00e59f 100644 --- a/roles/resolv_conf/tasks/main.yml +++ b/roles/resolv_conf/tasks/main.yml @@ -1,7 +1,7 @@ --- -- name: Set resolv_conf_file if running in container +- name: Set resolv.conf if running in container ansible.builtin.set_fact: - resolv_conf_resolv_conf_file: "{{ resolv_conf_resolv_conf_file }}.docker" + resolv_conf_resolv_conf_file: "{{ resolv_conf_resolv_conf_file }}.container" when: - ansible_virtualization_type | regex_search("docker|podman|container")