feat: initial cross-distro package management role
Supports apt, dnf, yum, pacman, apk and zypper. Variables cover install, remove, upgrade, cache refresh and autoremove.
This commit is contained in:
26
tasks/apk.yml
Normal file
26
tasks/apk.yml
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
- name: Update apk cache
|
||||
community.general.apk:
|
||||
update_cache: true
|
||||
become: true
|
||||
when: packages_update_cache | bool
|
||||
|
||||
- name: Upgrade all packages
|
||||
community.general.apk:
|
||||
upgrade: true
|
||||
become: true
|
||||
when: packages_upgrade | bool
|
||||
|
||||
- name: Install packages
|
||||
community.general.apk:
|
||||
name: "{{ packages_install }}"
|
||||
state: "{{ packages_state }}"
|
||||
become: true
|
||||
when: packages_install | length > 0
|
||||
|
||||
- name: Remove packages
|
||||
community.general.apk:
|
||||
name: "{{ packages_remove }}"
|
||||
state: absent
|
||||
become: true
|
||||
when: packages_remove | length > 0
|
||||
34
tasks/apt.yml
Normal file
34
tasks/apt.yml
Normal file
@@ -0,0 +1,34 @@
|
||||
---
|
||||
- name: Update apt cache
|
||||
ansible.builtin.apt:
|
||||
update_cache: true
|
||||
cache_valid_time: "{{ packages_cache_valid_time }}"
|
||||
become: true
|
||||
when: packages_update_cache | bool
|
||||
|
||||
- name: Upgrade all packages
|
||||
ansible.builtin.apt:
|
||||
upgrade: dist
|
||||
become: true
|
||||
when: packages_upgrade | bool
|
||||
|
||||
- name: Install packages
|
||||
ansible.builtin.apt:
|
||||
name: "{{ packages_install }}"
|
||||
state: "{{ packages_state }}"
|
||||
become: true
|
||||
when: packages_install | length > 0
|
||||
|
||||
- name: Remove packages
|
||||
ansible.builtin.apt:
|
||||
name: "{{ packages_remove }}"
|
||||
state: absent
|
||||
purge: false
|
||||
become: true
|
||||
when: packages_remove | length > 0
|
||||
|
||||
- name: Remove unused dependencies
|
||||
ansible.builtin.apt:
|
||||
autoremove: true
|
||||
become: true
|
||||
when: packages_autoremove | bool
|
||||
33
tasks/dnf.yml
Normal file
33
tasks/dnf.yml
Normal file
@@ -0,0 +1,33 @@
|
||||
---
|
||||
- name: Update dnf cache
|
||||
ansible.builtin.dnf:
|
||||
update_cache: true
|
||||
become: true
|
||||
when: packages_update_cache | bool
|
||||
|
||||
- name: Upgrade all packages
|
||||
ansible.builtin.dnf:
|
||||
name: "*"
|
||||
state: latest
|
||||
become: true
|
||||
when: packages_upgrade | bool
|
||||
|
||||
- name: Install packages
|
||||
ansible.builtin.dnf:
|
||||
name: "{{ packages_install }}"
|
||||
state: "{{ packages_state }}"
|
||||
become: true
|
||||
when: packages_install | length > 0
|
||||
|
||||
- name: Remove packages
|
||||
ansible.builtin.dnf:
|
||||
name: "{{ packages_remove }}"
|
||||
state: absent
|
||||
become: true
|
||||
when: packages_remove | length > 0
|
||||
|
||||
- name: Remove unused dependencies
|
||||
ansible.builtin.dnf:
|
||||
autoremove: true
|
||||
become: true
|
||||
when: packages_autoremove | bool
|
||||
9
tasks/main.yml
Normal file
9
tasks/main.yml
Normal file
@@ -0,0 +1,9 @@
|
||||
---
|
||||
- name: Assert supported package manager
|
||||
ansible.builtin.assert:
|
||||
that:
|
||||
- ansible_pkg_mgr in ['apt', 'dnf', 'yum', 'pacman', 'apk', 'zypper']
|
||||
fail_msg: "Package manager '{{ ansible_pkg_mgr }}' is not supported by this role"
|
||||
|
||||
- name: Include package manager tasks
|
||||
ansible.builtin.include_tasks: "{{ ansible_pkg_mgr }}.yml"
|
||||
26
tasks/pacman.yml
Normal file
26
tasks/pacman.yml
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
- name: Update pacman cache
|
||||
community.general.pacman:
|
||||
update_cache: true
|
||||
become: true
|
||||
when: packages_update_cache | bool
|
||||
|
||||
- name: Upgrade all packages
|
||||
community.general.pacman:
|
||||
upgrade: true
|
||||
become: true
|
||||
when: packages_upgrade | bool
|
||||
|
||||
- name: Install packages
|
||||
community.general.pacman:
|
||||
name: "{{ packages_install }}"
|
||||
state: "{{ packages_state }}"
|
||||
become: true
|
||||
when: packages_install | length > 0
|
||||
|
||||
- name: Remove packages
|
||||
community.general.pacman:
|
||||
name: "{{ packages_remove }}"
|
||||
state: absent
|
||||
become: true
|
||||
when: packages_remove | length > 0
|
||||
27
tasks/yum.yml
Normal file
27
tasks/yum.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
- name: Update yum cache
|
||||
ansible.builtin.yum:
|
||||
update_cache: true
|
||||
become: true
|
||||
when: packages_update_cache | bool
|
||||
|
||||
- name: Upgrade all packages
|
||||
ansible.builtin.yum:
|
||||
name: "*"
|
||||
state: latest
|
||||
become: true
|
||||
when: packages_upgrade | bool
|
||||
|
||||
- name: Install packages
|
||||
ansible.builtin.yum:
|
||||
name: "{{ packages_install }}"
|
||||
state: "{{ packages_state }}"
|
||||
become: true
|
||||
when: packages_install | length > 0
|
||||
|
||||
- name: Remove packages
|
||||
ansible.builtin.yum:
|
||||
name: "{{ packages_remove }}"
|
||||
state: absent
|
||||
become: true
|
||||
when: packages_remove | length > 0
|
||||
27
tasks/zypper.yml
Normal file
27
tasks/zypper.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
- name: Refresh zypper repositories
|
||||
community.general.zypper_repository:
|
||||
runrefresh: true
|
||||
become: true
|
||||
when: packages_update_cache | bool
|
||||
|
||||
- name: Upgrade all packages
|
||||
community.general.zypper:
|
||||
name: "*"
|
||||
state: dist-upgrade
|
||||
become: true
|
||||
when: packages_upgrade | bool
|
||||
|
||||
- name: Install packages
|
||||
community.general.zypper:
|
||||
name: "{{ packages_install }}"
|
||||
state: "{{ packages_state }}"
|
||||
become: true
|
||||
when: packages_install | length > 0
|
||||
|
||||
- name: Remove packages
|
||||
community.general.zypper:
|
||||
name: "{{ packages_remove }}"
|
||||
state: absent
|
||||
become: true
|
||||
when: packages_remove | length > 0
|
||||
Reference in New Issue
Block a user