From 3cd47bdf0293966bffd4caba5c39c399b6dddeb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hannes=20K=C3=B6rber?= Date: Sat, 20 Apr 2024 12:09:28 +0200 Subject: [PATCH] Install packages earlier in playbook --- playbook.yml | 112 +++++++++++++++++++++++++-------------------------- 1 file changed, 56 insertions(+), 56 deletions(-) diff --git a/playbook.yml b/playbook.yml index d20c86b..d770c9e 100644 --- a/playbook.yml +++ b/playbook.yml @@ -160,6 +160,62 @@ changed_when: dotfiles_permission_change.stdout_lines|length > 0 tags: [dotfiles-directory] + - block: + - name: load package list + include_vars: + file: packages.yml + + - name: force-update iptables to iptables-nft on arch + shell: pacman -Q iptables && yes | pacman -S iptables-nft + changed_when: false + become: true + when: distro == 'archlinux' + + - set_fact: + defined_packages: "{{ packages|json_query('keys(list)') }}" + + - set_fact: + distro_packages: "{{ packages|json_query('list.*.%s'|format(distro)) }}" + + - name: check list + assert: + that: "defined_packages|length == distro_packages|length" + + - set_fact: + defined_packages_remove: "{{ packages|json_query('keys(remove)') }}" + + - set_fact: + distro_packages_remove: "{{ packages|json_query('remove.*.%s'|format(distro)) }}" + + - name: check list + assert: + that: "defined_packages_remove|length == distro_packages_remove|length" + + - name: remove packages + package: + name: "{{ packages|json_query(query) }}" + state: absent + become: true + vars: + query: "{{ 'remove.*.%s[]'|format(distro) }}" + + - name: install packages + package: + name: "{{ packages|json_query(query) }}" + state: present + become: true + vars: + query: "{{ 'list.*.%s[]'|format(distro) }}" + + - name: install machine-specific packages + package: + name: "{{ machine.packages }}" + state: present + when: machine.packages is defined + become: true + + tags: [packages] + - block: - name: create build user on arch user: @@ -389,62 +445,6 @@ tags: ["aur"] when: distro == 'archlinux' - - block: - - name: load package list - include_vars: - file: packages.yml - - - name: force-update iptables to iptables-nft on arch - shell: pacman -Q iptables && yes | pacman -S iptables-nft - changed_when: false - become: true - when: distro == 'archlinux' - - - set_fact: - defined_packages: "{{ packages|json_query('keys(list)') }}" - - - set_fact: - distro_packages: "{{ packages|json_query('list.*.%s'|format(distro)) }}" - - - name: check list - assert: - that: "defined_packages|length == distro_packages|length" - - - set_fact: - defined_packages_remove: "{{ packages|json_query('keys(remove)') }}" - - - set_fact: - distro_packages_remove: "{{ packages|json_query('remove.*.%s'|format(distro)) }}" - - - name: check list - assert: - that: "defined_packages_remove|length == distro_packages_remove|length" - - - name: remove packages - package: - name: "{{ packages|json_query(query) }}" - state: absent - become: true - vars: - query: "{{ 'remove.*.%s[]'|format(distro) }}" - - - name: install packages - package: - name: "{{ packages|json_query(query) }}" - state: present - become: true - vars: - query: "{{ 'list.*.%s[]'|format(distro) }}" - - - name: install machine-specific packages - package: - name: "{{ machine.packages }}" - state: present - when: machine.packages is defined - become: true - - tags: [packages] - - block: - name: configure timesyncd on arch copy: