Compare commits

...

5 Commits

49 changed files with 613 additions and 124 deletions

View File

@ -83,6 +83,12 @@ defaults_applications:
css_enabled: "{{css_enabled_default}}" # Enables\Disables Global CSS Style
landingpage_iframe_enabled: "{{landingpage_iframe_enabled_default}}" # Enables\Disables the possibility to embed this on landing page via iframe
# Chromium Browser
chromium:
plugins: # Plugins to be installed in Chromium
- "cjpalhdlnbpafiamejdnhcphjbkeiagm;https://clients2.google.com/service/update2/crx" # U-Block Origine Plugin
- "oboonakemofpalcgghocfoadofidjkkk;https://clients2.google.com/service/update2/crx" # KeepassXC Plugin
coturn: # @todo implement
credentials:
user: turnuser
@ -109,6 +115,12 @@ defaults_applications:
css_enabled: "{{css_enabled_default}}" # Enables\Disables Global CSS Style
landingpage_iframe_enabled: "true" # Landingpage should be embeded in portfolio
# Firefox Browser
firefox:
plugins: # Plugins to be installed in Firefox
- "https://addons.mozilla.org/firefox/downloads/latest/ublock-origin/latest.xpi" # U-Block Origine Plugin
- "https://addons.mozilla.org/firefox/downloads/latest/keepassxc-browser/latest.xpi" # KeepassXC Plugin
## Friendica
friendica:
version: "latest"

View File

@ -2,7 +2,7 @@
## Description
This Ansible role pulls the [directory-validator](https://github.com/kevinveenbirkenbach/directory-validator.git) repository to a predefined location. It is used by the backup-docker-to-local and cleanup-failed-docker-backups roles to verify whether backups have been successfully created.
This Ansible role installs the [directory-validator](https://github.com/kevinveenbirkenbach/directory-validator.git). It is used by the backup-docker-to-local and cleanup-failed-docker-backups roles to verify whether backups have been successfully created.
## Overview

View File

@ -23,4 +23,5 @@ galaxy_info:
issue_tracker_url: "https://s.veen.world/cymaisissues"
documentation: "https://s.veen.world/cymais"
dependencies: []
dependencies:
- package-manager

View File

@ -1,9 +1,6 @@
- name: pull directory-validator.git
git:
repo: "https://github.com/kevinveenbirkenbach/directory-validator.git"
dest: "{{backup_directory_validator_folder}}"
update: yes
ignore_errors: true
- name: install directory-validator
command:
cmd: "pkgmgr install directory-validator"
when: run_once_backup_directory_validator is not defined
- name: run the backup_directory_validator tasks once

View File

@ -23,9 +23,9 @@ galaxy_info:
issue_tracker_url: "https://s.veen.world/cymaisissues"
documentation: "https://s.veen.world/cymais"
dependencies:
- git
- backups-provider
- systemd-notifier
- cleanup-failed-docker-backups
- system-maintenance-lock
- backup-directory-validator
- backup-directory-validator
- package-manager

View File

@ -1,17 +1,16 @@
- name: install required software
community.general.pacman:
name:
- lsof
- python-pandas
state: present
- name: install backup-docker-to-local
command:
cmd: "pkgmgr install backup-docker-to-local"
when: run_once_backup_docker_to_local is not defined
- name: pull backup-docker-to-local.git
git:
repo: "https://github.com/kevinveenbirkenbach/backup-docker-to-local.git"
dest: "{{backup_docker_to_local_folder}}"
update: yes
ignore_errors: true
- name: Retrieve backup-docker-to-local path from pkgmgr
command: pkgmgr path backup-docker-to-local
register: pkgmgr_output
when: run_once_backup_docker_to_local is not defined
- name: Set fact for backup_docker_to_local_folder
set_fact:
backup_docker_to_local_folder: "{{ pkgmgr_output.stdout }}"
when: run_once_backup_docker_to_local is not defined
- name: configure backup-docker-to-local-everything.cymais.service

View File

@ -1 +0,0 @@
backup_docker_to_local_folder: "{{path_administrator_scripts}}backup-docker-to-local/"

View File

@ -22,7 +22,7 @@ galaxy_info:
issue_tracker_url: "https://s.veen.world/cymaisissues"
documentation: "https://s.veen.world/cymais"
dependencies:
- git
- systemd-notifier
- system-maintenance-lock
- backup-directory-validator
- package-manager

View File

@ -1,9 +1,16 @@
- name: pull cleanup-failed-docker-backups.git
git:
repo: "https://github.com/kevinveenbirkenbach/cleanup-failed-docker-backups.git"
dest: "{{backup_docker_to_local_cleanup_folder}}"
update: yes
ignore_errors: true
- name: install cleanup-failed-docker-backups
command:
cmd: "pkgmgr install cleanup-failed-docker-backups"
when: run_once_cleanup_failed_docker_backups is not defined
- name: Retrieve backup-docker-to-local path from pkgmgr
command: pkgmgr path cleanup-failed-docker-backups
register: pkgmgr_output
when: run_once_cleanup_failed_docker_backups is not defined
- name: Set fact for backup_docker_to_local_cleanup_folder
set_fact:
backup_docker_to_local_cleanup_folder: "{{ pkgmgr_output.stdout }}"
when: run_once_cleanup_failed_docker_backups is not defined
- name: configure cleanup-failed-docker-backups.cymais.service

View File

@ -1 +0,0 @@
backup_docker_to_local_cleanup_folder: "{{path_administrator_scripts}}cleanup-failed-docker-backups/"

27
roles/git/README.md Normal file
View File

@ -0,0 +1,27 @@
# Git
## Description
This Ansible role installs Git on the target system using the Pacman package manager. It ensures that Git is installed only once, even when the role is applied to multiple hosts or executed in a multi-task scenario.
## Overview
Designed for Arch Linux systems, this role leverages the `pacman` module to install Git. It uses a fact (`run_once_git`) to control task execution, ensuring that the Git installation is performed only once per run.
## Purpose
The purpose of this role is to automate the installation of Git in a consistent and idempotent manner. It is especially useful in environments where Git is a prerequisite for further automation or development tasks.
## Features
- **Git Installation:** Uses the Pacman package manager to install Git.
- **Idempotent Execution:** Sets a fact to guarantee that the installation tasks are executed only once.
- **Optimized Deployment:** Suitable for use in multi-host environments to avoid redundant installations.
## 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)

21
roles/git/meta/main.yml Normal file
View File

@ -0,0 +1,21 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs Git using the Pacman package manager on Arch Linux systems."
license: "CyMaIS NonCommercial License (CNCL)"
license_url: "https://s.veen.world/cncl"
company: |
Kevin Veen-Birkenbach
Consulting & Coaching Solutions
https://www.veen.world
min_ansible_version: "2.9"
platforms:
- name: Archlinux
versions:
- rolling
galaxy_tags:
- git
- pacman
- archlinux
- installation
dependencies: []

View File

@ -1,5 +1,7 @@
- name: install git
pacman: name=git state=present
pacman:
name: git
state: present
when: run_once_git is not defined
- name: run the git tasks once

View File

@ -0,0 +1,32 @@
# Kevins Package Manager 🤖📦
## Description
This Ansible role installs and configures [Kevin's Package Manager](https://github.com/kevinveenbirkenbach/package-manager) - a configurable Python tool designed to manage multiple repositories and automate common Git operations. The role clones the repository from GitHub, sets the executable permissions for the main script, and runs the installation command to set up command aliases.
## Overview
This role automates the deployment of Kevin's Package Manager by:
- Cloning the repository from GitHub.
- Setting the proper executable permissions on `main.py`.
- Executing the installation command to create/update repository command wrappers.
It ensures that the Package Manager is ready to manage repositories, perform Git operations, and streamline software management tasks.
## Purpose
The purpose of this role is to simplify the installation of Kevin's Package Manager, reducing manual steps and ensuring a consistent setup across environments. Ideal for developers and system administrators, it helps integrate repository management seamlessly into your automation workflows.
## Features
- **Repository Cloning:** Automatically clones the Package Manager repository from GitHub.
- **Executable Setup:** Sets proper permissions on the main script.
- **Alias Installation:** Runs the installation command to generate command aliases.
- **Configurable Paths:** Allows customization of both the installation and binary directories.
## 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)

View File

@ -0,0 +1,3 @@
directories:
repositories: "{{repositories_directory}}"
binaries: "{{binaries_directory}}"

View File

@ -0,0 +1,36 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Automates the installation of Kevin's Package Manager — a tool for managing multiple repositories and automating Git operations."
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: Debian
versions:
- stretch
- buster
- bullseye
- name: Ubuntu
versions:
- bionic
- focal
- jammy
- name: Archlinux
versions:
- rolling
galaxy_tags:
- package-manager
- automation
- git
- repositories
- development
repository: https://github.com/kevinveenbirkenbach/package-manager
issue_tracker_url: https://github.com/kevinveenbirkenbach/package-manager/issues
documentation: https://github.com/kevinveenbirkenbach/package-manager
dependencies:
- git

View File

@ -0,0 +1,43 @@
---
- name: Create installation directory for Kevin's Package Manager
file:
path: "{{ pkgmgr_install_path }}"
state: directory
mode: '0755'
become: yes
when: run_once_package_manager is not defined
- name: Clone Kevin's Package Manager repository
git:
repo: "{{ pkgmgr_repo_url }}"
dest: "{{ pkgmgr_install_path }}"
version: "HEAD"
force: yes
become: yes
when: run_once_package_manager is not defined
- name: Ensure main.py is executable
file:
path: "{{ pkgmgr_install_path }}/main.py"
mode: '0755'
become: yes
when: run_once_package_manager is not defined
- name: create config.yaml
template:
src: config.yaml.j2
dest: "{{pkgmgr_config_path}}"
become: yes
when: run_once_package_manager is not defined
- name: Run the Package Manager install command to create an alias for Kevins package manager
command: "{{ pkgmgr_install_command }}"
args:
chdir: "{{ pkgmgr_install_path }}"
become: yes
when: run_once_package_manager is not defined
- name: run run_once_package_manager tasks once
set_fact:
run_once_package_managerr: true
when: run_once_package_manager is not defined

View File

@ -0,0 +1,20 @@
---
# Variables for Kevin's Package Manager installation
# The Git repository URL for Kevin's Package Manager
pkgmgr_repo_url: "https://github.com/kevinveenbirkenbach/package-manager.git"
# Directory which contains all Repositories managed by Kevin's Package Manager
repositories_directory: "/opt/Repositories/"
# The directory where the repository will be cloned
pkgmgr_install_path: "{{repositories_directory}}github.com/kevinveenbirkenbach/package-manager"
# File containing the configuration
pkgmgr_config_path: "{{pkgmgr_install_path}}/config/config.yaml"
# The directory where executable aliases will be installed (ensure it's in your PATH)
binaries_directory: "/usr/local/bin"
# The command to run to install/update the Package Manager's aliases
pkgmgr_install_command: "./main.py install pkgmgr"

View File

@ -1,39 +0,0 @@
# 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.
## Role Contents
The `main.yml` file in this role consists of tasks that automate the installation of the following packages:
1. **Install VLC and Blu-ray Software**:
- `vlc`: A versatile media player that supports Blu-ray playback.
- `libaacs`: A library for Blu-ray disc encryption handling.
- `libbluray`: A library for Blu-ray disc playback support.
There are commented-out tasks for installing additional AUR packages, such as `aacskeys` and `libbdplus`, which can be enabled as per the user's requirements.
## Other Resources and Resources
For more in-depth information and guidance on Blu-ray playback and software configuration, the following resources can be consulted:
- [Arch Linux Wiki on Blu-ray](https://wiki.archlinux.org/title/Blu-ray#Using_aacskeys)
- [Guide to Play Blu-ray with VLC](https://videobyte.de/play-blu-ray-with-vlc)
- [Manjaro Forum Discussion on Blu-ray UHD Playback](https://archived.forum.manjaro.org/t/wie-kann-ich-bluray-uhd-abspielen/127396/12)
- [FV Online DB](http://fvonline-db.bplaced.net/)
## Dependencies
This role depends on the `java` role, which ensures the Java runtime is available a requirement for certain Blu-ray playback tools and functionalities.
## Prerequisites
- **Ansible**: Ansible must be installed on your system to use this role.
- **Arch Linux-based System**: Designed for Arch Linux distributions, using the `pacman` package manager.
## Running the Role
To utilize this role:
1. Clone the `cymais` repository.
2. Navigate to the `roles/pc-bluray-player-tools` directory.
3. Execute the role using Ansible, with appropriate permissions for installing packages.
## Customization
You can customize this role by enabling or adding additional tasks for other AUR packages related to Blu-ray playback as needed.
## Support and Contributions
For support, feedback, or contributions to enhance the role's capabilities, please open an issue or submit a pull request in the `cymais` repository. Contributions that improve Blu-ray playback support or compatibility are highly appreciated.

View File

@ -1,7 +1,39 @@
# collection-blu-ray-player
# PC-Bluray-Player-Tools Role
## Other Resources
- https://wiki.archlinux.org/title/Blu-ray#Using_aacskeys
- https://videobyte.de/play-blu-ray-with-vlc
- https://archived.forum.manjaro.org/t/wie-kann-ich-bluray-uhd-abspielen/127396/12
- http://fvonline-db.bplaced.net/
## 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.
## Role Contents
The `main.yml` file in this role consists of tasks that automate the installation of the following packages:
1. **Install VLC and Blu-ray Software**:
- `vlc`: A versatile media player that supports Blu-ray playback.
- `libaacs`: A library for Blu-ray disc encryption handling.
- `libbluray`: A library for Blu-ray disc playback support.
There are commented-out tasks for installing additional AUR packages, such as `aacskeys` and `libbdplus`, which can be enabled as per the user's requirements.
## Other Resources and Resources
For more in-depth information and guidance on Blu-ray playback and software configuration, the following resources can be consulted:
- [Arch Linux Wiki on Blu-ray](https://wiki.archlinux.org/title/Blu-ray#Using_aacskeys)
- [Guide to Play Blu-ray with VLC](https://videobyte.de/play-blu-ray-with-vlc)
- [Manjaro Forum Discussion on Blu-ray UHD Playback](https://archived.forum.manjaro.org/t/wie-kann-ich-bluray-uhd-abspielen/127396/12)
- [FV Online DB](http://fvonline-db.bplaced.net/)
## Dependencies
This role depends on the `java` role, which ensures the Java runtime is available a requirement for certain Blu-ray playback tools and functionalities.
## Prerequisites
- **Ansible**: Ansible must be installed on your system to use this role.
- **Arch Linux-based System**: Designed for Arch Linux distributions, using the `pacman` package manager.
## Running the Role
To utilize this role:
1. Clone the `cymais` repository.
2. Navigate to the `roles/pc-bluray-player-tools` directory.
3. Execute the role using Ansible, with appropriate permissions for installing packages.
## Customization
You can customize this role by enabling or adding additional tasks for other AUR packages related to Blu-ray playback as needed.
## Support and Contributions
For support, feedback, or contributions to enhance the role's capabilities, please open an issue or submit a pull request in the `cymais` repository. Contributions that improve Blu-ray playback support or compatibility are highly appreciated.

View File

@ -0,0 +1,29 @@
# Chromium 🌐
## Description
This Ansible role installs and configures the Chromium browser along with essential security and productivity extensions. It ensures that Chromium is installed and properly set up with forced installation of uBlock Origin and the KeePassXC browser extension via Enterprise Policies, providing a secure and streamlined browsing experience.
## Overview
Designed for various Linux distributions, this role manages the installation of the Chromium browser using the systems package manager. It configures Chromium's managed policies to automatically deploy key browser extensions, ensuring that users always have a secure and consistent environment. This role integrates seamlessly with other system management roles for a holistic deployment.
## Purpose
The purpose of this role is to automate the provisioning of a secure Chromium environment in a consistent and maintainable way. It reduces manual configuration steps and guarantees that critical browser extensions are enforced, making it ideal for both production and personal deployments.
## Features
- **Installs Chromium Browser:** Automatically installs the appropriate Chromium package based on the target system.
- **Installs KeePassXC:** Ensures KeePassXC is installed for secure password management.
- **Enforces Browser Extensions:** Configures Chromium Enterprise Policies to force-install uBlock Origin and the KeePassXC browser extension.
- **Cross-Platform Support:** Handles package variations for multiple Linux distributions.
- **Seamless Integration:** Provides a stable and secure browsing setup as part of broader system automation workflows.
## Credits 📝
Developed and maintained by **Kevin Veen-Birkenbach**.
Learn more at [www.veen.world](https://www.veen.world)
Part of the [CyMaIS Project](https://github.com/kevinveenbirkenbach/cymais)
License: [CyMaIS NonCommercial License (CNCL)](https://s.veen.world/cncl)

View File

@ -0,0 +1,2 @@
---
chromium_package: "{{ 'chromium-browser' if ansible_os_family == 'Debian' else 'chromium' }}"

View File

@ -0,0 +1,35 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Automates the installation and configuration of the Chromium browser with enforced security extensions."
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: Debian
versions:
- stretch
- buster
- bullseye
- name: Ubuntu
versions:
- bionic
- focal
- jammy
- name: Archlinux
versions:
- rolling
galaxy_tags:
- chromium
- browser
- enterprise-policy
- security
- automation
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies: []

View File

@ -0,0 +1,27 @@
---
- name: Update package cache (Debian/Ubuntu)
apt:
update_cache: yes
when: ansible_os_family == "Debian"
- name: Install Chromium browser
package:
name: "{{ chromium_package }}"
state: present
- name: Install KeePassXC
package:
name: keepassxc
state: present
- name: Ensure Chromium policies directory exists
file:
path: /etc/chromium/policies/managed
state: directory
mode: '0755'
- name: Copy the extensions policy file for Chromium
template:
src: extensions_policy.json.j2
dest: /etc/chromium/policies/managed/extensions_policy.json
mode: '0644'

View File

@ -0,0 +1,7 @@
{
"ExtensionInstallForcelist": [
{% for plugin in applications[application_id].plugins -%}
"{{ plugin }}"{% if not loop.last %},{% endif %}
{% endfor %}
]
}

View File

@ -0,0 +1,28 @@
# Firefox 🦊
## Description
This Ansible role installs and configures Firefox on Arch Linux systems, enforcing Enterprise Policies to automatically install key browser extensions. It ensures that Firefox is installed and set up with policies that force-install uBlock Origin and the KeePassXC Browser extension, delivering a secure and consistent browsing experience.
## Overview
Tailored for Arch Linux, this role handles the installation of Firefox using the systems package manager (`pacman`). It deploys a `policies.json` file to Firefoxs distribution directory, ensuring that critical extensions are automatically installed via Firefox Enterprise Policies.
## Purpose
The role automates the provisioning of a secure Firefox environment, reducing manual configuration and ensuring consistency across deployments. It is ideal for environments where a standardized and secure browsing setup is required.
## Features
- **Installs Firefox:** Uses `pacman` to install the Firefox package.
- **Enforces Enterprise Policies:** Deploys a `policies.json` file that forces the installation of uBlock Origin and the KeePassXC Browser extension.
- **Streamlined Configuration:** Automatically creates necessary directories and applies correct file permissions.
- **Seamless Integration:** Easily integrates with other automation roles for a complete system setup.
## Credits 📝
Developed and maintained by **Kevin Veen-Birkenbach**.
Learn more at [www.veen.world](https://www.veen.world)
Part of the [CyMaIS Project](https://github.com/kevinveenbirkenbach/cymais)
License: [CyMaIS NonCommercial License (CNCL)](https://s.veen.world/cncl)

View File

@ -0,0 +1,11 @@
---
# Default variables for the pc-firefox role
# Package name for Firefox on Arch Linux
firefox_package: firefox
# Directory where Firefox expects distribution policies
firefox_policy_dir: "/usr/lib/firefox/distribution"
# Full path to the policies file
firefox_policy_file: "{{ firefox_policy_dir }}/policies.json"

View File

@ -0,0 +1,25 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Automates the installation and configuration of Firefox with enforced extension policies on Arch Linux."
license: "CyMaIS NonCommercial License (CNCL)"
license_url: "https://s.veen.world/cncl"
company: |
Kevin Veen-Birkenbach
Consulting & Coaching Solutions
https://www.veen.world
min_ansible_version: "2.9"
platforms:
- name: Archlinux
versions:
- rolling
galaxy_tags:
- firefox
- browser
- enterprise-policy
- security
- automation
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies: []

View File

@ -0,0 +1,17 @@
---
- name: Install Firefox
package:
name: "{{ firefox_package }}"
state: present
- name: Ensure Firefox distribution policies directory exists
file:
path: "{{ firefox_policy_dir }}"
state: directory
mode: '0755'
- name: Deploy Firefox Enterprise Policies file
template:
src: policies.json.j2
dest: "{{ firefox_policy_file }}"
mode: '0644'

View File

@ -0,0 +1,12 @@
{
"policies": {
"Extensions": {
"Install": [
{% for plugin in applications[application_id].plugins -%}
"{{ plugin }}"{% if not loop.last %},{% endif %}
{% endfor %}
]
}
}
}

View File

@ -0,0 +1,28 @@
# Browsers 🎨
## Description
This Ansible role serves as a wrapper to install and configure multiple browsers on a target system. It integrates the configurations of both Chromium and Firefox, ensuring that each browser is set up with forced installation of key security extensions (uBlock Origin and the KeePassXC browser extension) via Enterprise Policies.
## Overview
The **pc-browsers** role orchestrates the deployment of two specialized roles: **pc-browser-chromium** and **pc-browser-firefox**. By executing both roles, it provides a unified solution for browser management, making it easier to maintain a secure and consistent browsing environment across your systems.
## Purpose
The purpose of this role is to simplify the automation of browser deployments. Instead of managing separate playbooks or tasks for Chromium and Firefox, this role consolidates browser installation and configuration into one streamlined process.
## Features
- **Unified Browser Management:** Executes both Chromium and Firefox configuration roles.
- **Automated Installation:** Installs Chromium and Firefox along with their essential security extensions.
- **Enforced Security Policies:** Ensures that uBlock Origin and the KeePassXC browser extension are automatically deployed using Enterprise Policies.
- **Seamless Integration:** Easily integrates into your existing automation workflows for a consistent system setup.
## Credits 📝
Developed and maintained by **Kevin Veen-Birkenbach**.
Learn more at [www.veen.world](https://www.veen.world)
Part of the [CyMaIS Project](https://github.com/kevinveenbirkenbach/cymais)
License: [CyMaIS NonCommercial License (CNCL)](https://s.veen.world/cncl)

View File

@ -0,0 +1,38 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Wrapper role to install and configure both Chromium and Firefox with enforced security extensions."
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: Debian
versions:
- stretch
- buster
- bullseye
- name: Ubuntu
versions:
- bionic
- focal
- jammy
- name: Archlinux
versions:
- rolling
galaxy_tags:
- browsers
- chromium
- firefox
- enterprise-policy
- security
- automation
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- pc-browser-chromium
- pc-browser-firefox

View File

@ -6,6 +6,7 @@
state: present
- name: Adding user {{client_username}} to relevant docker usergroup
user: name={{client_username}}
groups=docker
append=yes
user:
name: "{{client_username}}"
groups: docker
append: yes

View File

@ -3,29 +3,9 @@
## Overview
Welcome to the `pc-git` role documentation, part of the `cymais` repository. This role is focused on setting up Git, a widely-used version control system, on personal computers. The role includes tasks for installing Git and configuring global user details.
## Role Tasks
The `main.yml` file in the `pc-git` role consists of the following key tasks:
1. **Set Git User Email**: Uses the `ansible.builtin.shell` module to set the global Git user email to a specified value (`{{user_email}}`).
2. **Set Git User Name**: Similar to the above, this task sets the global Git user name (`{{user_full_name}}`) using the `ansible.builtin.shell` module.
3. **Install Git**: Employs the `community.general.pacman` module to install the Git package, ensuring it's present on the system.
## Purpose and Usage
The `pc-git` role is essential for developers, IT professionals, and anyone who needs to utilize version control for their projects. It automates the installation of Git and the initial configuration of user identity, which is crucial for committing changes and collaborating on projects using Git.
## Prerequisites
- **Ansible**: Must be installed on your system to use this role.
- **Arch Linux-based System**: This role uses the `pacman` package manager, making it suitable for Arch Linux or similar distributions.
## Running the Role
To use this role:
1. Clone the `cymais` repository.
2. Navigate to the `roles/pc-git` directory.
3. Make sure to define the `user_email` and `user_full_name` variables before running the role.
4. Execute the role using Ansible, ensuring you have the required permissions for software installation and configuration.
## Customization
You can customize this role by modifying the variables for user email and name or by adding additional Git configuration tasks as needed.

View File

@ -16,7 +16,7 @@ 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-video-conference**: Provides tools necessary for video conferencing, supplementing the office setup.
- **pc-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.

View File

@ -1,3 +1,3 @@
dependencies:
- pc-libreoffice
- pc-video-conference
- pc-browsers

View File

@ -1,7 +1,6 @@
- name: install office sofware
community.general.pacman:
name:
- chromium
- thunderbird
- calibre
- retext

View File

@ -1,10 +1,10 @@
# PC-Video-Conference Role
## Overview
Welcome to the `pc-video-conference` 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 `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.
## Role Tasks
The `main.yml` file in the `pc-video-conference` role includes tasks for setting up video conferencing tools:
The `main.yml` file in the `pc-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-video-conference` 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 `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.
## Prerequisites
- **Ansible**: Required to run this role.
@ -26,7 +26,7 @@ The `pc-video-conference` role is particularly useful for professionals, educato
## Running the Role
To utilize this role:
1. Clone the `cymais` repository.
2. Navigate to the `roles/pc-video-conference` directory.
2. Navigate to the `roles/pc-zoom` directory.
3. Run the role using Ansible, ensuring you have appropriate system permissions for software installation.
## Customization

View File

@ -1,4 +1,5 @@
# System AUR Helper
## Description
This role ensures that the AUR helper [yay](https://wiki.archlinux.org/title/Yay) is installed on the system. It installs yay via [pacman](https://wiki.archlinux.org/title/Pacman) and creates a dedicated `aur_builder` user to facilitate building AUR packages.

View File

@ -1,9 +1,6 @@
- name: pull auto-btrfs-balancer.git
git:
repo: "https://github.com/kevinveenbirkenbach/auto-btrfs-balancer.git"
dest: "{{system_btrfs_auto_balancer_folder}}"
update: yes
ignore_errors: true
- name: install auto-btrfs-balancer
command:
cmd: "pkgmgr install auto-btrfs-balancer"
when: run_once_system_btrfs_auto_balancer is not defined
- name: configure system-btrfs-auto-balancer.cymais.service

View File

@ -4,4 +4,4 @@ OnFailure=systemd-notifier.cymais@%n.service
[Service]
Type=oneshot
ExecStart=/bin/sh -c '/usr/bin/python {{system_btrfs_auto_balancer_folder}}main.py 90 10'
ExecStart=/bin/sh -c 'auto-btrfs-balancer 90 10'

View File

@ -22,4 +22,4 @@ galaxy_info:
issue_tracker_url: "https://s.veen.world/cymaisissues"
documentation: "https://s.veen.world/cymais"
dependencies:
- git
- package-manager

View File

@ -1,11 +1,8 @@
- name: pull swapfile creating script
git:
repo: "https://github.com/kevinveenbirkenbach/create-linux-swapfile.git"
dest: "$HOME/Repositories/github.com/kevinveenbirkenbach/create-linux-swapfile"
update: yes
ignore_errors: true
become: false
- name: install swap-forge
command:
cmd: "pkgmgr install backup-docker-to-local"
become: true
- name: Execute create swapfile script
ansible.builtin.shell: bash "/home/{{client_username}}/Repositories/github.com/kevinveenbirkenbach/create-linux-swapfile/create-linux-swapfile.sh" "{{swapfile_size}}"
ansible.builtin.shell: swap-forge "{{swapfile_size}}"
become: true

View File

@ -0,0 +1,23 @@
# Update Pip Packages
## Description
This Ansible role automatically updates all installed Python Pip packages to their latest versions.
## Overview
The role performs the following:
- Executes a command to retrieve all installed Python Pip packages.
- Updates each package individually to its latest available version.
- Ensures a smooth and automated Python environment maintenance process.
## Purpose
Ensures Python packages remain up-to-date, improving security and functionality.
## Features
- **Automatic Updates:** Automates the process of upgrading Python packages.
- **Platform Independent:** Works on Linux, macOS, and Windows environments.
- **Ansible Integration:** Easy to include in larger playbooks or maintenance routines.

View File

@ -0,0 +1,26 @@
galaxy_info:
author: "Kevin Veen-Birkenbach"
license: "CyMaIS NonCommercial License (CNCL)"
license_url: "https://s.veen.world/cncl"
company: |
Kevin Veen-Birkenbach
Consulting & Coaching Solutions
https://www.veen.world
description: "Automatically updates all Python Pip packages to their latest available versions."
min_ansible_version: "2.9"
platforms:
- name: Ubuntu
versions:
- all
- name: Archlinux
versions:
- rolling
- name: Debian
versions:
- all
galaxy_tags:
- python
- pip
- update
- maintenance
dependencies: []

View File

@ -0,0 +1,4 @@
- name: Update all local pip packages
shell: "pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U --break-system-packages"
args:
executable: /bin/bash

View File

@ -28,4 +28,15 @@
- name: "Update with yay"
include_role:
name: update-yay
when: yay_installed.rc == 0
when: yay_installed.rc == 0
- name: "Check if pip is installed"
command: which pip
ignore_errors: yes
register: pip_installed
changed_when: false
- name: "Update with pip"
include_role:
name: update-pip
when: pip_installed.rc == 0