From b92b0101920627cf0b8e7dd0d826d25b9fd96a41 Mon Sep 17 00:00:00 2001 From: Ahmed Abdelhalim Date: Wed, 10 Sep 2025 22:20:09 +0200 Subject: Refactor site playbooks to be more host oriented This also improves the dependency management, making the roles less repeating when not needing to execute multiple times --- roles/package_cache/meta/argument_specs.yml | 6 ++++ roles/package_cache/meta/main.yml | 18 ++++++++++++ roles/package_cache/tasks/main.yml | 8 ++++++ site.yml | 44 +++++++++++++++-------------- 4 files changed, 55 insertions(+), 21 deletions(-) create mode 100644 roles/package_cache/meta/argument_specs.yml create mode 100644 roles/package_cache/meta/main.yml create mode 100644 roles/package_cache/tasks/main.yml diff --git a/roles/package_cache/meta/argument_specs.yml b/roles/package_cache/meta/argument_specs.yml new file mode 100644 index 00000000..002f7ce3 --- /dev/null +++ b/roles/package_cache/meta/argument_specs.yml @@ -0,0 +1,6 @@ +--- +argument_specs: + main: + short_description: "Update distro package cache" + description: "Update Linux distribution default package cache" + options: {} diff --git a/roles/package_cache/meta/main.yml b/roles/package_cache/meta/main.yml new file mode 100644 index 00000000..5341556c --- /dev/null +++ b/roles/package_cache/meta/main.yml @@ -0,0 +1,18 @@ +--- +dependencies: [] +galaxy_info: + author: "a14m" + description: "Update distro package cache" + company: "kartoffeln.work GmbH." + license: "MIT" + min_ansible_version: "2.18" + platforms: + - name: "ArchLinux" + versions: + - "all" + - name: "Ubuntu" + versions: + - "noble" + - name: "Debian" + versions: + - "bookworm" diff --git a/roles/package_cache/tasks/main.yml b/roles/package_cache/tasks/main.yml new file mode 100644 index 00000000..0e14438a --- /dev/null +++ b/roles/package_cache/tasks/main.yml @@ -0,0 +1,8 @@ +--- +- name: "Update package cache" + become: true + ansible.builtin.package: + update_cache: true + async: 60 + poll: 5 + failed_when: false diff --git a/site.yml b/site.yml index ce4fd5fb..8c533a07 100644 --- a/site.yml +++ b/site.yml @@ -1,32 +1,22 @@ --- -- name: "Distro bootstrap configure" +- name: "Dev machines configure" gather_facts: true - # Password policy is technically not required for boot, - # But it's quite nice to configure it for boot and therefore - # enforce the required policies/configurations wanted for the first passwrod change - tags: ["required_for_boot"] - hosts: all + hosts: + - archlinux.local + - ubuntu.local roles: + - role: "package_cache" + tags: ["required_for_boot"] - role: "hostname" + tags: ["required_for_boot"] - role: "network" + tags: ["required_for_boot"] - role: "user" + tags: ["required_for_boot"] - role: "ssh" + tags: ["required_for_boot"] - role: "password_policy" - pre_tasks: - - name: "Update package cache" - become: true - ansible.builtin.package: - update_cache: true - async: 60 - poll: 5 - failed_when: false - -- name: "Dev machines configure" - gather_facts: true - hosts: - - archlinux.local - - ubuntu.local - roles: + tags: ["required_for_boot"] - role: "locales" - role: "timezone" - role: "wireguard" @@ -43,6 +33,18 @@ - rpi5.local become: true roles: + - role: "package_cache" + tags: ["required_for_boot"] + - role: "hostname" + tags: ["required_for_boot"] + - role: "network" + tags: ["required_for_boot"] + - role: "user" + tags: ["required_for_boot"] + - role: "ssh" + tags: ["required_for_boot"] + - role: "password_policy" + tags: ["required_for_boot"] - role: "locales" - role: "timezone" - role: "wireguard" -- cgit v1.2.3