From 1e258f7ec4093b4998693543628751258103e11c Mon Sep 17 00:00:00 2001 From: Ahmed Abdelhalim Date: Mon, 11 Aug 2025 00:32:04 +0200 Subject: Refactor playbook to simplify package installs for different OSs --- .ansible-lint | 3 +++ roles/network/tasks/install-debian.yml | 1 - roles/network/tasks/main.yml | 12 ++++++------ roles/ssh/tasks/install-archlinux.yml | 6 ------ roles/ssh/tasks/install-debian.yml | 6 ------ roles/ssh/tasks/main.yml | 11 +++++++---- roles/user/tasks/install-archlinux.yml | 6 ------ roles/user/tasks/install-debian.yml | 6 ------ roles/user/tasks/main.yml | 9 ++++++--- 9 files changed, 22 insertions(+), 38 deletions(-) delete mode 100644 roles/ssh/tasks/install-archlinux.yml delete mode 100644 roles/ssh/tasks/install-debian.yml delete mode 100644 roles/user/tasks/install-archlinux.yml delete mode 100644 roles/user/tasks/install-debian.yml diff --git a/.ansible-lint b/.ansible-lint index 26c3c913..4124dea9 100644 --- a/.ansible-lint +++ b/.ansible-lint @@ -2,3 +2,6 @@ skip_list: - 'yaml' - 'role-name' + +warn_list: + - 'var-naming[no-role-prefix]' diff --git a/roles/network/tasks/install-debian.yml b/roles/network/tasks/install-debian.yml index 8368d7e3..a5367762 100644 --- a/roles/network/tasks/install-debian.yml +++ b/roles/network/tasks/install-debian.yml @@ -23,7 +23,6 @@ when: not ansible_is_chroot failed_when: false # Not required for boot - tags: [] - name: "(chroot): Disable conflicting services" ansible.builtin.command: diff --git a/roles/network/tasks/main.yml b/roles/network/tasks/main.yml index 54b0a9ed..2bebaf22 100644 --- a/roles/network/tasks/main.yml +++ b/roles/network/tasks/main.yml @@ -1,4 +1,10 @@ --- +- name: "Include OS-specific variables" + ansible.builtin.include_vars: "{{ ansible_os_family | lower }}.yml" + +- name: "Include OS-specific tasks" + ansible.builtin.include_tasks: "install-{{ ansible_os_family | lower }}.yml" + - name: "Configure /etc/hostname" become: true ansible.builtin.copy: @@ -22,12 +28,6 @@ when: hostname is defined # Not required for boot -- name: "Include OS-specific variables" - ansible.builtin.include_vars: "{{ ansible_os_family | lower }}.yml" - -- name: "Install OS-specific packages" - ansible.builtin.include_tasks: "install-{{ ansible_os_family | lower }}.yml" - - name: "(chroot): Ensure network_services are enabled" ansible.builtin.command: cmd: "systemctl enable {{ item }}" diff --git a/roles/ssh/tasks/install-archlinux.yml b/roles/ssh/tasks/install-archlinux.yml deleted file mode 100644 index b8463c20..00000000 --- a/roles/ssh/tasks/install-archlinux.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- name: "Ensure sshd installed" - become: true - community.general.pacman: - name: "{{ ssh_package_name }}" - state: present diff --git a/roles/ssh/tasks/install-debian.yml b/roles/ssh/tasks/install-debian.yml deleted file mode 100644 index e62a4a8c..00000000 --- a/roles/ssh/tasks/install-debian.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- name: "Ensure ssh installed" - become: true - ansible.builtin.apt: - name: "{{ ssh_package_name }}" - state: "present" diff --git a/roles/ssh/tasks/main.yml b/roles/ssh/tasks/main.yml index c09d00e1..2e26ad7d 100644 --- a/roles/ssh/tasks/main.yml +++ b/roles/ssh/tasks/main.yml @@ -2,10 +2,13 @@ - name: "Include OS-specific variables" ansible.builtin.include_vars: "{{ ansible_os_family | lower }}.yml" -- name: "Install OS-specific packages" - ansible.builtin.include_tasks: "install-{{ ansible_os_family | lower }}.yml" +- name: "Ensure ssh_package_name installed" + become: true + ansible.builtin.package: + name: "{{ ssh_package_name }}" + state: "present" -- name: "Ensure ssh_service is enabled" +- name: "Ensure ssh_service_name is enabled" become: true ansible.builtin.service: name: "{{ ssh_service_name }}" @@ -13,7 +16,7 @@ enabled: true when: not ansible_is_chroot -- name: "(chroot): Ensure ssh_service enabled" +- name: "(chroot): Ensure ssh_service_name is enabled" # noqa: command-instead-of-module intentional isnide chroot ansible.builtin.command: cmd: "systemctl enable {{ ssh_service_name }}" diff --git a/roles/user/tasks/install-archlinux.yml b/roles/user/tasks/install-archlinux.yml deleted file mode 100644 index 9bb06e00..00000000 --- a/roles/user/tasks/install-archlinux.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- name: "Ensure sudo installed" - become: true - community.general.pacman: - name: "sudo" - state: "present" diff --git a/roles/user/tasks/install-debian.yml b/roles/user/tasks/install-debian.yml deleted file mode 100644 index 3d731944..00000000 --- a/roles/user/tasks/install-debian.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -- name: "Ensure sudo installed" - become: true - ansible.builtin.apt: - name: "sudo" - state: "present" diff --git a/roles/user/tasks/main.yml b/roles/user/tasks/main.yml index 71deaeed..76146491 100644 --- a/roles/user/tasks/main.yml +++ b/roles/user/tasks/main.yml @@ -1,6 +1,9 @@ --- -- name: "Install OS-specific packages" - ansible.builtin.include_tasks: "install-{{ ansible_os_family | lower }}.yml" +- name: "Ensure sudo installed" + become: true + ansible.builtin.package: + name: "sudo" + state: "present" - name: "Set sudo group fact" ansible.builtin.set_fact: @@ -28,8 +31,8 @@ state: "present" with_items: "{{ user_groups }}" -# noqa var-naming[no-role-prefix] username is more understandable than user_name - name: "Create user: {{ username }}" + # noqa var-naming[no-role-prefix] username is more understandable than user_name become: true ansible.builtin.user: name: "{{ username }}" -- cgit v1.2.3