Optimized portfolio and pkgmgr update procedures

This commit is contained in:
2025-04-10 14:07:50 +02:00
parent 150e15625d
commit 2ca000795d
43 changed files with 334 additions and 334 deletions

View File

@@ -0,0 +1,47 @@
# Package Manager Installation 📦
## Description
This Ansible role installs and updates packages using `pkgmgr` on Arch Linux systems. It provides a unified interface for package installation and update management, ensuring consistent deployment across environments.
## Overview
The role abstracts package management operations using `pkgmgr`. It ensures the package manager itself is updated once per run and provides idempotent installation and update routines for specified packages.
## Purpose
The purpose of this role is to automate the installation and update process for CyMaIS-related applications or other managed packages using `pkgmgr`. It simplifies package handling and enforces best practices for package deployment in automated environments.
## Features
- **Automatic pkgmgr Update:** Ensures the package manager is always up-to-date.
- **Idempotent Package Installation:** Only installs packages when necessary.
- **Flexible Notification:** Supports handler notification for post-install actions (e.g., Docker Compose builds).
- **Optional Privilege Escalation:** Controlled via the `pkgmgr_become` variable (default: `true`).
## Role Variables
| Name | Description | Default |
|-----------------|-----------------------------------------------------------------|---------|
| `package_name` | Name of the package to install/update | (required) |
| `package_notify` | Handler to notify on package installation/update | "" |
| `pkgmgr_become` | Execute all tasks with elevated privileges (become: true/false) | true |
## Example Usage
```yaml
- name: Install cymais-presentation
include_role:
name: pkgmgr-install
vars:
package_name: cymais-presentation
package_notify: docker compose project build and setup
```
## Credits 📝
Developed and maintained by **Kevin Veen-Birkenbach**.
Learn more at [www.veen.world](https://www.veen.world)
Part of the [CyMaIS Project](https://github.com/kevinveenbirkenbach/cymais)
License: [CyMaIS NonCommercial License (CNCL)](https://s.veen.world/cncl)

View File

@@ -0,0 +1,2 @@
---
pkgmgr_become: true

View File

@@ -0,0 +1,25 @@
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs and updates packages using pkgmgr."
license: "CyMaIS NonCommercial License (CNCL)"
license_url: "https://s.veen.world/cncl"
company: |
Kevin Veen-Birkenbach
Consulting & Coaching Solutions
https://www.veen.world
min_ansible_version: "2.9"
platforms:
- name: Archlinux
versions:
- rolling
galaxy_tags:
- pkgmgr
- package
- update
- archlinux
- cymais
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- pkgmgr

View File

@@ -0,0 +1,22 @@
- name: "{{ role_name }} | pkgmgr installation tasks"
become: "{{ pkgmgr_become }}"
block:
- name: update pkgmgr
command:
cmd: "pkgmgr update pkgmgr"
when: run_once_pkgmgr_update is not defined
- name: install {{ package_name }}
command:
cmd: "pkgmgr install {{ package_name }} --clone-mode https"
notify: "{{ package_notify | default(omit) }}"
- name: update {{ package_name }}
command:
cmd: "pkgmgr update {{ package_name }}"
notify: "{{ package_notify | default(omit) }}"
- name: mark pkgmgr update as done
set_fact:
run_once_pkgmgr_update: true
when: run_once_pkgmgr_update is not defined