Files
ansible_role_package/tasks/main.yml
2025-02-07 10:32:53 -07:00

135 lines
3.4 KiB
YAML

---
- 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