Deleted personas and replaced by utils

This commit is contained in:
Kevin Veen-Birkenbach 2025-07-09 03:09:12 +02:00
parent ed0cd9b8c0
commit e4ff99e336
No known key found for this signature in database
GPG Key ID: 44D8F11FD62F878E
49 changed files with 43 additions and 219 deletions

View File

@ -1,4 +1,4 @@
# Persona: Arduino Developer🔌
# Arduino Development Utilities 🔌
## Description
@ -18,7 +18,7 @@ The role enables a ready-to-use Arduino development setup by installing necessar
- **Installs Arduino IDE & Docs:** Provides GUI and offline references.
- **User Group Configuration:** Adds the developer to `uucp` and `lock` groups for serial communication.
- **Persona Integration:** Extends `persona-developer` with embedded-specific tools.
- **Persona Integration:** Extends `utils-desktop-dev-core` with embedded-specific tools.
## Credits 📝

View File

@ -24,4 +24,4 @@ galaxy_info:
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- persona-developer
- utils-desktop-dev-core

View File

@ -1,4 +1,4 @@
# Persona: Developer 👨‍💻
# Development Utilities 👨‍💻
## Description
@ -18,7 +18,7 @@ To reduce setup time and ensure consistency across developer workstations, this
- **Installs Visual Studio Code:** A powerful code editor with a wide plugin ecosystem.
- **Extensible Design:** Acts as a base layer for more specific development stacks (e.g., web, Python, embedded).
- **Persona Integration:** Extends the `persona-administrator` for technical users with a development focus.
- **Persona Integration:** Extends the `utils-generic-administrator` for technical users with a development focus.
## Credits 📝

View File

@ -24,5 +24,5 @@ galaxy_info:
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- persona-administrator
- utils-generic-administrator
- pkgmgr

View File

@ -1,4 +1,4 @@
# Persona: Java Developer☕️
# Java Development Utilities ☕️
## Description
@ -17,7 +17,7 @@ The role is ideal for users who regularly work with Java, whether for backend sy
## Features
- **Installs Java Development Kit (JDK):** Ensures the system has Java ready to run and compile applications.
- **Persona Integration:** Extends the `persona-developer` role with Java-specific capabilities.
- **Persona Integration:** Extends the `utils-desktop-dev-core` role with Java-specific capabilities.
- **Ready for IDEs & Build Tools:** Prepares the base for tools like Maven, Gradle, or IntelliJ IDEA.
## Customization

View File

@ -26,4 +26,4 @@ galaxy_info:
documentation: https://s.veen.world/cymais
dependencies:
- generic-java
- persona-developer
- utils-desktop-dev-core

View File

@ -1,4 +1,4 @@
# Persona: PHP Developer🐘
# PHP Development Utilities 🐘
## Description
@ -8,7 +8,7 @@ Explore more at the [PHP Official Site](https://www.php.net/), [Arch Wiki - PHP]
## Overview
The `persona-developer-php` role extends the base developer persona by adding support for PHP development. It's ideal for backend developers, web engineers, and students working with PHP-based applications and frameworks.
The `utils-desktop-dev-php` role extends the base developer persona by adding support for PHP development. It's ideal for backend developers, web engineers, and students working with PHP-based applications and frameworks.
## Purpose
@ -18,7 +18,7 @@ To equip developer environments with PHP so that users can begin writing and run
- **Installs PHP:** Adds the official PHP interpreter from the Arch package repositories.
- **Lightweight & Extensible:** Can be extended with PHP modules, web servers, or frameworks.
- **Persona Integration:** Builds on the `persona-developer` role for consistent tooling and workflow.
- **Persona Integration:** Builds on the `utils-desktop-dev-core` role for consistent tooling and workflow.
## Customization

View File

@ -25,4 +25,4 @@ galaxy_info:
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- persona-developer
- utils-desktop-dev-core

View File

@ -1,4 +1,4 @@
# Persona: Developer Python 🐍
# Python Development Utilities 🐍
## Description
@ -17,7 +17,7 @@ To simplify and standardize the provisioning of Python-ready environments for de
## Features
- **Installs Python and Pip:** Ensures the interpreter and package manager are available.
- **Persona Integration:** Extends `persona-developer` with Python-specific tools.
- **Persona Integration:** Extends `utils-desktop-dev-core` with Python-specific tools.
- **Foundation for Further Stacks:** Ideal starting point for Flask, Django, scientific computing, and automation.
## Customization
@ -25,7 +25,7 @@ To simplify and standardize the provisioning of Python-ready environments for de
Easily extend this role with:
- Python virtualenv tools (`python-virtualenv`, `pyenv`)
- Popular libraries (`numpy`, `requests`, `flask`)
- Framework-specific roles (e.g., `persona-developer-python-django`)
- Framework-specific roles (e.g., `utils-desktop-dev-python-django`)
## Credits 📝

View File

@ -25,5 +25,5 @@ galaxy_info:
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- persona-developer
- utils-desktop-dev-core
- generic-python-pip

View File

@ -1,4 +1,4 @@
# Persona: Developer Shell 🐚
# Shell Development Utilities 🐚
## Description
@ -8,7 +8,7 @@ Learn more about [ShellCheck](https://www.shellcheck.net/), [Bash](https://www.g
## Overview
This role expands the general `persona-developer` by equipping the system with tools specifically aimed at writing and linting shell scripts. It's ideal for DevOps engineers, system administrators, and anyone automating systems with Bash.
This role expands the general `utils-desktop-dev-core` by equipping the system with tools specifically aimed at writing and linting shell scripts. It's ideal for DevOps engineers, system administrators, and anyone automating systems with Bash.
## Purpose

View File

@ -25,4 +25,4 @@ galaxy_info:
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- persona-developer
- utils-desktop-dev-core

View File

@ -24,9 +24,9 @@ To provide a modular and reproducible way to deploy a full-featured Linux gaming
| Role | Responsibility |
|------|----------------|
| [`persona-gamer-retro`](../persona-gamer-retro) | Installs RetroArch and assets |
| [`persona-gamer-default`](../persona-gamer-default) | Installs open source games |
| [`persona-gamer-core`](../persona-gamer-core) | Installs Steam, Lutris, Wine, GameMode, MangoHUD |
| [`desktop-retroarch`](../desktop-retroarch) | Installs RetroArch and assets |
| [`utils-desktop-game-os`](../utils-desktop-game-os) | Installs open source games |
| [`utils-desktop-game-windows`](../utils-desktop-game-windows) | Installs Steam, Lutris, Wine, GameMode, MangoHUD |
## Credits 📝

View File

@ -26,6 +26,6 @@ galaxy_info:
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- persona-gamer-retro
- persona-gamer-default
- persona-gamer-core
- desktop-retroarch
- utils-desktop-game-os
- utils-desktop-game-windows

View File

@ -6,7 +6,7 @@ This Ansible role installs core gaming utilities and performance tools on Arch L
## Overview
Focused on native and Windows-compatible game support, this role equips systems with the necessary runtimes, drivers, and enhancements for high-performance gaming. It complements other persona-gamer roles such as `retro` and `default` to provide a full gaming setup.
Focused on native and Windows-compatible game support, this role equips systems with the necessary runtimes, drivers, and enhancements for high-performance gaming. It complements other utils-desktop-game-compose roles such as `retro` and `default` to provide a full gaming setup.
## Purpose

View File

@ -1,10 +1,10 @@
# Employee
## Overview
This README document is for the `persona-employee` role, a component of the `cymais` repository. This role is designed to install a suite of office-related software on personal computers, providing a comprehensive set of tools for various office tasks.
This README document is for the `utils-desktop-office-tools` role, a component of the `cymais` repository. This role is designed to install a suite of office-related software on personal computers, providing a comprehensive set of tools for various office tasks.
## Role Tasks
The `main.yml` file within the `persona-employee` role comprises tasks for installing a range of office software:
The `main.yml` file within the `utils-desktop-office-tools` role comprises tasks for installing a range of office software:
1. **Install Office Software**:
- The role utilizes the `community.general.pacman` module to install the following software packages:
@ -19,7 +19,7 @@ This role depends on:
- **desktop-zoom**: Provides tools necessary for video conferencing, supplementing the office setup.
## Purpose and Usage
The `persona-employee` role is ideal for users who require a full-fledged office setup on their personal computers. It encompasses tools for web browsing, email management, e-book organization, and document editing, catering to a wide range of office and productivity needs.
The `utils-desktop-office-tools` role is ideal for users who require a full-fledged office setup on their personal computers. It encompasses tools for web browsing, email management, e-book organization, and document editing, catering to a wide range of office and productivity needs.
## Prerequisites
- **Ansible**: Must be installed to use this role.
@ -28,7 +28,7 @@ The `persona-employee` role is ideal for users who require a full-fledged office
## Running the Role
To utilize this role:
1. Clone the `cymais` repository.
2. Navigate to the `roles/persona-employee` directory.
2. Navigate to the `roles/utils-desktop-office-tools` directory.
3. Run the role using Ansible, ensuring you have the necessary permissions for software installation.
## Customization

View File

@ -8,7 +8,7 @@ Learn more about Linux network tools on the [Arch Wiki - Network Tools](https://
## Overview
This role enhances the base `persona-administrator` role by adding tools specifically for analyzing, debugging, and monitoring network traffic and connectivity.
This role enhances the base `utils-generic-administrator` role by adding tools specifically for analyzing, debugging, and monitoring network traffic and connectivity.
## Purpose

View File

@ -23,4 +23,4 @@ galaxy_info:
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- persona-administrator
- utils-generic-administrator

View File

@ -1,4 +1,4 @@
# Persona: Corporate 🏢
# Corporate
## Description

View File

@ -5,15 +5,15 @@
include_role:
name: "{{ item }}"
loop:
- persona-administrator
- utils-generic-administrator
- driver-non-free
- name: persona-employee
- name: utils-desktop-office-tools
when: ("collection_officetools" in group_names)
include_role:
name: "{{ item }}"
loop:
- persona-employee
- utils-desktop-office-tools
- desktop-jrnl
@ -22,20 +22,20 @@
include_role:
name: desktop-gnucash
- name: persona-designer
- name: utils-desktop-design
when: ("collection_designer" in group_names)
include_role:
name: persona-designer
name: utils-desktop-design
- name: desktop-qbittorrent
when: ("collection_torrent" in group_names)
include_role:
name: desktop-qbittorrent
- name: persona-streamer
- name: desktop-obs
when: ("collection_streamer" in group_names)
include_role:
name: persona-streamer
name: desktop-obs
- name: desktop-bluray-player
when: ("collection_bluray_player" in group_names)
@ -55,7 +55,7 @@
- name: setup gaming hosts
when: ("gaming" in group_names)
include_role:
name: persona-gamer
name: utils-desktop-game-compose
- name: setup entertainment hosts
when: ("entertainment" in group_names)

View File

@ -24,7 +24,7 @@
- name: "setup corporate identity"
include_role:
name: persona-corporate
name: utils-server-corporate-identity
when: ('corporate_identity' | application_allowed(group_names, allowed_applications))
- name: setup redirect hosts

View File

@ -1,5 +0,0 @@
## Inventory Templates
This repository provides ready-to-use templates for creating and managing persona inventories.
[Check out the related task in the project management system »](https://project.veen.world/projects/cymais/work_packages/80/activity)

View File

@ -1,105 +0,0 @@
# Todo
Implement
# Inventories Directory
## Purpose
The `inventories/` directory defines environment-specific inventory data for Ansible.
Each subdirectory within `inventories/` represents a dedicated persona or environment (e.g., `enterprise`, `developer`, `gamer`) and contains the necessary templates and variables to generate the final Ansible inventory and variable files.
This structure allows fully automated and reproducible inventory generation using a Python tool.
---
## Directory Structure
```
inventories/
├── <persona-name>/
│ ├── README.md # Description of the persona or environment
│ ├── inventory.yml.j2 # Jinja2 template for the dynamic inventory file
│ ├── vars.yml.j2 # Jinja2 template for generating group_vars / host_vars
│ └── config.yml # Metadata and settings for this persona (optional)
```
---
## Purpose of Each File
| File | Purpose |
|------|---------|
| `README.md` | Documentation of the persona/environment, included roles, and intended use case. |
| `inventory.yml.j2` | Jinja2 template that generates the inventory structure (hosts, groups, variables). |
| `vars.yml.j2` | Jinja2 template generating environment-specific variables (used in group_vars or host_vars). |
| `config.yml` | Optional metadata file containing settings like acquired personas, feature flags, default variables. |
---
## Recommended Workflow with Python Tool
1. The Python tool scans `inventories/<persona>` directories.
2. For each persona:
- Load `config.yml` (optional).
- Render `vars.yml.j2` → Output: `group_vars/all.yml`
- Render `inventory.yml.j2` → Output: `inventory.yml`
- Recursively acquire and merge dependent personas (defined in `config.yml`):
```yaml
# Example: inventories/enterprise/config.yml
acquire_personas:
- corporate
- administrator
- developer
```
3. Combine all output into a deployable inventory directory:
```
output/
├── enterprise/
│ ├── inventory.yml
│ └── group_vars/
│ └── all.yml
```
4. The generated inventory is ready for use:
```bash
ansible-playbook -i output/enterprise/inventory.yml site.yml
```
---
## Benefits of This Approach
- Personas remain fully modular and reusable.
- No duplication of host/group data.
- Centralized variable generation per persona.
- Automated and consistent inventory generation.
- Easy documentation per persona via `README.md`.
- Optional Feature Flags or Role Toggles in `config.yml`.
- Scalable for multi-environment setups.
---
## Example Python Features
| Feature | Description |
|---------|-------------|
| Auto Inventory Generation | Render `inventory.yml` and `vars.yml` from Jinja2 templates. |
| Recursive Persona Acquisition | Load dependent personas automatically. |
| Feature Flags | Enable/disable features via `config.yml`. |
| Variable Merging | Combine variables from all acquired personas. |
| Output Directory | Place final inventories in `output/<persona>` directory. |
---
## Example Command
```bash
python generate_inventory.py --persona enterprise --output output/
```
This will render the `enterprise` persona, recursively acquire all dependent personas, and generate a fully deployable inventory with variables.
```

View File

@ -1,36 +0,0 @@
# Designer
## Overview
This README is associated with the `persona-designer` role, part of the `cymais` repository. This role focuses on setting up a suite of essential design tools on personal computers, catering specifically to the needs of graphic designers, illustrators, and digital artists.
## Role Contents
The `main.yml` file in the `persona-designer` role encompasses tasks for installing popular design software:
1. **Install Designer Tools**: This task uses the `community.general.pacman` module to install:
- `gimp`: A free and open-source raster graphics editor, used for image retouching and editing, free-form drawing, converting between different image formats, and more specialized tasks.
- `blender`: A free and open-source 3D creation suite supporting the entirety of the 3D pipeline—modeling, rigging, animation, simulation, rendering, compositing, and motion tracking, even video editing and game creation.
2. **Install drawio**: A separate task that uses the `kewlfft.aur.aur` module (with `yay` as the helper) to install `drawio-desktop`, a diagram software used for creating a wide range of diagrams and flowcharts.
## Dependencies
This role depends on:
- **generic-aur-helper**: Ensures that an AUR (Arch User Repository) helper is available, which is necessary for installing packages like `drawio-desktop` that are not in the standard repositories.
## Purpose and Usage
The `persona-designer` role is intended for users who require a robust set of tools for graphic design, 3D modeling, and diagram creation. It simplifies the process of setting up a comprehensive design environment on Arch Linux-based systems.
## Prerequisites
- **Ansible**: Required for running this role.
- **Arch Linux-based System**: As the role uses `pacman` and AUR helpers, it is tailored for Arch Linux or similar distributions.
## Running the Role
To use this role:
1. Clone the `cymais` repository.
2. Navigate to the `roles/persona-designer` directory.
3. Execute the role using Ansible, ensuring you have the necessary permissions for software installation.
## Customization
This role can be customized by adding or removing software packages in the `main.yml` file to match the specific needs of the user.
## Support and Contributions
For support, feedback, or contributions, such as adding more tools or improving the existing setup, please open an issue or submit a pull request in the `cymais` repository. Contributions that enhance the role for designers are greatly appreciated.

View File

@ -1,30 +0,0 @@
# PC-Streaming-Tools Role
## Overview
This README is associated with the `persona-streamer` role, part of the `cymais` repository. This role is focused on setting up essential tools for live streaming and video recording on personal computers.
## Role Tasks
The `main.yml` file in the `persona-streamer` role includes a task for installing a key streaming software:
1. **Install Streaming**:
- The role uses the `community.general.pacman` module to install:
- `obs-studio`: Open Broadcaster Software Studio, a free and open-source software for video recording and live streaming.
## Purpose and Usage
The `persona-streamer` role is designed for content creators, gamers, educators, and anyone who needs to record video or stream live content. OBS Studio provides a versatile platform for video production and live streaming, offering features like high-performance real-time video/audio capturing and mixing.
## Prerequisites
- **Ansible**: Required for running this role.
- **Arch Linux-based System**: As the role employs the `pacman` package manager, it is tailored for systems based on Arch Linux or similar distributions.
## Running the Role
To use this role:
1. Clone the `cymais` repository.
2. Navigate to the `roles/persona-streamer` directory.
3. Run the role using Ansible, ensuring you have the necessary permissions for software installation.
## Customization
This role primarily focuses on installing OBS Studio, but you can customize it by adding additional streaming or video recording tools as per your requirements.
## Support and Contributions
For support, feedback, or contributions, such as adding more streaming tools or enhancing the existing setup, please open an issue or submit a pull request in the `cymais` repository. Contributions that enhance the streaming capabilities of this role are highly welcome.