mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-04-20 23:14:56 +02:00
Restructured code for personas
This commit is contained in:
parent
2158309020
commit
c8a91c1c46
105
inventories/TODO.md
Normal file
105
inventories/TODO.md
Normal file
@ -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/
|
||||
├── <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.
|
||||
|
||||
```
|
41
roles/TODO.md
Normal file
41
roles/TODO.md
Normal file
@ -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>-<secondary prefix>-<role name>
|
||||
```
|
||||
|
||||
### 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) |
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Backups Provider User
|
||||
# User for Backup Provider
|
||||
|
||||
## Description
|
||||
|
@ -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
|
@ -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
|
@ -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
|
||||
|
@ -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
|
@ -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
|
@ -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
|
@ -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
|
@ -1,7 +1,5 @@
|
||||
- name: install security tools
|
||||
community.general.pacman:
|
||||
name:
|
||||
- ecryptfs-utils
|
||||
- encfs
|
||||
- keepassxc
|
||||
state: present
|
@ -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
|
@ -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
|
@ -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
|
@ -1,2 +0,0 @@
|
||||
# Corporate Identity
|
||||
Loads the roles to setup a corporate identity
|
@ -1,4 +0,0 @@
|
||||
dependencies:
|
||||
- nginx-serve-legal
|
||||
- nginx-serve-assets
|
||||
- docker-portfolio
|
@ -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/).
|
||||
|
||||
|
@ -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.
|
@ -1,9 +0,0 @@
|
||||
- name: install latex software
|
||||
community.general.pacman:
|
||||
name:
|
||||
- texlive-latexextra
|
||||
- texlive-lang
|
||||
- texlive-langextra
|
||||
- texlive-fontsextra
|
||||
- texlive
|
||||
state: present
|
@ -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.
|
29
roles/persona-corporate/README.md
Normal file
29
roles/persona-corporate/README.md
Normal file
@ -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)
|
29
roles/persona-corporate/meta/main.yml
Normal file
29
roles/persona-corporate/meta/main.yml
Normal file
@ -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
|
@ -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
|
@ -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
|
@ -1,3 +1,3 @@
|
||||
dependencies:
|
||||
- pc-libreoffice
|
||||
- client-libreoffice
|
||||
- client-browser
|
@ -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
|
@ -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
|
||||
|
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user