Deleted personas and replaced by utils

This commit is contained in:
2025-07-09 03:09:12 +02:00
parent ed0cd9b8c0
commit e4ff99e336
49 changed files with 43 additions and 219 deletions

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,29 +0,0 @@
# Persona: Network Administrator🌐
## Description
This Ansible role installs core tools for network administrators and system engineers on Arch Linux. It focuses on diagnostics, protocol analysis, and connectivity testing in local and remote environments.
Learn more about Linux network tools on the [Arch Wiki - Network Tools](https://wiki.archlinux.org/title/Network_tools), [Wireshark Official Site](https://www.wireshark.org/), and [Traceroute](https://linux.die.net/man/8/traceroute).
## Overview
This role enhances the base `persona-administrator` role by adding tools specifically for analyzing, debugging, and monitoring network traffic and connectivity.
## Purpose
Designed for system and network administrators, this role provides quick access to powerful network tools, enabling efficient problem analysis and packet inspection.
## Features
- **Installs Network Utilities:** Includes `traceroute`, `wireshark-qt`, and `wireshark-cli`.
- **Packet Analysis Ready:** GUI and CLI tools for inspecting and decoding network traffic.
- **Persona Integration:** Extends the core administrator persona for network-focused tasks.
## 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

@@ -1,26 +0,0 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs essential network analysis tools for system administrators on Linux."
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:
- network
- administration
- archlinux
- persona
- tools
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- persona-administrator

View File

@@ -1,7 +0,0 @@
- name: install administrator network analyze tools
community.general.pacman:
name:
- traceroute
- wireshark-qt
- wireshark-cli
state: present

View File

@@ -1,29 +0,0 @@
# Persona: Administrator 🛠️
## Description
This Ansible role installs a collection of essential tools for Linux system administrators on Arch Linux. It provides a base environment for package management, building software, archiving, duplication detection, and more.
Learn more about Linux system administration from the [Arch Wiki](https://wiki.archlinux.org/title/System_administration), [The Linux Documentation Project](https://tldp.org/), and the [GNU Core Utilities](https://www.gnu.org/software/coreutils/).
## Overview
Targeted at Arch Linux, this role sets up utilities commonly used by system administrators, such as `yay` for AUR management, `fdupes` for duplicate detection, `7z` support, `cmake`, and the full `base-devel` toolchain.
## Purpose
This role aims to streamline the configuration of a reliable administrative environment. It's intended for technical users who manage Linux systems regularly and want a reproducible, maintainable toolset.
## Features
- **Installs Core Admin Tools:** Includes `base-devel`, `yay`, `cmake`, `fdupes`, and `p7zip`.
- **Extensible via Dependencies:** Includes additional development tools (`git`, `make`, `gcc`) as dependencies.
- **Persona Integration:** Part of the CyMaIS Persona system for user-centric workstation roles.
## 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

@@ -1,28 +0,0 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs essential tools for Linux system administrators on Linux."
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:
- system
- administration
- archlinux
- persona
- tools
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- desktop-git
- generic-make
- generic-gcc

View File

@@ -1,9 +0,0 @@
- name: install administration tools
community.general.pacman:
name:
- base-devel
- yay
- cmake
- fdupes
- p7zip
state: present

View File

@@ -1,29 +0,0 @@
# Persona: Corporate 🏢
## Description
This Ansible role sets up a corporate identity environment on Arch Linux. It provides a structured foundation for serving company assets, legal documents, and a portfolio website.
Learn more about Corporate Identity and Branding from resources like the [Corporate Identity Wiki](https://en.wikipedia.org/wiki/Corporate_identity).
## Overview
Targeted at Arch Linux systems, this role deploys essential components to represent a company's digital identity. It integrates web assets, legal pages, and a portfolio presentation using Docker and NGINX.
## Purpose
This role aims to automate and standardize the deployment of a company's public-facing content. It is intended for organizations that want to ensure consistent branding and provide legally required information in a structured way.
## Features
- **Serves Corporate Assets:** Provides static hosting for company assets and legal content.
- **Deploys Portfolio Website:** Integrates a Docker-based portfolio site for company presentation.
- **Persona Integration:** Part of the CyMaIS Persona system for user-centric workstation and server roles.
## 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

@@ -1,29 +0,0 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Deploys a corporate identity environment with web assets, legal pages, and a portfolio site on Linux."
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:
- web
- nginx
- corporate
- identity
- archlinux
- persona
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- web-service-legal
- web-service-assets
- web-app-portfolio

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,2 +0,0 @@
dependencies:
- generic-aur-helper

View File

@@ -1,13 +0,0 @@
- name: install designer tools
community.general.pacman:
name:
- gimp
- blender
state: present
- name: install drawio
kewlfft.aur.aur:
use: yay
name:
- drawio-desktop
become: false

View File

@@ -1,29 +0,0 @@
# Persona: Arduino Developer🔌
## Description
This Ansible role installs everything needed for Arduino development on Arch Linux. It includes the official Arduino IDE, documentation, and user group configurations to enable serial port access for uploading code to boards.
Learn more at the [Arduino Project Website](https://www.arduino.cc/), [Arch Wiki - Arduino](https://wiki.archlinux.org/title/Arduino), and on [Wikipedia](https://en.wikipedia.org/wiki/Arduino).
## Overview
Building upon the general developer persona, this role focuses on embedded and microcontroller development. It ensures that the system has the correct packages and permissions to work with Arduino boards via USB.
## Purpose
The role enables a ready-to-use Arduino development setup by installing necessary tools and configuring user permissions for serial access.
## Features
- **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.
## 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

@@ -1,27 +0,0 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs tools and permissions for Arduino development on Linux."
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:
- development
- arduino
- embedded
- microcontroller
- engineering
- persona
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- persona-developer

View File

@@ -1,11 +0,0 @@
- name: install arduino developer tools
community.general.pacman:
name:
- arduino
- arduino-docs
state: present
- name: Adding user {{users.client.username}} to relevant arduino usergroups
user: name={{users.client.username}}
groups=uucp lock
append=yes

View File

@@ -1,37 +0,0 @@
# Persona: Java Developer☕
## Description
This Ansible role sets up a complete environment for Java developers on Arch Linux. It ensures that the Java Development Kit (JDK) is installed and ready to use, building on a base developer environment to support software engineers, students, and professionals working with Java.
Learn more about [Java on Wikipedia](https://en.wikipedia.org/wiki/Java_(programming_language)), [OpenJDK](https://openjdk.org/), and [Java Development on the Arch Wiki](https://wiki.archlinux.org/title/Java).
## Overview
Part of the CyMaIS persona system, this role adds Java-specific tools and configurations on top of a general developer setup. It focuses on providing the foundation needed to develop, build, and run Java applications.
## Purpose
The role is ideal for users who regularly work with Java, whether for backend systems, Android development, or academic projects. It ensures that the necessary runtime and development tools are always present and correctly configured.
## 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.
- **Ready for IDEs & Build Tools:** Prepares the base for tools like Maven, Gradle, or IntelliJ IDEA.
## Customization
You can extend this role to include more Java tooling such as:
- Maven (`maven`)
- Gradle (`gradle`)
- IDEs (like IntelliJ or Eclipse)
Just add packages or tasks based on your workflow.
## 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

@@ -1,29 +0,0 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs tools and dependencies for Java development on Linux."
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:
- development
- java
- jdk
- software
- engineering
- archlinux
- persona
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- generic-java
- persona-developer

View File

@@ -1,39 +0,0 @@
# Persona: PHP Developer🐘
## Description
This Ansible role provides a minimal setup for PHP development on Arch Linux. It installs the PHP interpreter and establishes the foundation for web and backend development using PHP.
Explore more at the [PHP Official Site](https://www.php.net/), [Arch Wiki - PHP](https://wiki.archlinux.org/title/PHP), and [Wikipedia PHP](https://en.wikipedia.org/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.
## Purpose
To equip developer environments with PHP so that users can begin writing and running PHP scripts or building full-stack applications with common PHP frameworks like Laravel or Symfony.
## Features
- **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.
## Customization
This role can be extended with:
- PHP extensions (`php-gd`, `php-pgsql`, etc.)
- Composer (`composer`)
- Web servers like Apache or NGINX
- Frameworks like Laravel or Symfony
Let the role grow as your stack does.
## 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

@@ -1,28 +0,0 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs PHP and related development tools on Linux for PHP software engineering."
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:
- development
- php
- web
- software
- engineering
- archlinux
- persona
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- persona-developer

View File

@@ -1,5 +0,0 @@
- name: install php developer tools
community.general.pacman:
name:
- php
state: present

View File

@@ -1,36 +0,0 @@
# Persona: Developer Python 🐍
## Description
This Ansible role sets up a Python development environment on Arch Linux. It includes Python itself, the `pip` package manager, and builds on the general developer persona to support scripting, application development, data science, and more.
Learn more at the [Python Official Site](https://www.python.org/), the [Arch Wiki - Python](https://wiki.archlinux.org/title/Python), and [Wikipedia Python](https://en.wikipedia.org/wiki/Python_(programming_language)).
## Overview
This role provides the essential tooling for Python developers, enabling immediate use of `python` and `pip` from the command line. It supports both general-purpose scripting and advanced software engineering workflows.
## Purpose
To simplify and standardize the provisioning of Python-ready environments for developers, students, data scientists, and automation engineers.
## Features
- **Installs Python and Pip:** Ensures the interpreter and package manager are available.
- **Persona Integration:** Extends `persona-developer` with Python-specific tools.
- **Foundation for Further Stacks:** Ideal starting point for Flask, Django, scientific computing, and automation.
## Customization
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`)
## 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

@@ -1,29 +0,0 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs tools and environment for Python development on Linux."
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:
- development
- python
- software
- engineering
- archlinux
- persona
- pip
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- persona-developer
- generic-python-pip

View File

@@ -1,36 +0,0 @@
# Persona: Developer Shell 🐚
## Description
This Ansible role sets up a minimal yet effective environment for Bash and shell script development on Arch Linux. It includes tools like `shellcheck` that help developers write clean, maintainable, and error-free shell scripts.
Learn more about [ShellCheck](https://www.shellcheck.net/), [Bash](https://www.gnu.org/software/bash/), and general shell scripting via the [Arch Wiki - Bash](https://wiki.archlinux.org/title/Bash).
## 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.
## Purpose
The role ensures that the developer can safely and efficiently write shell scripts, catching bugs and stylistic issues early using static analysis.
## Features
- **Installs ShellCheck:** A linting tool for detecting issues in shell scripts.
- **Persona Integration:** Extends the general developer persona for Bash-centric workflows.
- **Lightweight & Fast:** Quick setup with room for future extensions.
## Customization
You can easily extend this role with:
- Additional linting or formatting tools
- Script documentation generators
- Shell environments like `zsh`, `fish`, or `nushell`
## 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

@@ -1,28 +0,0 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs tools for Bash scripting and shell development on Linux."
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:
- development
- shell
- bash
- scripting
- archlinux
- persona
- automation
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- persona-developer

View File

@@ -1,5 +0,0 @@
- name: install bash developer tools
community.general.pacman:
name:
- shellcheck
state: present

View File

@@ -1,29 +0,0 @@
# Persona: Developer 👨‍💻
## Description
This Ansible role provides a minimal development environment for software engineers on Arch Linux. It installs core tools and editors necessary to begin building, editing, and managing source code projects.
Learn more about development environments on [Visual Studio Code](https://code.visualstudio.com/), the [Arch Wiki - Development Tools](https://wiki.archlinux.org/title/Development_tools), and general [Software Engineering](https://en.wikipedia.org/wiki/Software_engineering) on Wikipedia.
## Overview
This role builds upon the system administration and package management roles to deliver a clean, editor-ready base for developers. It ensures that essential developer tooling is ready to go.
## Purpose
To reduce setup time and ensure consistency across developer workstations, this role prepares a functional and extensible foundation for software engineering work.
## Features
- **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.
## 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

@@ -1,28 +0,0 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs a base development environment for software engineers on Linux."
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:
- development
- software
- engineering
- archlinux
- persona
- tools
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- persona-administrator
- pkgmgr

View File

@@ -1,5 +0,0 @@
- name: install base developer tools
community.general.pacman:
name:
- code
state: present

View File

@@ -1,38 +0,0 @@
# 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.
## Role Tasks
The `main.yml` file within the `persona-employee` 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:
- `chromium`: A free and open-source web browser.
- `thunderbird`: A free and open-source email client, news client, RSS, and chat client.
- `calibre`: An e-book management software.
- `retext`: A simple but powerful editor for Markdown and reStructuredText.
## Dependencies
This role depends on:
- **desktop-libreoffice**: Ensures that the LibreOffice suite, a comprehensive office package, is installed.
- **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.
## Prerequisites
- **Ansible**: Must be installed to use this role.
- **Arch Linux-based System**: As the role uses the `pacman` package manager, it's intended for systems based on Arch Linux or similar distributions.
## Running the Role
To utilize this role:
1. Clone the `cymais` repository.
2. Navigate to the `roles/persona-employee` directory.
3. Run 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, depending on your specific office and productivity needs.
## Support and Contributions
For support, feedback, or contributions, such as adding more office tools or enhancing the current setup, please open an issue or submit a pull request in the `cymais` repository. Contributions that improve the office and productivity environment are highly welcomed.

View File

@@ -1,3 +0,0 @@
dependencies:
- desktop-libreoffice
- desktop-browser

View File

@@ -1,7 +0,0 @@
- name: install office sofware
community.general.pacman:
name:
- thunderbird
- calibre
- retext
state: present

View File

@@ -1,38 +0,0 @@
# Gamer Core 🧩
## Description
This Ansible role installs core gaming utilities and performance tools on Arch Linux systems. It includes essential software like [Steam](https://store.steampowered.com/), [Lutris](https://lutris.net/), [Wine](https://www.winehq.org/), [GameMode](https://github.com/FeralInteractive/gamemode), and [MangoHUD](https://github.com/flightlessmango/MangoHud).
## 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.
## Purpose
To automate the installation of foundational gaming tools and system enhancements, ensuring consistent and fast configuration across setups.
## Features
- **Steam & Lutris:** Popular game launchers for Linux and Windows titles.
- **Wine Runtime:** Provides compatibility for Windows-based games.
- **GameMode & MangoHUD:** Performance tuning and live system metrics.
- **Multilib & 32-bit Support:** Required for compatibility layers.
## Included Tools
| Tool | Description |
|-------------|-------------|
| [Steam](https://store.steampowered.com/) | Native Linux and Proton-powered game launcher |
| [Lutris](https://lutris.net/) | Unified gaming platform for native and emulated games |
| [Wine](https://www.winehq.org/) | Compatibility layer for Windows games |
| [GameMode](https://github.com/FeralInteractive/gamemode) | Performance daemon by Feral Interactive |
| [MangoHUD](https://github.com/flightlessmango/MangoHud) | Vulkan/OpenGL performance overlay |
## 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

@@ -1,28 +0,0 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs essential gaming utilities, launchers, and runtimes on Linux."
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:
- gaming
- steam
- lutris
- wine
- gamemode
- mangohud
- archlinux
- performance
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies: []

View File

@@ -1,14 +0,0 @@
- name: Install core gaming tools from pacman
pacman:
name:
- steam
- lutris
- gamemode
- mangohud
- lib32-mangohud
- wine
- wine-gecko
- wine-mono
- winetricks
state: present
update_cache: yes

View File

@@ -1,36 +0,0 @@
# Gamer Default 🎮
## Description
This Ansible role installs a curated collection of open source and community-friendly games on Arch Linux systems. It is ideal for setting up a fun and accessible default gaming environment.
## Overview
Focused on simplicity and fun, this role brings a mix of strategy, racing, action, and retro-inspired games to your system. All games are sourced from official Arch repositories and require no proprietary services.
## Purpose
The purpose of this role is to quickly populate a gaming system with high-quality open source titles. This is great for shared systems, offline setups, or just discovering classic FOSS games.
## Features
- **Installs Fun Games:** From real-time strategy to racing and chess.
- **No DRM or Accounts Needed:** All games work offline.
- **Fast Setup:** Uses the official Arch repositories via `pacman`.
## Included Games
- 🏛 [**0 A.D.**](https://play0ad.com) Open-source RTS in the spirit of Age of Empires
- 🛰 [**Warzone 2100**](https://wz2100.net) Real-time strategy with tech trees and post-apocalyptic theme
- 🏁 [**SuperTuxKart**](https://supertuxkart.net) Cartoon kart racer with power-ups and multiplayer
- ♟ [**GNU Chess**](https://www.gnu.org/software/chess/) Classic chess engine with CLI or GUI support
- 🔫 [**Sauerbraten**](https://sauerbraten.org) Fast-paced old-school FPS with LAN and map editor
- 🍄 [**Mari0**](https://stabyourself.net/mari0/) Mashup of Super Mario Bros and Portal mechanics
## 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

@@ -1,25 +0,0 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs a curated set of open source games for Arch Linux."
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:
- gaming
- open-source
- games
- archlinux
- fun
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies: []

View File

@@ -1,5 +0,0 @@
- name: Install Default Gaming Software
community.general.pacman:
name: "{{ gamer_default_games }}"
state: present
update_cache: yes

View File

@@ -1,7 +0,0 @@
gamer_default_games:
- 0ad
- warzone2100
- supertuxkart
- gnuchess
- sauerbraten
- mari0

View File

@@ -1,34 +0,0 @@
# RetroArch 🎮
## Description
This Ansible role installs and configures [RetroArch](https://www.retroarch.com/) on Arch Linux systems. It provides all necessary packages, assets, and dependencies for a clean retro gaming experience.
## Overview
Designed for retro gaming enthusiasts, this role sets up RetroArch along with its core assets and themes. It ensures all UI styles ([XMB](https://en.wikipedia.org/wiki/XrossMediaBar), [Ozone](https://docs.libretro.com/guides/ozone-menu/)) are ready and provides a consistent emulator frontend interface powered by the [Libretro](https://www.libretro.com/) framework.
## Purpose
The purpose of this role is to automate the deployment of a full-featured RetroArch environment, reducing manual setup and improving reproducibility across gaming setups.
## Features
- **Installs RetroArch:** Including the main [RetroArch package](https://archlinux.org/packages/community/x86_64/retroarch/) and theme assets.
- **UI Assets Support:** Both [XMB](https://docs.libretro.com/guides/xmb-menu/) and [Ozone](https://docs.libretro.com/guides/ozone-menu/) menu styles supported out of the box.
## Further Reading
- 🕹️ [RetroArch - Official Site](https://www.retroarch.com/)
- 🧩 [Libretro - Modular Emulator Framework](https://www.libretro.com/)
- 📚 [RetroArch on ArchWiki](https://wiki.archlinux.org/title/RetroArch)
- 🧠 [RetroArch - Wikipedia](https://en.wikipedia.org/wiki/RetroArch)
- 🎨 [UI Menus: XMB, Ozone, GLUI, RGUI](https://docs.libretro.com/guides/)
## 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

@@ -1,25 +0,0 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs and configures RetroArch."
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:
- retroarch
- emulator
- gaming
- archlinux
- assets
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies: []

View File

@@ -1,5 +0,0 @@
- name: Install RetroArch and assets
pacman:
name: "{{ retroarch_packages }}"
state: present
update_cache: yes

View File

@@ -1,4 +0,0 @@
retroarch_packages:
- retroarch
- retroarch-assets-xmb
- retroarch-assets-ozone

View File

@@ -1,37 +0,0 @@
# Gamer 🎮
## Description
This Ansible meta-role prepares an Arch Linux system for a complete and optimized gaming experience. It delegates the setup to modular sub-roles that install open-source games, retro emulators, and core performance tools like [Steam](https://store.steampowered.com/), [Wine](https://www.winehq.org/), [Lutris](https://lutris.net/), [GameMode](https://github.com/FeralInteractive/gamemode), and [RetroArch](https://www.retroarch.com/).
## Overview
This role combines several specialized gaming roles into one streamlined setup. It ensures your system is ready for modern, retro, and open-source gaming, with zero manual configuration.
## Purpose
To provide a modular and reproducible way to deploy a full-featured Linux gaming system, suited for both native and Windows-based titles, retro consoles, and FOSS games.
## Features
-**Modular Roles:** Handles separate responsibilities through sub-roles
- 🕹️ **Retro Support:** Emulators and themes via [RetroArch](https://www.retroarch.com/)
- 🧩 **Core Stack:** Performance tools and runtimes (e.g. [GameMode](https://github.com/FeralInteractive/gamemode), [MangoHUD](https://github.com/flightlessmango/MangoHud))
- 🎲 **Open Source Games:** Installed directly from official Arch repos
- ⚙️ **System Integration:** Sets `gaming_ready` fact for other CyMaIS roles
## Sub-Roles
| 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 |
## 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

@@ -1,31 +0,0 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Gaming setup role for Arch Linux systems."
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:
- gaming
- steam
- lutris
- gamemode
- archlinux
- performance
- wine
- graphics
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- persona-gamer-retro
- persona-gamer-default
- persona-gamer-core

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.

View File

@@ -1,5 +0,0 @@
- name: install streaming
community.general.pacman:
name:
- obs-studio
state: present