--- - name: generate package installation lists ansible.builtin.include_tasks: file: addpkg.yml loop: "{{ packages | unique }}" loop_control: loop_var: pkg - name: redhat based OS block: - name: upgrade dnf packages ansible.builtin.dnf: name: "*" state: latest become: true when: full_upgrade - name: install dnf packages ansible.builtin.dnf: name: "{{ syspkgs | unique }}" state: "{{ install_state }}" become: true when: - syspkgs|length > 0 when: ansible_os_family == 'RedHat' - name: debian based OS block: - name: upgrade apt packages ansible.builtin.apt: name: "*" state: latest become: true when: full_upgrade - name: install apt packages ansible.builtin.apt: name: "{{ syspkgs | unique }}" state: "{{ install_state }}" become: true when: - syspkgs|length > 0 when: ansible_os_family == 'Debian' - name: darwin/macOS based OS block: - name: upgrade homebrew packages community.general.homebrew: name: "*" state: latest when: full_upgrade - name: tap homebrew taps community.general.homebrew_tap: name: "{{ brewtaps | unique }}" state: present when: brewtaps|length > 0 - name: install homebrew packages community.general.homebrew: name: "{{ syspkgs | unique }}" state: "{{ install_state }}" when: syspkgs|length > 0 - name: install homebrew casks community.general.homebrew_cask: name: "{{ caskpkgs | unique }}" state: "{{ install_state }}" when: caskpkgs|length > 0 - name: workaround to install homebrew taps ansible.builtin.command: cmd: "brew install {{ tappkg }}" loop: "{{ tappkgs | unique }}" loop_control: loop_var: tappkg when: ansible_os_family == 'Darwin' - name: install srcpkgs ansible.builtin.include_tasks: file: "build/{{ srcpkg }}.yml" loop: "{{ srcpkgs | unique }}" loop_control: loop_var: srcpkg when: srcpkgs|length > 0 - name: install cargo packages at specific version community.general.cargo: name: "{{ cargopkg.name }}" version: "{{ cargopkg.version }}" path: "{{ cargopkg.path | default(default_config.install_prefix) }}" locked: "{{ cargopkg.locked | default(false) }}" become: true when: cargoversioned|length > 0 loop: "{{ cargoversioned | unique }}" loop_control: loop_var: cargopkg - name: Install cargo packages at latest version community.general.cargo: name: "{{ cargopkg }}" state: latest locked: "{{ cargopkg.locked | default(false) }}" when: cargopkgs|length > 0 loop: "{{ cargopkgs | unique }}" loop_control: loop_var: cargopkg - name: Install local go packages environment: GOROOT: /usr/local/go PATH: /usr/local/go/bin:$PATH ansible.builtin.command: cmd: "go install {{ ( gopkgs | unique ) | join(' ') }}" when: gopkgs|length > 0 - name: Install local npm packages community.general.npm: global: true name: "{{ npmpkg }}" state: latest loop: "{{ npmpkgs | unique }}" loop_control: loop_var: npmpkg when: npmpkgs|length > 0 - name: Install python pip packages for user community.general.pipx: name: "{{ pipxpkg }}" state: latest loop: "{{ pipxpkgs | unique }}" loop_control: loop_var: pipxpkg when: pipxpkgs|length > 0