diff --git a/inventories/TODO.md b/inventories/TODO.md new file mode 100644 index 00000000..5ce827fb --- /dev/null +++ b/inventories/TODO.md @@ -0,0 +1,105 @@ +# 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/ +├── / +│ ├── 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/` 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/` 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. + +``` \ No newline at end of file diff --git a/roles/TODO.md b/roles/TODO.md new file mode 100644 index 00000000..998dc933 --- /dev/null +++ b/roles/TODO.md @@ -0,0 +1,41 @@ +# Todo + +Implement the following naming conventions. + +# Naming Conventions + +## Prefix Structure + +All roles follow a consistent naming convention using a *primary prefix* and a *secondary prefix*. + +### Format + +``` +-- +``` + +### Primary Prefix + +| Prefix | Purpose / Description | +|---------|-----------------------| +| srv- | Roles that install or configure applications running on servers (services, daemons, infrastructure components) | +| pc- | Roles that install or configure applications running on personal computers or workstations (GUI apps, desktop tools) | +| pkg- | Roles responsible for installing general-purpose software packages or development tools | +| prs- | Roles that define personas — collections of roles describing a user-centric environment or system profile | +| drv- | Roles that install or configure hardware drivers (GPU, printer, kernel modules) | + +--- + +### Secondary Prefix + +| Prefix | Purpose / Description | +|----------|-----------------------| +| backup- | Roles responsible for backup tasks (data backup, snapshots, remote sync) | +| cleanup- | Roles that clean up the system (temporary files, unused volumes, old backups) | +| docker- | Roles that manage server applications running in a Dockerized environment (services, infrastructure containers) | +| driver- | Roles that manage hardware drivers (kernel modules, printers, GPU, peripherals) | +| health- | Roles for health checks, system monitoring, and metric collection (disk space, containers, service status) | +| heal- | Roles responsible for auto-repair or healing of system states (service recovery, resource fixes) | +| system- | Roles for system configuration, hardening, and operating system tuning (security, storage optimization, timers) | +| update- | Roles managing software update processes (package updates, Docker updates, repository management) | +| user- | Roles managing system users, accounts, and user-specific configuration (home directories, permissions) | \ No newline at end of file diff --git a/roles/backup-docker-to-local/README.md b/roles/backup-docker-to-local/README.md index 6481b9ff..a21883cc 100644 --- a/roles/backup-docker-to-local/README.md +++ b/roles/backup-docker-to-local/README.md @@ -10,7 +10,7 @@ Optimized for Archlinux, this role ensures that Docker volume backups are perfor - [backup-directory-validator](../backup-directory-validator/) – Validates backup directories. - [cleanup-failed-docker-backups](../cleanup-failed-docker-backups/) – Cleans up unsuccessful backup attempts. - [systemd-timer](../systemd-timer/) – Schedules recurring backup tasks. -- [backups-provider](../backups-provider/) – Manages backup sources. +- [backup-provider](../backup-provider/) – Manages backup sources. - [system-maintenance-lock](../system-maintenance-lock/) – Ensures coordinated maintenance operations. ## Purpose diff --git a/roles/backup-docker-to-local/meta/main.yml b/roles/backup-docker-to-local/meta/main.yml index b0bebf8d..d438859c 100644 --- a/roles/backup-docker-to-local/meta/main.yml +++ b/roles/backup-docker-to-local/meta/main.yml @@ -23,7 +23,7 @@ galaxy_info: issue_tracker_url: "https://s.veen.world/cymaisissues" documentation: "https://s.veen.world/cymais" dependencies: - - backups-provider + - backup-provider - systemd-notifier - cleanup-failed-docker-backups - system-maintenance-lock diff --git a/roles/backups-provider-user/README.md b/roles/backup-provider-user/README.md similarity index 98% rename from roles/backups-provider-user/README.md rename to roles/backup-provider-user/README.md index df16fabe..0c563478 100644 --- a/roles/backups-provider-user/README.md +++ b/roles/backup-provider-user/README.md @@ -1,4 +1,4 @@ -# Backups Provider User +# User for Backup Provider ## Description diff --git a/roles/backups-provider-user/files/backup b/roles/backup-provider-user/files/backup similarity index 100% rename from roles/backups-provider-user/files/backup rename to roles/backup-provider-user/files/backup diff --git a/roles/backups-provider-user/files/ssh-wrapper.sh b/roles/backup-provider-user/files/ssh-wrapper.sh similarity index 100% rename from roles/backups-provider-user/files/ssh-wrapper.sh rename to roles/backup-provider-user/files/ssh-wrapper.sh diff --git a/roles/backups-provider-user/meta/main.yml b/roles/backup-provider-user/meta/main.yml similarity index 100% rename from roles/backups-provider-user/meta/main.yml rename to roles/backup-provider-user/meta/main.yml diff --git a/roles/backups-provider-user/tasks/main.yml b/roles/backup-provider-user/tasks/main.yml similarity index 100% rename from roles/backups-provider-user/tasks/main.yml rename to roles/backup-provider-user/tasks/main.yml diff --git a/roles/backups-provider-user/templates/authorized_keys.j2 b/roles/backup-provider-user/templates/authorized_keys.j2 similarity index 100% rename from roles/backups-provider-user/templates/authorized_keys.j2 rename to roles/backup-provider-user/templates/authorized_keys.j2 diff --git a/roles/backups-provider-user/vars/main.yml b/roles/backup-provider-user/vars/main.yml similarity index 100% rename from roles/backups-provider-user/vars/main.yml rename to roles/backup-provider-user/vars/main.yml diff --git a/roles/backups-provider/README.md b/roles/backup-provider/README.md similarity index 89% rename from roles/backups-provider/README.md rename to roles/backup-provider/README.md index ac16a480..50fd3b8f 100644 --- a/roles/backups-provider/README.md +++ b/roles/backup-provider/README.md @@ -1,4 +1,4 @@ -# Backups Provider +# Backup Provider ## Description @@ -8,7 +8,7 @@ This role sets up and manages the host as a backup provider. It establishes the Optimized for automated backup processes, this role: - Configures the host to provide backup services. -- Integrates seamlessly with the [backups-provider-user](../backups-provider-user/README.md) and [cleanup-backups-timer](../cleanup-backups-timer/README.md) roles. +- Integrates seamlessly with the [backup-provider-user](../backup-provider-user/README.md) and [cleanup-backups-timer](../cleanup-backups-timer/README.md) roles. - Lays the foundation for secure and extensible backup operations. ## Purpose diff --git a/roles/backups-provider/meta/main.yml b/roles/backup-provider/meta/main.yml similarity index 96% rename from roles/backups-provider/meta/main.yml rename to roles/backup-provider/meta/main.yml index 28d56040..be969fd1 100644 --- a/roles/backups-provider/meta/main.yml +++ b/roles/backup-provider/meta/main.yml @@ -23,5 +23,5 @@ galaxy_info: issue_tracker_url: "https://s.veen.world/cymaisissues" documentation: "https://s.veen.world/cymais" dependencies: - - backups-provider-user + - backup-provider-user - cleanup-backups-timer diff --git a/roles/backup-remote-to-local/README.md b/roles/backup-remote-to-local/README.md index 47bfe23f..2bc40045 100644 --- a/roles/backup-remote-to-local/README.md +++ b/roles/backup-remote-to-local/README.md @@ -17,7 +17,7 @@ Backup Remote to Local is a robust solution for retrieving backup data from remo - **Remote Backup Retrieval:** Pulls backups from a remote server using secure SSH connections. - **Incremental Backup with rsync:** Uses rsync with options for archive, backup, and hard linking to efficiently manage changes. - **Retry Logic:** Implements a retry mechanism to handle transient network issues or remote errors. -- **Integration with Other Roles:** Works alongside roles like backup-directory-validator, cleanup-failed-docker-backups, systemd-timer, backups-provider, and system-maintenance-lock. +- **Integration with Other Roles:** Works alongside roles like backup-directory-validator, cleanup-failed-docker-backups, systemd-timer, backup-provider, and system-maintenance-lock. - **Administrative Debugging:** Detailed debug instructions and administrative tasks are provided in a separate file. ## Other Resources diff --git a/roles/pc-bluray-player-tools/README.md b/roles/client-bluray-player/README.md similarity index 84% rename from roles/pc-bluray-player-tools/README.md rename to roles/client-bluray-player/README.md index 3abff310..029954dc 100644 --- a/roles/pc-bluray-player-tools/README.md +++ b/roles/client-bluray-player/README.md @@ -1,7 +1,7 @@ # PC-Bluray-Player-Tools Role ## Overview -Welcome to the `pc-bluray-player-tools` role, a part of the `cymais` repository. This role is dedicated to setting up software required for Blu-ray playback on personal computers. It focuses on installing necessary packages to enable the use of Blu-ray media with VLC player and other compatible software. +Welcome to the `client-bluray-player` role, a part of the `cymais` repository. This role is dedicated to setting up software required for Blu-ray playback on personal computers. It focuses on installing necessary packages to enable the use of Blu-ray media with VLC player and other compatible software. ## Role Contents The `main.yml` file in this role consists of tasks that automate the installation of the following packages: @@ -29,7 +29,7 @@ This role depends on the `java` role, which ensures the Java runtime is availabl ## Running the Role To utilize this role: 1. Clone the `cymais` repository. -2. Navigate to the `roles/pc-bluray-player-tools` directory. +2. Navigate to the `roles/client-bluray-player` directory. 3. Execute the role using Ansible, with appropriate permissions for installing packages. ## Customization diff --git a/roles/pc-bluray-player-tools/meta/main.yml b/roles/client-bluray-player/meta/main.yml similarity index 100% rename from roles/pc-bluray-player-tools/meta/main.yml rename to roles/client-bluray-player/meta/main.yml diff --git a/roles/pc-bluray-player-tools/tasks/main.yml b/roles/client-bluray-player/tasks/main.yml similarity index 100% rename from roles/pc-bluray-player-tools/tasks/main.yml rename to roles/client-bluray-player/tasks/main.yml diff --git a/roles/pc-docker/README.md b/roles/client-docker/README.md similarity index 79% rename from roles/pc-docker/README.md rename to roles/client-docker/README.md index 0212f6fd..3023cba7 100644 --- a/roles/pc-docker/README.md +++ b/roles/client-docker/README.md @@ -1,10 +1,10 @@ # README for PC-Docker Playbook ## Overview -This playbook, `pc-docker`, is part of a larger collection housed within the `cymais` repository. It is specifically tailored for setting up Docker and Docker Compose on personal computers (PCs) used for development purposes. The primary goal is to facilitate a development environment on individual workstations rather than configuring servers for hosting or distributing Docker images. +This playbook, `client-docker`, is part of a larger collection housed within the `cymais` repository. It is specifically tailored for setting up Docker and Docker Compose on personal computers (PCs) used for development purposes. The primary goal is to facilitate a development environment on individual workstations rather than configuring servers for hosting or distributing Docker images. ## Contents -The `main.yml` file in the `pc-docker` role consists of two primary tasks: +The `main.yml` file in the `client-docker` role consists of two primary tasks: 1. **Install Docker**: This task uses the `community.general.pacman` module to install `docker` and `docker-compose` on the system. It ensures that these packages are present on the PC. @@ -20,7 +20,7 @@ The playbook is designed for developers who require Docker in their local develo ## Running the Playbook To run this playbook: 1. Clone the `cymais` repository. -2. Navigate to the `roles/pc-docker` directory. +2. Navigate to the `roles/client-docker` directory. 3. Run the playbook using the appropriate Ansible commands, ensuring that you have the necessary privileges. ## Important Notes diff --git a/roles/pc-docker/tasks/main.yml b/roles/client-docker/tasks/main.yml similarity index 100% rename from roles/pc-docker/tasks/main.yml rename to roles/client-docker/tasks/main.yml diff --git a/roles/pc-gnucash/README.md b/roles/client-gnucash/README.md similarity index 86% rename from roles/pc-gnucash/README.md rename to roles/client-gnucash/README.md index 01c338aa..296065f3 100644 --- a/roles/pc-gnucash/README.md +++ b/roles/client-gnucash/README.md @@ -3,8 +3,8 @@ ## Overview This Ansible role is responsible for installing GnuCash, a free and open-source financial management software, on systems utilizing the Pacman package manager. It's particularly useful for setting up GnuCash in a Linux environment with minimal manual intervention. -## Role: pc-gnucash -The `pc-gnucash` role ensures that GnuCash is installed and maintained at its latest available version in the Pacman repositories. +## Role: client-gnucash +The `client-gnucash` role ensures that GnuCash is installed and maintained at its latest available version in the Pacman repositories. ## Requirements - Target systems should be running a Linux distribution that uses the Pacman package manager. @@ -25,7 +25,7 @@ An example of how to use this role in your playbook: ```yaml - hosts: your_target_group roles: - - pc-gnucash + - client-gnucash ``` ## Author Information diff --git a/roles/pc-gnucash/tasks/main.yml b/roles/client-gnucash/tasks/main.yml similarity index 100% rename from roles/pc-gnucash/tasks/main.yml rename to roles/client-gnucash/tasks/main.yml diff --git a/roles/pc-jrnl/README.md b/roles/client-jrnl/README.md similarity index 98% rename from roles/pc-jrnl/README.md rename to roles/client-jrnl/README.md index 46270527..21ba769f 100644 --- a/roles/pc-jrnl/README.md +++ b/roles/client-jrnl/README.md @@ -19,7 +19,7 @@ Including this role in your playbook is straightforward. Simply add the role to ```yaml - hosts: all roles: - - pc-jrnl + - client-jrnl ``` ## Additional Information diff --git a/roles/pc-jrnl/tasks/main.yml b/roles/client-jrnl/tasks/main.yml similarity index 100% rename from roles/pc-jrnl/tasks/main.yml rename to roles/client-jrnl/tasks/main.yml diff --git a/roles/pc-security-tools/tasks/main.yml b/roles/client-keepassxc/tasks/main.yml similarity index 74% rename from roles/pc-security-tools/tasks/main.yml rename to roles/client-keepassxc/tasks/main.yml index c1db09fa..637ca5f7 100644 --- a/roles/pc-security-tools/tasks/main.yml +++ b/roles/client-keepassxc/tasks/main.yml @@ -1,7 +1,5 @@ - name: install security tools community.general.pacman: name: - - ecryptfs-utils - - encfs - keepassxc state: present diff --git a/roles/pc-libreoffice/README.md b/roles/client-libreoffice/README.md similarity index 100% rename from roles/pc-libreoffice/README.md rename to roles/client-libreoffice/README.md diff --git a/roles/pc-libreoffice/meta/main.yml b/roles/client-libreoffice/meta/main.yml similarity index 100% rename from roles/pc-libreoffice/meta/main.yml rename to roles/client-libreoffice/meta/main.yml diff --git a/roles/pc-libreoffice/tasks/main.yml b/roles/client-libreoffice/tasks/main.yml similarity index 100% rename from roles/pc-libreoffice/tasks/main.yml rename to roles/client-libreoffice/tasks/main.yml diff --git a/roles/pc-qbittorrent/README.md b/roles/client-qbittorrent/README.md similarity index 69% rename from roles/pc-qbittorrent/README.md rename to roles/client-qbittorrent/README.md index 56f8c0de..916a0a8a 100644 --- a/roles/pc-qbittorrent/README.md +++ b/roles/client-qbittorrent/README.md @@ -1,10 +1,10 @@ # PC-QBittorrent Role ## Overview -This README is for the `pc-qbittorrent` role within the `cymais` repository. This role is specifically crafted for installing qBittorrent, a popular open-source torrent client, on personal computers. +This README is for the `client-qbittorrent` role within the `cymais` repository. This role is specifically crafted for installing qBittorrent, a popular open-source torrent client, on personal computers. ## Role Tasks -The `main.yml` file in the `pc-qbittorrent` role includes the following task: +The `main.yml` file in the `client-qbittorrent` role includes the following task: 1. **Install Torrent Software**: - This task uses the `kewlfft.aur.aur` module with `yay` as the AUR helper to install `qbittorrent`, a widely-used, free, and easy-to-use torrent client. @@ -14,7 +14,7 @@ This role depends on: - **system-aur-helper**: Ensures that an Arch User Repository (AUR) helper is installed, which is necessary for installing packages like `qbittorrent` that are not available in the standard repositories. ## Purpose and Usage -The `pc-qbittorrent` role is tailored for users who require a reliable and user-friendly torrent client for downloading and sharing files via the BitTorrent protocol. qBittorrent is known for its balance of features, simplicity, and minimal impact on system resources. +The `client-qbittorrent` role is tailored for users who require a reliable and user-friendly torrent client for downloading and sharing files via the BitTorrent protocol. qBittorrent is known for its balance of features, simplicity, and minimal impact on system resources. ## Prerequisites - **Ansible**: Required for running this role. @@ -23,7 +23,7 @@ The `pc-qbittorrent` role is tailored for users who require a reliable and user- ## Running the Role To utilize this role: 1. Clone the `cymais` repository. -2. Navigate to the `roles/pc-qbittorrent` directory. +2. Navigate to the `roles/client-qbittorrent` directory. 3. Execute the role using Ansible, ensuring you have the required system permissions for package installation. ## Customization diff --git a/roles/pc-designer-tools/meta/main.yml b/roles/client-qbittorrent/meta/main.yml similarity index 100% rename from roles/pc-designer-tools/meta/main.yml rename to roles/client-qbittorrent/meta/main.yml diff --git a/roles/pc-qbittorrent/tasks/main.yml b/roles/client-qbittorrent/tasks/main.yml similarity index 100% rename from roles/pc-qbittorrent/tasks/main.yml rename to roles/client-qbittorrent/tasks/main.yml diff --git a/roles/pc-torbrowser/README.md b/roles/client-torbrowser/README.md similarity index 66% rename from roles/pc-torbrowser/README.md rename to roles/client-torbrowser/README.md index 43dcc134..e27d0457 100644 --- a/roles/pc-torbrowser/README.md +++ b/roles/client-torbrowser/README.md @@ -1,10 +1,10 @@ # PC-TorBrowser Role ## Overview -This README document is for the `pc-torbrowser` role, a crucial component of the `cymais` repository. This role is specifically designed for the installation and setup of Tor Browser on personal computers. +This README document is for the `client-torbrowser` role, a crucial component of the `cymais` repository. This role is specifically designed for the installation and setup of Tor Browser on personal computers. ## Role Tasks -The `main.yml` file under the `pc-torbrowser` role encompasses tasks for installing the Tor Browser: +The `main.yml` file under the `client-torbrowser` role encompasses tasks for installing the Tor Browser: 1. **Install TorBrowser**: - Utilizes the `community.general.pacman` module to install: @@ -12,7 +12,7 @@ The `main.yml` file under the `pc-torbrowser` role encompasses tasks for install - `torbrowser-launcher`: A package for securely and easily launching the Tor Browser. ## Purpose and Usage -The `pc-torbrowser` role is tailored for users who value privacy and anonymity online. The Tor Browser is a specialized web browser that provides enhanced privacy features, making it an essential tool for secure browsing and accessing the deep web. +The `client-torbrowser` role is tailored for users who value privacy and anonymity online. The Tor Browser is a specialized web browser that provides enhanced privacy features, making it an essential tool for secure browsing and accessing the deep web. ## Prerequisites - **Ansible**: Must be installed on your system to run this role. @@ -21,7 +21,7 @@ The `pc-torbrowser` role is tailored for users who value privacy and anonymity o ## Running the Role To use this role: 1. Clone the `cymais` repository. -2. Navigate to the `roles/pc-torbrowser` directory. +2. Navigate to the `roles/client-torbrowser` directory. 3. Run the role using Ansible, ensuring you have the necessary permissions for software installation. ## Customization diff --git a/roles/pc-torbrowser/tasks/main.yml b/roles/client-torbrowser/tasks/main.yml similarity index 100% rename from roles/pc-torbrowser/tasks/main.yml rename to roles/client-torbrowser/tasks/main.yml diff --git a/roles/pc-virtual-box/README.md b/roles/client-virtual-box/README.md similarity index 100% rename from roles/pc-virtual-box/README.md rename to roles/client-virtual-box/README.md diff --git a/roles/pc-zoom/README.md b/roles/client-zoom/README.md similarity index 70% rename from roles/pc-zoom/README.md rename to roles/client-zoom/README.md index b1260410..6473122b 100644 --- a/roles/pc-zoom/README.md +++ b/roles/client-zoom/README.md @@ -1,10 +1,10 @@ # PC-Video-Conference Role ## Overview -Welcome to the `pc-zoom` role documentation, a part of the `cymais` repository. This role is focused on installing video conferencing software on Linux systems, specifically tailored for personal use and remote work requirements. +Welcome to the `client-zoom` role documentation, a part of the `cymais` repository. This role is focused on installing video conferencing software on Linux systems, specifically tailored for personal use and remote work requirements. ## Role Tasks -The `main.yml` file in the `pc-zoom` role includes tasks for setting up video conferencing tools: +The `main.yml` file in the `client-zoom` role includes tasks for setting up video conferencing tools: 1. **Install Video Conference Software**: - Utilizes the `kewlfft.aur.aur` module with `yay` as the helper to install `zoom`, a popular video conferencing application. @@ -17,7 +17,7 @@ This role relies on: - **system-aur-helper**: Ensures that an Arch User Repository (AUR) helper is installed, necessary for installing software like Zoom which may not be available in standard repositories. ## Purpose and Usage -The `pc-zoom` role is particularly useful for professionals, educators, and anyone who needs reliable video conferencing capabilities on their Linux system. With the increasing demand for remote communication, this role provides an efficient way to set up key video conferencing tools. +The `client-zoom` role is particularly useful for professionals, educators, and anyone who needs reliable video conferencing capabilities on their Linux system. With the increasing demand for remote communication, this role provides an efficient way to set up key video conferencing tools. ## Prerequisites - **Ansible**: Required to run this role. @@ -26,7 +26,7 @@ The `pc-zoom` role is particularly useful for professionals, educators, and anyo ## Running the Role To utilize this role: 1. Clone the `cymais` repository. -2. Navigate to the `roles/pc-zoom` directory. +2. Navigate to the `roles/client-zoom` directory. 3. Run the role using Ansible, ensuring you have appropriate system permissions for software installation. ## Customization diff --git a/roles/pc-qbittorrent/meta/main.yml b/roles/client-zoom/meta/main.yml similarity index 100% rename from roles/pc-qbittorrent/meta/main.yml rename to roles/client-zoom/meta/main.yml diff --git a/roles/pc-zoom/tasks/main.yml b/roles/client-zoom/tasks/main.yml similarity index 100% rename from roles/pc-zoom/tasks/main.yml rename to roles/client-zoom/tasks/main.yml diff --git a/roles/corporate-identity/README.md b/roles/corporate-identity/README.md deleted file mode 100644 index 07945a35..00000000 --- a/roles/corporate-identity/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# Corporate Identity -Loads the roles to setup a corporate identity \ No newline at end of file diff --git a/roles/corporate-identity/meta/main.yml b/roles/corporate-identity/meta/main.yml deleted file mode 100644 index c2443b05..00000000 --- a/roles/corporate-identity/meta/main.yml +++ /dev/null @@ -1,4 +0,0 @@ -dependencies: -- nginx-serve-legal -- nginx-serve-assets -- docker-portfolio diff --git a/roles/docker/README.md b/roles/docker/README.md index 0f1ea334..c93738fb 100644 --- a/roles/docker/README.md +++ b/roles/docker/README.md @@ -1,4 +1,4 @@ -# Docker Role 🚀 +# Docker Server This role is part of the [CyMaIS Project](https://github.com/kevinveenbirkenbach/cymais), maintained and developed by [Kevin Veen-Birkenbach](https://www.veen.world/). diff --git a/roles/pc-latex/README.md b/roles/pc-latex/README.md deleted file mode 100644 index 4598d391..00000000 --- a/roles/pc-latex/README.md +++ /dev/null @@ -1,36 +0,0 @@ -# LaTeX Role - -## Overview -Welcome to the LaTeX role within the `cymais` repository. It focuses on setting up a comprehensive LaTeX environment on Arch Linux-based systems, catering to the needs of users who require an advanced document preparation system. - -## Role Contents -The `main.yml` file in this role automates the installation of key LaTeX packages: - -1. **Install LaTeX Software**: This task uses the `community.general.pacman` module to install a range of LaTeX packages, ensuring a robust setup for LaTeX users. The packages include: - - `texlive-pc-latexextra`: Offers additional LaTeX packages. - - `texlive-lang`: Provides language support. - - `texlive-langextra`: Includes extra language packs. - - `texlive-fontsextra`: Adds a comprehensive collection of fonts. - - `texlive-most`: Ensures a broad coverage of LaTeX components. - -## Purpose and Usage -The LaTeX role is designed to streamline the installation of LaTeX on personal computers, particularly for users engaged in producing academic, scientific, or technical documentation. It is an essential tool for anyone who requires a full-fledged LaTeX environment for their documentation needs. - -## Additional Information -For an extensive list of available LaTeX packages and customization options, you can refer to the [TeX Live on ArchWiki](https://wiki.archlinux.org/title/TeX_Live). - -## Prerequisites -- **Ansible**: You must have Ansible installed on your system to utilize this role. -- **Arch Linux-based Systems**: Since this role uses the `pacman` package manager, it is tailored for Arch Linux or similar distributions. - -## Running the Role -To execute this role: -1. Ensure the `cymais` repository is cloned to your system. -2. Navigate to the `roles/pc-latex` directory within the repository. -3. Run the role using the appropriate Ansible commands. - -## Customization -You can customize this role by adjusting the list of LaTeX packages in `main.yml` to meet your specific needs. - -## Support and Contributions -For support, feedback, or contributions, feel free to open an issue or a pull request in the `cymais` repository. Contributions that enhance or extend the role's capabilities are always welcome. \ No newline at end of file diff --git a/roles/pc-latex/tasks/main.yml b/roles/pc-latex/tasks/main.yml deleted file mode 100644 index 12e3c22b..00000000 --- a/roles/pc-latex/tasks/main.yml +++ /dev/null @@ -1,9 +0,0 @@ -- name: install latex software - community.general.pacman: - name: - - texlive-latexextra - - texlive-lang - - texlive-langextra - - texlive-fontsextra - - texlive - state: present \ No newline at end of file diff --git a/roles/pc-security-tools/README.md b/roles/pc-security-tools/README.md deleted file mode 100644 index 52d8df37..00000000 --- a/roles/pc-security-tools/README.md +++ /dev/null @@ -1,32 +0,0 @@ -# PC-Security-Tools Role - -## Overview -This README document is for the `pc-security-tools` role, a part of the `cymais` repository. This role is designed to equip personal computers with essential tools for enhancing data security and privacy. - -## Role Tasks -The `main.yml` file within the `pc-security-tools` role encompasses tasks for installing key security software: - -1. **Install Security Tools**: - - Utilizes the `community.general.pacman` module to install a range of security tools, including: - - `ecryptfs-utils`: Utilities for the enterprise cryptographic filesystem for Linux. - - `encfs`: An encrypted filesystem that runs in userspace. - - `keepassxc`: A free and open-source password manager that securely stores passwords and other sensitive data. - -## Purpose and Usage -The `pc-security-tools` role is crucial for users who prioritize data security and privacy. It provides tools for encrypting files and directories, ensuring that sensitive data is protected. KeePassXC is particularly useful for managing passwords securely, an essential aspect of personal cybersecurity. - -## Prerequisites -- **Ansible**: Must be installed on your system to run this role. -- **Arch Linux-based System**: Since the role uses the `pacman` package manager, it's best suited for Arch Linux or similar distributions. - -## Running the Role -To use this role: -1. Clone the `cymais` repository. -2. Navigate to the `roles/pc-security-tools` directory. -3. Run the role using Ansible, making sure you have the necessary permissions for software installation. - -## Customization -This role can be customized by adding or removing security-related software packages in the `main.yml` file, depending on your specific security needs or preferences. - -## Support and Contributions -For support, feedback, or contributions, such as adding more security tools or enhancing the existing setup, please open an issue or submit a pull request in the `cymais` repository. Contributions that improve the security tools setup and user experience are highly encouraged. \ No newline at end of file diff --git a/roles/persona-corporate/README.md b/roles/persona-corporate/README.md new file mode 100644 index 00000000..24c63d5f --- /dev/null +++ b/roles/persona-corporate/README.md @@ -0,0 +1,29 @@ +# 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) diff --git a/roles/persona-corporate/meta/main.yml b/roles/persona-corporate/meta/main.yml new file mode 100644 index 00000000..9d91324c --- /dev/null +++ b/roles/persona-corporate/meta/main.yml @@ -0,0 +1,29 @@ +--- +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: + - nginx-serve-legal + - nginx-serve-assets + - docker-portfolio \ No newline at end of file diff --git a/roles/pc-designer-tools/README.md b/roles/persona-designer/README.md similarity index 72% rename from roles/pc-designer-tools/README.md rename to roles/persona-designer/README.md index 8b2c7c4a..82a7e8bb 100644 --- a/roles/pc-designer-tools/README.md +++ b/roles/persona-designer/README.md @@ -1,10 +1,10 @@ # PC-Designer-Tools Role ## Overview -This README is associated with the `pc-designer-tools` 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. +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 `pc-designer-tools` role encompasses tasks for installing popular design software: +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. @@ -17,7 +17,7 @@ This role depends on: - **system-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 `pc-designer-tools` 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. +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. @@ -26,7 +26,7 @@ The `pc-designer-tools` role is intended for users who require a robust set of t ## Running the Role To use this role: 1. Clone the `cymais` repository. -2. Navigate to the `roles/pc-designer-tools` directory. +2. Navigate to the `roles/persona-designer` directory. 3. Execute the role using Ansible, ensuring you have the necessary permissions for software installation. ## Customization diff --git a/roles/pc-zoom/meta/main.yml b/roles/persona-designer/meta/main.yml similarity index 100% rename from roles/pc-zoom/meta/main.yml rename to roles/persona-designer/meta/main.yml diff --git a/roles/pc-designer-tools/tasks/main.yml b/roles/persona-designer/tasks/main.yml similarity index 100% rename from roles/pc-designer-tools/tasks/main.yml rename to roles/persona-designer/tasks/main.yml diff --git a/roles/pc-office/README.md b/roles/persona-employee/README.md similarity index 60% rename from roles/pc-office/README.md rename to roles/persona-employee/README.md index dbacc1af..ca5ef436 100644 --- a/roles/pc-office/README.md +++ b/roles/persona-employee/README.md @@ -1,10 +1,10 @@ # PC-Office Role ## Overview -This README document is for the `pc-office` 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 `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 `pc-office` role comprises tasks for installing a range of office software: +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: @@ -15,11 +15,11 @@ The `main.yml` file within the `pc-office` role comprises tasks for installing a ## Dependencies This role depends on: -- **pc-libreoffice**: Ensures that the LibreOffice suite, a comprehensive office package, is installed. -- **pc-zoom**: Provides tools necessary for video conferencing, supplementing the office setup. +- **client-libreoffice**: Ensures that the LibreOffice suite, a comprehensive office package, is installed. +- **client-zoom**: Provides tools necessary for video conferencing, supplementing the office setup. ## Purpose and Usage -The `pc-office` 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 `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. @@ -28,7 +28,7 @@ The `pc-office` role is ideal for users who require a full-fledged office setup ## Running the Role To utilize this role: 1. Clone the `cymais` repository. -2. Navigate to the `roles/pc-office` directory. +2. Navigate to the `roles/persona-employee` directory. 3. Run the role using Ansible, ensuring you have the necessary permissions for software installation. ## Customization diff --git a/roles/pc-office/meta/main.yml b/roles/persona-employee/meta/main.yml similarity index 58% rename from roles/pc-office/meta/main.yml rename to roles/persona-employee/meta/main.yml index efaa801c..aed4d90c 100644 --- a/roles/pc-office/meta/main.yml +++ b/roles/persona-employee/meta/main.yml @@ -1,3 +1,3 @@ dependencies: -- pc-libreoffice +- client-libreoffice - client-browser \ No newline at end of file diff --git a/roles/pc-office/tasks/main.yml b/roles/persona-employee/tasks/main.yml similarity index 100% rename from roles/pc-office/tasks/main.yml rename to roles/persona-employee/tasks/main.yml diff --git a/roles/pc-streaming-tools/README.md b/roles/persona-streamer/README.md similarity index 63% rename from roles/pc-streaming-tools/README.md rename to roles/persona-streamer/README.md index 557a3d72..e7743c86 100644 --- a/roles/pc-streaming-tools/README.md +++ b/roles/persona-streamer/README.md @@ -1,17 +1,17 @@ # PC-Streaming-Tools Role ## Overview -This README is associated with the `pc-streaming-tools` role, part of the `cymais` repository. This role is focused on setting up essential tools for live streaming and video recording on personal computers. +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 `pc-streaming-tools` role includes a task for installing a key streaming software: +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 `pc-streaming-tools` 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. +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. @@ -20,7 +20,7 @@ The `pc-streaming-tools` role is designed for content creators, gamers, educator ## Running the Role To use this role: 1. Clone the `cymais` repository. -2. Navigate to the `roles/pc-streaming-tools` directory. +2. Navigate to the `roles/persona-streamer` directory. 3. Run the role using Ansible, ensuring you have the necessary permissions for software installation. ## Customization diff --git a/roles/pc-streaming-tools/tasks/main.yml b/roles/persona-streamer/tasks/main.yml similarity index 100% rename from roles/pc-streaming-tools/tasks/main.yml rename to roles/persona-streamer/tasks/main.yml diff --git a/tasks/personal-computer.yml b/tasks/personal-computer.yml index 946ef2b0..7eab4db7 100644 --- a/tasks/personal-computer.yml +++ b/tasks/personal-computer.yml @@ -8,44 +8,39 @@ - persona-administrator - driver-non-free -- name: pc-office +- name: persona-employee when: ("collection_officetools" in group_names) include_role: name: "{{ item }}" loop: - - pc-office - - pc-jrnl + - persona-employee + - client-jrnl - name: personal computer for business when: ("business_personal_computer" in group_names) include_role: - name: pc-gnucash + name: client-gnucash -- name: pc-designer-tools +- name: persona-designer when: ("collection_designer" in group_names) include_role: - name: pc-designer-tools + name: persona-designer -- name: pc-qbittorrent +- name: client-qbittorrent when: ("collection_torrent" in group_names) include_role: - name: pc-qbittorrent + name: client-qbittorrent -- name: pc-streaming-tools +- name: persona-streamer when: ("collection_streamer" in group_names) include_role: - name: pc-streaming-tools + name: persona-streamer -- name: pc-bluray-player-tools +- name: client-bluray-player when: ("collection_bluray_player" in group_names) include_role: - name: pc-bluray-player-tools - -- name: pc-latex - when: ("latex" in group_names) - include_role: - name: pc-latex + name: client-bluray-player - name: GNOME setup when: ("gnome" in group_names) @@ -70,7 +65,7 @@ - name: setup torbrowser hosts when: ("torbrowser" in group_names) include_role: - name: pc-torbrowser + name: client-torbrowser - name: setup nextcloud-client when: ("nextcloud_client" in group_names) @@ -78,9 +73,9 @@ name: client-nextcloud - name: setup docker - when: ("docker" in group_names) + when: ("docker_client" in group_names) include_role: - name: pc-docker + name: client-docker # driver - name: setup msi rgb keyboard diff --git a/tasks/server.yml b/tasks/server.yml index b697da79..836fad72 100644 --- a/tasks/server.yml +++ b/tasks/server.yml @@ -227,7 +227,7 @@ - name: "setup corporate identity" when: ("corporate_identity" in group_names) include_role: - name: corporate-identity + name: persona-corporate - name: setup redirect hosts when: ("redirect" in group_names)