From 02a526a9d987b13f7d59f87601c4061985ee8ac3 Mon Sep 17 00:00:00 2001 From: Ahmed Abdelhalim Date: Thu, 23 Apr 2026 14:39:21 +0200 Subject: Refactor the configure playbook to dynamically include roles Since these hosts could have dual boot enabled, depending on which OS is booted it configures the custom roles needed for each OS (depending on the use case), right now they are all interchangeable so it simplify the playbook --- configure.yml | 160 +++++++++++++++++++++++++--------------------------------- 1 file changed, 69 insertions(+), 91 deletions(-) diff --git a/configure.yml b/configure.yml index e43da442..264532e4 100644 --- a/configure.yml +++ b/configure.yml @@ -1,98 +1,76 @@ --- -- name: "Archlinux configure" +- name: "Dev configure" gather_facts: true hosts: - - archlinux.local - - marchlinux.local - roles: - - role: "locales" - - role: "timezone" - - role: "yay" - - role: "font" - - role: "which" - - role: "bash" - - role: "alacritty" - - role: "man" - - role: "jq" - - role: "ag" - - role: "libheif" - - role: "tmuxinator" - - role: "rsync" - - role: "gpg" - - role: "btop" - - role: "zoxide" - - role: "git" - - role: "git-crypt" - - role: "dotfiles" - - role: "password_store" - - role: "wireguard" - - role: "vim" - - role: "mise" - - role: "gnome-calendar" - - role: "gnome-loupe" - - role: "gnome-papers" - - role: "gnome-planify" - - role: "gnome-disk-utility" - - role: "gnome-newsflash" - - role: "mpv" - - role: "neomutt" - - role: "go" - - role: "python" - - role: "nodejs" - - role: "docker" - - role: "podman" - - role: "ansible" - - role: "claude" - - role: "hyprland" - - role: "firefox" - - role: "zen-browser" - - role: "chromium" - - role: "obsidian" - - role: "localsend" - - role: "microsoft-teams" - - role: "gpu_driver" - - role: "steam" - - role: "prometheus-node-exporter" + - desktop.local + - macbook.local + - laptop.local + tasks: + - name: "Common" + ansible.builtin.include_role: + name: "{{ item }}" + loop: + - "locales" + - "timezone" + - "font" + - "bash" + - "man" + - "which" + - "jq" + - "ag" + - "libheif" + - "tmuxinator" + - "rsync" + - "gpg" + - "git" + - "git-crypt" + - "zoxide" + - "dotfiles" + - "password_store" + - "wireguard" + - "vim" + - "mise" + - "neomutt" + - "go" + - "python" + - "nodejs" + - "docker" + - "podman" + - "ansible" + - "alacritty" + - "btop" + - "claude" + - "firefox" + - "obsidian" + - "localsend" + - "microsoft-teams" + - "gnome-calendar" + - "gnome-newsflash" + - "gnome-planify" + - "gnome-loupe" + - "gnome-papers" + - "gnome-disk-utility" + - "prometheus-node-exporter" -- name: "Ubuntu configure" - gather_facts: true - hosts: - - ubuntu.local - - mubuntu.local - roles: - - role: "locales" - - role: "timezone" - - role: "font" - - role: "bash" - - role: "man" - - role: "jq" - - role: "ag" - - role: "libheif" - - role: "tmuxinator" - - role: "rsync" - - role: "gpg" - - role: "git" - - role: "git-crypt" - - role: "dotfiles" - - role: "password_store" - - role: "vim" - - role: "mise" - - role: "neomutt" - - role: "wireguard" - - role: "go" - - role: "python" - - role: "docker" - - role: "podman" - - role: "ansible" - - role: "gnome" - - role: "gnome-planify" - - role: "firefox" - - role: "obsidian" - - role: "localsend" - - role: "microsoft-teams" - - role: "gnome-calendar" - - role: "gnome-newsflash" - - role: "prometheus-node-exporter" + - name: "Archlinux" + when: ansible_distribution == 'Archlinux' + ansible.builtin.include_role: + name: "{{ item }}" + loop: + - "yay" + - "mpv" + - "hyprland" + - "zen-browser" + - "chromium" + - "gpu_driver" + - "steam" + + - name: "Ubuntu" + when: ansible_distribution == 'Ubuntu' + ansible.builtin.include_role: + name: "{{ item }}" + loop: + - "gnome" - name: "Raspberry Pi configure" gather_facts: true -- cgit v1.2.3