mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-08-29 15:06:26 +02:00
Optimized portfolio and pkgmgr update procedures
This commit is contained in:
47
roles/pkgmgr-install/README.md
Normal file
47
roles/pkgmgr-install/README.md
Normal 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)
|
2
roles/pkgmgr-install/defaults/main.yml
Normal file
2
roles/pkgmgr-install/defaults/main.yml
Normal file
@@ -0,0 +1,2 @@
|
||||
---
|
||||
pkgmgr_become: true
|
25
roles/pkgmgr-install/meta/main.yml
Normal file
25
roles/pkgmgr-install/meta/main.yml
Normal 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
|
22
roles/pkgmgr-install/tasks/main.yml
Normal file
22
roles/pkgmgr-install/tasks/main.yml
Normal 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
|
Reference in New Issue
Block a user