Optimized README's and meta/main.ymls for Sphinx Build

This commit is contained in:
Kevin Veen-Birkenbach 2025-07-09 17:42:28 +02:00
parent b610d211c5
commit 22049cd1ca
No known key found for this signature in database
GPG Key ID: 44D8F11FD62F878E
7 changed files with 185 additions and 65 deletions

View File

@ -1,31 +1,23 @@
# PC-TorBrowser Role
# Torbrowser
## Description
This Ansible role installs and configures the Tor service and the Tor Browser Launcher, providing a privacy-focused web browsing environment on Pacman-based Linux distributions.
## Overview
This README document is for the `desk-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 `desk-torbrowser` role encompasses tasks for installing the Tor Browser:
The `desk-torbrowser` role uses the `community.general.pacman` module to:
1. **Install TorBrowser**:
- Utilizes the `community.general.pacman` module to install:
- `tor`: The core Tor service which facilitates anonymous communication.
- `torbrowser-launcher`: A package for securely and easily launching the Tor Browser.
1. Install **tor** (the core Tor network service)
2. Install **torbrowser-launcher** (the launcher for Tor Browser)
## Purpose and Usage
The `desk-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.
## Features
## Prerequisites
- **Ansible**: Must be installed on your system to run this role.
- **Arch Linux-based System**: As the role uses the `pacman` package manager, it's best suited for Arch Linux or similar distributions.
* Idempotent installation of Tor and Tor Browser Launcher
* Ensures the Tor service is available for anonymous network traffic
* Simplifies first-time setup of Tor Browser
## Running the Role
To use this role:
1. Clone the `cymais` repository.
2. Navigate to the `roles/desk-torbrowser` directory.
3. Run the role using Ansible, ensuring you have the necessary permissions for software installation.
## Further Resources
## Customization
While this role primarily focuses on installing Tor and the Tor Browser Launcher, you can customize it to include additional privacy-focused tools or configurations based on your needs.
## Support and Contributions
For support, feedback, or contributions, such as enhancing the role with more privacy tools or improving the installation process, please open an issue or submit a pull request in the `cymais` repository. Contributions that enhance the privacy and security aspects of this role are highly encouraged.
* [Tor Project documentation](https://www.torproject.org/)
* [CyMaIS GitHub repository](https://github.com/kevinveenbirkenbach/cymais)

View File

@ -0,0 +1,23 @@
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs and configures the Tor service and Tor Browser Launcher for secure, anonymous web browsing on Pacman-based systems."
license: "CyMaIS NonCommercial License (CNCL)"
license_url: "https://s.veen.world/cncl"
company: |
Kevin Veen-Birkenbach
Consulting & Coaching Solutions
https://www.veen.world
galaxy_tags:
- tor
- privacy
- anonymity
- browser
repository: "https://github.com/kevinveenbirkenbach/cymais"
issue_tracker_url: "https://github.com/kevinveenbirkenbach/cymais/issues"
documentation: "https://github.com/kevinveenbirkenbach/cymais/tree/main/roles/desk-torbrowser"
min_ansible_version: "2.9"
platforms:
- name: Archlinux
versions:
- all
dependencies: []

View File

@ -1,22 +1,22 @@
# Intel Drivers
# drv-intel Role
## Description
This Ansible role installs Intel media drivers on systems that use the Pacman package manager (e.g., Arch Linux and derivatives). It ensures the `intel-media-driver` package is present and up-to-date.
This Ansible role installs Intel media drivers on Pacman-based Linux distributions (e.g., Arch Linux), ensuring the `intel-media-driver` package is present and up-to-date.
## Overview
The `drv-intel` role leverages the `community.general.pacman` module to:
The `drv-intel` role uses the `community.general.pacman` module to:
1. Update the package cache.
2. Install (or upgrade) the `intel-media-driver` package.
3. Verify that the driver is correctly installed and ready for use in media pipelines.
1. Update the package cache
2. Install or upgrade the `intel-media-driver` package
3. Verify the driver installation for media pipelines
## Features
* Idempotent installation of Intel media drivers
* Automatic package cache update before installation
* Supports installation on any Pacman-based distribution
* Automatic Pacman cache update
* Support for all Pacman-based distributions
## Further Resources

View File

@ -0,0 +1,25 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs Intel media drivers on Pacman-based systems, ensuring the `intel-media-driver` package is present and up-to-date."
license: "CyMaIS NonCommercial License (CNCL)"
license_url: "https://s.veen.world/cncl"
company: |
Kevin Veen-Birkenbach
Consulting & Coaching Solutions
https://www.veen.world
galaxy_tags:
- intel
- media
- driver
- linux
- pacman
repository: "https://github.com/kevinveenbirkenbach/cymais"
issue_tracker_url: "https://github.com/kevinveenbirkenbach/cymais/issues"
documentation: "https://github.com/kevinveenbirkenbach/cymais/tree/main/roles/drv-intel"
min_ansible_version: "2.9"
platforms:
- name: Archlinux
versions:
- all
dependencies: []

View File

@ -1,38 +1,23 @@
# Employee
# utils-desk-office-tools Role
## Description
This Ansible role installs a comprehensive suite of office productivity tools on Pacman-based Linux distributions, including a web browser, email client, e-book manager, and document editor.
## Overview
This README document is for the `utils-desk-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 `utils-desk-office-tools` role comprises tasks for installing a range of office software:
The `utils-desk-office-tools` role uses the `community.general.pacman` module to:
1. **Install Office Software**:
- The role utilizes the `community.general.pacman` module to install the following software packages:
- `chromium`: A free and open-source web browser.
- `thunderbird`: A free and open-source email client, news client, RSS, and chat client.
- `calibre`: An e-book management software.
- `retext`: A simple but powerful editor for Markdown and reStructuredText.
1. Install **Chromium** (web browser)
2. Install **Thunderbird** (email and RSS client)
3. Install **Calibre** (e-book management software)
4. Install **ReText** (Markdown and reStructuredText editor)
## Dependencies
This role depends on:
- **desk-libreoffice**: Ensures that the LibreOffice suite, a comprehensive office package, is installed.
- **desk-zoom**: Provides tools necessary for video conferencing, supplementing the office setup.
## Features
## Purpose and Usage
The `utils-desk-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.
* Idempotent installation of all specified office packages
* Supports any Pacman-based distribution (e.g., Arch Linux)
* Easily extendable by adding or removing package names
## Prerequisites
- **Ansible**: Must be installed to use this role.
- **Arch Linux-based System**: As the role uses the `pacman` package manager, it's intended for systems based on Arch Linux or similar distributions.
## Running the Role
To utilize this role:
1. Clone the `cymais` repository.
2. Navigate to the `roles/utils-desk-office-tools` directory.
3. Run the role using Ansible, ensuring you have the necessary permissions for software installation.
## Customization
This role can be customized by adding or removing software packages in the `main.yml` file, depending on your specific office and productivity needs.
## Support and Contributions
For support, feedback, or contributions, such as adding more office tools or enhancing the current setup, please open an issue or submit a pull request in the `cymais` repository. Contributions that improve the office and productivity environment are highly welcomed.
## Further Resources
* [CyMaIS GitHub repository](https://github.com/kevinveenbirkenbach/cymais)

View File

@ -1,3 +1,28 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs a suite of office productivity tools—web browser, email client, e-book manager, and reStructuredText/Markdown editor—on Pacman-based systems."
license: "CyMaIS NonCommercial License (CNCL)"
license_url: "https://s.veen.world/cncl"
company: |
Kevin Veen-Birkenbach
Consulting & Coaching Solutions
https://www.veen.world
galaxy_tags:
- office
- productivity
- browser
- email
- ebook
- editor
repository: "https://github.com/kevinveenbirkenbach/cymais"
issue_tracker_url: "https://github.com/kevinveenbirkenbach/cymais/issues"
documentation: "https://github.com/kevinveenbirkenbach/cymais/tree/main/roles/utils-desk-office-tools"
min_ansible_version: "2.9"
platforms:
- name: Archlinux
versions:
- all
dependencies:
- desk-libreoffice
- utils-desk-browser

View File

@ -0,0 +1,70 @@
import os
import yaml
import unittest
class TestAnsibleRolesMetadata(unittest.TestCase):
ROOT_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..'))
ROLES_DIR = os.path.join(ROOT_DIR, 'roles')
@classmethod
def setUpClass(cls):
if not os.path.isdir(cls.ROLES_DIR):
raise unittest.SkipTest(f"Roles directory not found at {cls.ROLES_DIR}")
cls.roles = [d for d in os.listdir(cls.ROLES_DIR)
if os.path.isdir(os.path.join(cls.ROLES_DIR, d))]
def test_each_role_has_valid_meta(self):
"""
Ensure each Ansible role has a valid meta/main.yml
with the fields that Sphinx generators expect.
"""
for role in self.roles:
with self.subTest(role=role):
role_path = os.path.join(self.ROLES_DIR, role)
meta_file = os.path.join(role_path, 'meta', 'main.yml')
self.assertTrue(
os.path.exists(meta_file),
msg=f"Missing meta/main.yml in role '{role}'"
)
with open(meta_file, 'r', encoding='utf-8') as f:
raw = f.read()
meta_data = yaml.safe_load(raw) or {}
# meta_data must be a dict
self.assertIsInstance(
meta_data, dict,
msg=f"Meta data for role '{role}' is not a dict"
)
# description inside galaxy_info
galaxy_info = meta_data.get('galaxy_info') or {}
self.assertIsInstance(
galaxy_info, dict,
msg=f"'galaxy_info' missing or not a dict in meta for role '{role}'"
)
self.assertIn(
'description', galaxy_info,
msg=f"'description' missing in galaxy_info for role '{role}'"
)
self.assertTrue(
galaxy_info['description'],
msg=f"'description' is empty in galaxy_info for role '{role}'"
)
# no empty keys or None values in galaxy_info
for key, value in galaxy_info.items():
self.assertTrue(
key,
msg=f"Empty galaxy_info key in role '{role}'"
)
self.assertIsNotNone(
value,
msg=f"None value for galaxy_info['{key}'] in role '{role}'"
)
if __name__ == '__main__':
unittest.main()