mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-07-17 22:14:25 +02:00
Deleted personas and replaced by utils
This commit is contained in:
parent
ed0cd9b8c0
commit
e4ff99e336
@ -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 📝
|
||||
|
@ -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
|
@ -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 📝
|
||||
|
@ -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
|
@ -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
|
@ -26,4 +26,4 @@ galaxy_info:
|
||||
documentation: https://s.veen.world/cymais
|
||||
dependencies:
|
||||
- generic-java
|
||||
- persona-developer
|
||||
- utils-desktop-dev-core
|
@ -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
|
||||
|
@ -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
|
@ -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 📝
|
||||
|
@ -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
|
@ -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
|
||||
|
@ -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
|
@ -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 📝
|
||||
|
@ -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
|
@ -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
|
||||
|
@ -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
|
@ -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
|
||||
|
@ -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
|
@ -1,4 +1,4 @@
|
||||
# Persona: Corporate 🏢
|
||||
# Corporate
|
||||
|
||||
## Description
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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)
|
@ -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.
|
||||
|
||||
```
|
@ -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.
|
@ -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.
|
Loading…
x
Reference in New Issue
Block a user