mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-09-10 04:25:20 +02:00
Compare commits
2 Commits
500f8b508d
...
b98f032141
Author | SHA1 | Date | |
---|---|---|---|
b98f032141 | |||
30b138ffa3 |
@@ -12,7 +12,7 @@ Follow the installation instruction descriped [here](https://github.com/kevinvee
|
||||
To setup CyMaIS execute:
|
||||
|
||||
```bash
|
||||
pkgmgr setup cymais
|
||||
pkgmgr install cymais
|
||||
```
|
||||
|
||||
This command will setup CyMaIS on your system with the alias **cymais**.
|
||||
|
102
09_DEPLOY.md
102
09_DEPLOY.md
@@ -1,22 +1,100 @@
|
||||
# Deploy
|
||||
# 🚀 Deployment Guide
|
||||
|
||||
This guide explains how to deploy and manage the Cyber Master Infrastructure Solution (CyMaIS) using Ansible. CyMaIS is based on a collection of ansible tasks. The tasks use different “modes” to control behavior such as updates, backups, resets, and cleanup tasks.
|
||||
This section explains how to deploy and manage the **Cyber Master Infrastructure Solution (CyMaIS)** using Ansible. CyMaIS uses a collection of Ansible tasks, which are controlled via different **"modes"** — such as **updates**, **backups**, **resets**, and **cleanup** operations.
|
||||
|
||||
## Prerequisites
|
||||
- **Inventory File:** Have an inventory file that lists your servers and PCs. (Paths in examples are general; adjust them to your environment.)
|
||||
- **Cymais Installed:** CyMaIS is installed via [Kevin's Package-Manager](https://github.com/kevinveenbirkenbach/package-manager).
|
||||
- **Vault Password File (Optional):** Prepare a file with your vault password if you prefer not to enter it interactively.
|
||||
---
|
||||
|
||||
## Deploying on Servers
|
||||
To get detailled information how to use CyMaIS to deploy software to your server execute:
|
||||
```sh
|
||||
## ✅ Prerequisites
|
||||
|
||||
Before deploying, ensure the following are in place:
|
||||
|
||||
- **🧭 Inventory File:** A valid Ansible inventory file that defines your target systems (servers, personal computers, etc.). Adjust example paths to your environment.
|
||||
- **📦 CyMaIS Installed:** Install via [Kevin's Package-Manager](https://github.com/kevinveenbirkenbach/package-manager).
|
||||
- **🔐 (Optional) Vault Password File:** If you don't want to enter your vault password interactively, create a password file.
|
||||
|
||||
---
|
||||
|
||||
## 📘 Show CyMaIS Help
|
||||
|
||||
To get a full overview of available options and usage instructions, run:
|
||||
|
||||
```bash
|
||||
cymais --help
|
||||
```
|
||||
|
||||
## Using a Password File
|
||||
---
|
||||
|
||||
## 💡 Example Deploy Command
|
||||
|
||||
To deploy CyMaIS on a personal computer (e.g., a laptop), you can run:
|
||||
|
||||
```bash
|
||||
cymais playbook \
|
||||
--limit hp-spectre-x360 \
|
||||
--host-type personal-computer \
|
||||
--update \
|
||||
--password-file ~/Repositories/git.veen.world/kevinveenbirkenbach/computer-inventory/.pass/general.txt \
|
||||
~/Repositories/git.veen.world/kevinveenbirkenbach/computer-inventory/pcs.yml
|
||||
```
|
||||
|
||||
### 🧠 What does this command do?
|
||||
|
||||
| Parameter | Description |
|
||||
|----------|-------------|
|
||||
| `playbook` | Executes the playbook subcommand of CyMaIS. |
|
||||
| `--limit hp-spectre-x360` | Limits execution to a specific host (`hp-spectre-x360`). |
|
||||
| `--host-type personal-computer` | Defines the host type. Default is `server`; here it is set to `personal-computer`. |
|
||||
| `--update` | Enables update mode to apply software or configuration updates. |
|
||||
| `--password-file` | Specifies the vault password file path for decrypting sensitive values. |
|
||||
| `pcs.yml` | The path to the inventory file containing host definitions. |
|
||||
|
||||
---
|
||||
|
||||
## 🔐 Using a Vault Password File
|
||||
|
||||
To avoid typing your vault password interactively, you can provide a file:
|
||||
|
||||
To avoid entering your vault password interactively every time, use the `--password-file` option:
|
||||
```bash
|
||||
--password-file /path/to/your/vault_pass.txt
|
||||
```
|
||||
Ensure the vault password file is stored securely.
|
||||
|
||||
> ⚠️ **Security Tip:** Ensure the password file is properly protected (e.g., `chmod 600 vault_pass.txt`).
|
||||
|
||||
---
|
||||
|
||||
## 🔍 Full Command-Line Reference
|
||||
|
||||
Here’s a breakdown of all available parameters from `cymais playbook --help`:
|
||||
|
||||
| Argument | Description |
|
||||
|----------|-------------|
|
||||
| `inventory` *(positional)* | Path to the Ansible inventory file. |
|
||||
| `--limit <HOST>` | Run the playbook only on the specified host. |
|
||||
| `--host-type {server, personal-computer}` | Define the target system type (default is `server`). |
|
||||
| `--reset` | Enables reset mode (restores or resets specific configurations). |
|
||||
| `--test` | Enables test mode (dry-run style). No actual changes are applied. |
|
||||
| `--update` | Enables update mode to upgrade packages or configs. |
|
||||
| `--backup` | Triggers backup routines for data or configurations. |
|
||||
| `--cleanup` | Cleans up temporary files, old data, etc. |
|
||||
| `--debug` | Enables debug logging in the playbook. |
|
||||
| `--password-file <PATH>` | Uses a vault password file instead of interactive prompt. |
|
||||
| `-v, -vv, -vvv` | Increases output verbosity. More `v`s = more detail. |
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Combine Multiple Modes
|
||||
|
||||
You can mix and match modes like this:
|
||||
|
||||
```bash
|
||||
cymais playbook --update --backup --cleanup pcs.yml
|
||||
```
|
||||
|
||||
This will update the system, create a backup, and clean up unnecessary files in one run.
|
||||
|
||||
---
|
||||
|
||||
## 📝 Footnote
|
||||
|
||||
> 📄 *This documentation page was generated with the help of AI.*
|
||||
> 🤖 [View the original conversation (ChatGPT)](https://chatgpt.com/share/67ecfe25-3fb8-800f-923d-8cd3fc4efd2f)
|
@@ -171,6 +171,7 @@ defaults_applications:
|
||||
plugins:
|
||||
- [enable,nasa_apod@elinvention.ovh,https://github.com/Elinvention/gnome-shell-extension-nasa-apod.git]
|
||||
- [disable,dash-to-dock@micxgx.gmail.com,'']
|
||||
- [enable, dash-to-panel@jderose9.github.com,'']
|
||||
|
||||
## Joomla
|
||||
joomla:
|
||||
|
@@ -6,7 +6,7 @@ This Ansible role serves as a wrapper to install and configure multiple browsers
|
||||
|
||||
## 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.
|
||||
The **client-browser** role orchestrates the deployment of two specialized roles: **client-browser-chromium** and **client-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
|
||||
|
@@ -34,5 +34,5 @@ galaxy_info:
|
||||
issue_tracker_url: https://s.veen.world/cymaisissues
|
||||
documentation: https://s.veen.world/cymais
|
||||
dependencies:
|
||||
- pc-browser-chromium
|
||||
- pc-browser-firefox
|
||||
- client-browser-chromium
|
||||
- client-browser-firefox
|
@@ -1,4 +1,4 @@
|
||||
# Git for Personal Computers
|
||||
# Git
|
||||
|
||||
## Description
|
||||
|
@@ -1,4 +1,4 @@
|
||||
# GNOME Caffeine Setup
|
||||
# GNOME Caffeine
|
||||
|
||||
## Description
|
||||
|
@@ -4,6 +4,7 @@
|
||||
use: yay
|
||||
name:
|
||||
- caffeine-ng
|
||||
become: false
|
||||
|
||||
- name: Create autostart directory if it doesn't exist
|
||||
file:
|
@@ -9,5 +9,5 @@
|
||||
|
||||
- name: Execute CLI GNOME Extension manager script
|
||||
ansible.builtin.shell: cli-gnome-extension-manager "{{ item[0] }}" "{{ item[1] }}" "{{ item[2] }}"
|
||||
loop: "{{applications[application_id].plugins | dict2items }}"
|
||||
loop: "{{ applications[application_id].plugins }}"
|
||||
become: false
|
1
roles/client-gnome-extensions/vars/main.yml
Normal file
1
roles/client-gnome-extensions/vars/main.yml
Normal file
@@ -0,0 +1 @@
|
||||
application_id: "gnome"
|
@@ -1,4 +1,4 @@
|
||||
# GNOME Terminal Installation
|
||||
# GNOME Terminal
|
||||
|
||||
## Description
|
||||
|
@@ -3,9 +3,9 @@
|
||||
## Description
|
||||
|
||||
This role aggregates various GNOME desktop components to ensure a cohesive and fully functional GNOME environment on Arch Linux. It includes the installation and configuration of several sub-roles:
|
||||
- **pc-gnome-caffeine:** Prevents the system from sleeping or locking automatically.
|
||||
- **pc-gnome-extensions:** Manages GNOME Shell extensions and installs the CLI GNOME Extension Manager.
|
||||
- **pc-gnome-terminal:** Installs GNOME Terminal, the official terminal emulator for GNOME.
|
||||
- **client-gnome-caffeine:** Prevents the system from sleeping or locking automatically.
|
||||
- **client-gnome-extensions:** Manages GNOME Shell extensions and installs the CLI GNOME Extension Manager.
|
||||
- **client-gnome-terminal:** Installs GNOME Terminal, the official terminal emulator for GNOME.
|
||||
|
||||
## Purpose
|
||||
|
@@ -19,6 +19,6 @@ galaxy_info:
|
||||
- archlinux
|
||||
- automation
|
||||
dependencies:
|
||||
- pc-gnome-caffeine
|
||||
- pc-gnome-extensions
|
||||
- pc-gnome-terminal
|
||||
- client-gnome-caffeine
|
||||
- client-gnome-extensions
|
||||
- client-gnome-terminal
|
28
roles/client-nextcloud/README.md
Normal file
28
roles/client-nextcloud/README.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# Nextcloud Client ☁️
|
||||
|
||||
## Description
|
||||
|
||||
This Ansible role installs and configures the Nextcloud desktop client on Arch Linux systems. It also manages symbolic links from commonly used user directories (like `Documents`, `Pictures`, etc.) to the respective folders inside a cloud-synced Nextcloud directory. This ensures user data is seamlessly integrated into the synchronized cloud folder.
|
||||
|
||||
## Overview
|
||||
|
||||
Targeting user environments on Arch Linux (e.g., Manjaro), this role sets up the official `nextcloud-client` and dynamically links key directories from the user's home folder to Nextcloud. This makes it easy to use the Nextcloud client without needing to manually configure folders.
|
||||
|
||||
## Purpose
|
||||
|
||||
The purpose of this role is to automate the configuration of cloud-integrated user directories by ensuring that common folders like `Downloads`, `Music`, and `Workspaces` are transparently redirected into a centralized cloud structure. This makes it easier to maintain backup-friendly, cloud-ready setups for homelab and professional workflows.
|
||||
|
||||
## Features
|
||||
|
||||
- **Installs the Nextcloud Desktop Client:** Uses `pacman` via the `community.general.pacman` module.
|
||||
- **Symbolic Linking of User Folders:** Maps home folders (e.g., `Documents`, `Videos`, `Workspaces`) into their Nextcloud equivalents.
|
||||
- **Dynamic Cloud Directory Resolution:** Builds the target cloud directory path from user and cloud variables.
|
||||
- **Dump Folder Mapping:** Links `InstantUpload` from the cloud to a `~/Dump` folder for quick camera/file access.
|
||||
|
||||
## 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)
|
27
roles/client-nextcloud/meta/main.yml
Normal file
27
roles/client-nextcloud/meta/main.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
galaxy_info:
|
||||
author: "Kevin Veen-Birkenbach"
|
||||
description: "Installs and links Nextcloud desktop client folders for cloud-integrated user environments."
|
||||
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:
|
||||
- nextcloud
|
||||
- cloud
|
||||
- archlinux
|
||||
- user
|
||||
- desktop
|
||||
- automation
|
||||
repository: https://s.veen.world/cymais
|
||||
issue_tracker_url: https://s.veen.world/cymaisissues
|
||||
documentation: https://s.veen.world/cymais
|
||||
|
||||
dependencies: []
|
@@ -10,6 +10,8 @@
|
||||
owner: "{{users.client.username}}"
|
||||
group: "{{users.client.username}}"
|
||||
state: link
|
||||
force: yes
|
||||
ignore_errors: true # Just temporary @todo remove
|
||||
loop:
|
||||
- Templates
|
||||
- Documents
|
38
roles/client-spotify/README.md
Normal file
38
roles/client-spotify/README.md
Normal file
@@ -0,0 +1,38 @@
|
||||
# Spotify 🎵
|
||||
|
||||
## Description
|
||||
|
||||
This Ansible role installs the [Spotify](https://www.spotify.com/) desktop client on Arch Linux systems using the [AUR (Arch User Repository)](https://aur.archlinux.org/packages/spotify/).
|
||||
|
||||
## Overview
|
||||
|
||||
Spotify is a digital music streaming service that gives you access to millions of songs and podcasts. Since it is not available in the official Arch repositories, this role uses an AUR helper (like [`yay`](https://github.com/Jguer/yay)) to install the package.
|
||||
|
||||
## Purpose
|
||||
|
||||
To automate the installation of Spotify on Arch-based systems while ensuring proper handling of AUR-related tasks through a dedicated helper role.
|
||||
|
||||
## Features
|
||||
|
||||
- 🎧 Installs the official [Spotify AUR package](https://aur.archlinux.org/packages/spotify)
|
||||
- 🛠 Uses `yay` (or other helper) via [`kewlfft.aur`](https://github.com/kewlfft/ansible-aur) Ansible module
|
||||
- 🔗 Declares dependency on `system-aur-helper` for seamless integration
|
||||
|
||||
## Requirements
|
||||
|
||||
- The `system-aur-helper` role must be applied before using this role.
|
||||
- An AUR helper like `yay` must be available on the system.
|
||||
|
||||
## Dependencies
|
||||
|
||||
This role depends on:
|
||||
|
||||
- [`system-aur-helper`](../system-aur-helper) – provides and configures an AUR helper like `yay`
|
||||
|
||||
## 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)
|
27
roles/client-spotify/meta/main.yml
Normal file
27
roles/client-spotify/meta/main.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
---
|
||||
galaxy_info:
|
||||
author: "Kevin Veen-Birkenbach"
|
||||
description: "Installs the Spotify client."
|
||||
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:
|
||||
- spotify
|
||||
- aur
|
||||
- music
|
||||
- streaming
|
||||
- archlinux
|
||||
- client
|
||||
repository: https://s.veen.world/cymais
|
||||
issue_tracker_url: https://s.veen.world/cymaisissues
|
||||
documentation: https://s.veen.world/cymais
|
||||
dependencies:
|
||||
- role: system-aur-helper
|
@@ -1,4 +1,4 @@
|
||||
- name: install entertainment software
|
||||
- name: install spotify
|
||||
kewlfft.aur.aur:
|
||||
use: yay
|
||||
name:
|
33
roles/client-ssh/README.md
Normal file
33
roles/client-ssh/README.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# SSH Agent 🔐
|
||||
|
||||
## Description
|
||||
|
||||
This Ansible role ensures a functional and persistent SSH Agent setup on Arch Linux (Manjaro) systems running GNOME with Wayland. It manages SSH configuration by cloning a remote Git repository into the user's `~/.ssh` directory and sets up a systemd user service to start the SSH agent automatically at login.
|
||||
|
||||
To understand the broader context of SSH, read more on [Wikipedia – SSH](https://en.wikipedia.org/wiki/Secure_Shell) or visit the official [OpenSSH project](https://www.openssh.com/).
|
||||
|
||||
This role was designed and validated in the context of [this discussion](https://chatgpt.com/share/67ed0e25-7240-800f-9ab2-9fffc569bc20) on configuring SSH agents for KeePassXC compatibility under Wayland sessions.
|
||||
|
||||
## Overview
|
||||
|
||||
This role is intended for Manjaro/Arch systems where `gnome-keyring` no longer reliably manages `ssh-agent` due to changes in behavior under Wayland. It works by deploying a `systemd --user` service, making SSH Agent integration predictable and independent of graphical environment quirks.
|
||||
|
||||
## Purpose
|
||||
|
||||
The purpose of this role is to automate the provisioning of SSH agent capabilities and synchronize the `.ssh` directory from a Git repository. This enables users to access private repositories or authenticate with remote servers immediately after login.
|
||||
|
||||
## Features
|
||||
|
||||
- **Clones a remote SSH config repository** into `~/.ssh` using the `client-git` role.
|
||||
- **Deploys and enables a systemd user service** for `ssh-agent`.
|
||||
- **Ensures environment compatibility** by injecting the `SSH_AUTH_SOCK` variable into either `.bash_profile` or `.profile`.
|
||||
- **Fails gracefully** with an optional debug message if the Git repository is unreachable.
|
||||
- **KeePassXC ready**: Ensures compatibility with password managers that support SSH agent integration.
|
||||
|
||||
## 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/client-ssh/meta/main.yml
Normal file
29
roles/client-ssh/meta/main.yml
Normal file
@@ -0,0 +1,29 @@
|
||||
---
|
||||
galaxy_info:
|
||||
author: "Kevin Veen-Birkenbach"
|
||||
description: "Persistent SSH agent setup for GNOME Wayland sessions with SSH configuration pulled from Git."
|
||||
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:
|
||||
- ssh
|
||||
- agent
|
||||
- systemd
|
||||
- gnome
|
||||
- wayland
|
||||
- archlinux
|
||||
- keepassxc
|
||||
repository: https://s.veen.world/cymais
|
||||
issue_tracker_url: https://s.veen.world/cymaisissues
|
||||
documentation: https://s.veen.world/cymais
|
||||
|
||||
dependencies:
|
||||
- client-git
|
55
roles/client-ssh/tasks/main.yml
Normal file
55
roles/client-ssh/tasks/main.yml
Normal file
@@ -0,0 +1,55 @@
|
||||
- name: pull ssh repository from {{ssh_configuration_repository}}
|
||||
git:
|
||||
repo: "{{ssh_configuration_repository}}"
|
||||
dest: "$HOME/.ssh"
|
||||
update: yes
|
||||
register: git_result
|
||||
ignore_errors: true
|
||||
become: false
|
||||
|
||||
- name: Warn if repo is not reachable
|
||||
debug:
|
||||
msg: "Warning: Repository is not reachable."
|
||||
when: git_result.failed and enable_debug | bool
|
||||
|
||||
- name: Ensure systemd user directory exists
|
||||
file:
|
||||
path: "$HOME/.config/systemd/user"
|
||||
state: directory
|
||||
mode: "0700"
|
||||
become: false
|
||||
|
||||
- name: Deploy ssh-agent systemd unit file
|
||||
template:
|
||||
src: ssh-agent.service.j2
|
||||
dest: "$HOME/.config/systemd/user/ssh-agent.service"
|
||||
mode: "0644"
|
||||
become: false
|
||||
|
||||
- name: Enable and start ssh-agent service
|
||||
systemd:
|
||||
name: ssh-agent.service
|
||||
scope: user
|
||||
enabled: true
|
||||
state: started
|
||||
daemon_reload: true
|
||||
become: false
|
||||
|
||||
- name: Set SSH_AUTH_SOCK in bash_profile or profile
|
||||
block:
|
||||
- name: Choose profile file
|
||||
set_fact:
|
||||
profile_file: "$HOME/.bash_profile"
|
||||
when: ansible_facts.env.HOME is defined and lookup('file', ansible_env.HOME + '/.bash_profile', errors='ignore') is defined
|
||||
|
||||
- name: Fallback to .profile if .bash_profile not found
|
||||
set_fact:
|
||||
profile_file: "$HOME/.profile"
|
||||
when: profile_file is not defined
|
||||
|
||||
- name: Ensure SSH_AUTH_SOCK is set in profile
|
||||
lineinfile:
|
||||
path: "{{ profile_file }}"
|
||||
line: 'export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"'
|
||||
insertafter: EOF
|
||||
state: present
|
11
roles/client-ssh/templates/ssh-agent.service.j2
Normal file
11
roles/client-ssh/templates/ssh-agent.service.j2
Normal file
@@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=User SSH Agent
|
||||
Before=default.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
Environment=SSH_AUTH_SOCK=%t/ssh-agent.socket
|
||||
ExecStart=/usr/bin/ssh-agent -D -a $SSH_AUTH_SOCK
|
||||
|
||||
[Install]
|
||||
WantedBy=default.target
|
3
roles/driver-lid-switch/README.md
Normal file
3
roles/driver-lid-switch/README.md
Normal file
@@ -0,0 +1,3 @@
|
||||
https://chatgpt.com/share/67ed14d0-4220-800f-a592-82513553fb97
|
||||
https://chatgpt.com/share/67ed1520-8a54-800f-98a5-12372413994a
|
||||
https://chatgpt.com/share/67ed158b-66d4-800f-b418-e52460c225ce
|
@@ -1,3 +1,3 @@
|
||||
dependencies:
|
||||
- pc-git
|
||||
- client-git
|
||||
- make
|
@@ -1,38 +0,0 @@
|
||||
# PC-Games Role
|
||||
|
||||
## Overview
|
||||
This README is for the `pc-games` role, a part of the `cymais` repository. This role is designed to install a variety of popular open-source and freely available games on personal computers.
|
||||
|
||||
## Role Contents
|
||||
The `main.yml` file within the `pc-games` role automates the installation of several gaming titles using the `community.general.pacman` module. The games included are:
|
||||
|
||||
1. **Install Gaming Software**:
|
||||
- `0ad`: A free, open-source, historical real-time strategy (RTS) game.
|
||||
- `warzone2100`: A 3D RTS game set in a post-apocalyptic future.
|
||||
- `supertuxkart`: A free 3D kart racing game.
|
||||
- `gnuchess`: The GNU chess program.
|
||||
- `sauerbraten`: A first-person shooter game.
|
||||
- `minetest`: An open-source voxel game engine with easy modding and game creation.
|
||||
- `mari0`: A crossover between Super Mario and Portal.
|
||||
- `retroarch`: A frontend for emulators, game engines, and media players.
|
||||
- `retroarch-assets-xmb`: XMB menu assets for RetroArch.
|
||||
- `retroarch-assets-ozone`: Ozone menu assets for RetroArch.
|
||||
|
||||
## Purpose and Usage
|
||||
The `pc-games` role is perfect for gamers who wish to have a variety of gaming experiences on their personal computer. It includes a range of games from different genres, providing options for players with diverse interests. The role is also suitable for setting up a gaming environment on new systems or restoring a collection of games after a system refresh.
|
||||
|
||||
## Prerequisites
|
||||
- **Ansible**: You must have Ansible installed on your system to use this role.
|
||||
- **Arch Linux-based System**: This role uses the `pacman` package manager, indicating it is designed for Arch Linux or similar distributions.
|
||||
|
||||
## Running the Role
|
||||
To utilize this role:
|
||||
1. Clone the `cymais` repository.
|
||||
2. Navigate to the `roles/pc-games` directory.
|
||||
3. Execute the role using Ansible, ensuring you have the necessary permissions for software installation.
|
||||
|
||||
## Customization
|
||||
You can customize this role by adding or removing games in the `main.yml` file based on your preferences or the requirements of your system.
|
||||
|
||||
## Support and Contributions
|
||||
For support, feedback, or contributions, such as adding more games or enhancing the setup process, please open an issue or submit a pull request in the `cymais` repository. Contributions that expand the gaming options or improve the installation process are highly welcomed.
|
@@ -1,14 +0,0 @@
|
||||
- name: Install gaming software
|
||||
community.general.pacman:
|
||||
name:
|
||||
- 0ad
|
||||
- warzone2100
|
||||
- supertuxkart
|
||||
- gnuchess
|
||||
- sauerbraten
|
||||
- minetest
|
||||
- mari0
|
||||
- retroarch
|
||||
- retroarch-assets-xmb
|
||||
- retroarch-assets-ozone
|
||||
state: present
|
@@ -1,41 +0,0 @@
|
||||
# PC-Nextcloud Role
|
||||
|
||||
## Overview
|
||||
This README details the `pc-nextcloud` role, part of the `cymais` repository. This role focuses on setting up the Nextcloud client on personal computers and configuring directory synchronization.
|
||||
|
||||
## Role Variables
|
||||
The `vars/main.yml` file defines key variables used in this role:
|
||||
- `user_home_directory`: The home directory of the user, typically `/home/{{users.client.username}}/`.
|
||||
- `cloud_directory`: The directory path for Nextcloud cloud storage, structured as `{{user_home_directory}}Clouds/{{cloud_fqdn}}/{{users.client.username}}/`.
|
||||
|
||||
## Role Tasks
|
||||
The `main.yml` file in the `pc-nextcloud` role comprises the following tasks:
|
||||
|
||||
1. **Install Nextcloud-Client**:
|
||||
- Installs the Nextcloud desktop client using the `community.general.pacman` module.
|
||||
|
||||
2. **Link Homefolders to Cloud**:
|
||||
- Creates symbolic links from various user directories (like Templates, Documents, Videos, etc.) to corresponding folders in the Nextcloud cloud directory. This ensures synchronization of these folders with the user's Nextcloud account.
|
||||
|
||||
3. **Link Dump Folder**:
|
||||
- Specifically links a `Dump` folder in the user's home directory to the `InstantUpload` folder in the Nextcloud cloud directory for easy file dumping and syncing.
|
||||
|
||||
## Purpose and Usage
|
||||
The `pc-nextcloud` role is designed for users who want to integrate Nextcloud, a cloud storage service, into their daily workflow. This role automates the installation of the Nextcloud client and the setup of directory synchronization, making files and documents easily accessible and syncable across devices.
|
||||
|
||||
## Prerequisites
|
||||
- **Ansible**: Required for running this role.
|
||||
- **Arch Linux-based System**: Since the role uses the `pacman` package manager, it's tailored for Arch Linux or similar distributions.
|
||||
|
||||
## Running the Role
|
||||
To use this role:
|
||||
1. Clone the `cymais` repository.
|
||||
2. Navigate to the `roles/pc-nextcloud` directory.
|
||||
3. Ensure that the `users.client.username` and `cloud_fqdn` variables are correctly set to match your Nextcloud account details.
|
||||
4. Execute the role using Ansible, ensuring appropriate permissions are available for installations and configurations.
|
||||
|
||||
## Customization
|
||||
You can customize this role by modifying the variables in `vars/main.yml` and adjusting the directories in the linking tasks to suit your specific Nextcloud setup and preferences.
|
||||
|
||||
## Support and Contributions
|
||||
For support, suggestions, or contributions, such as adding additional features or improving the setup, open an issue or submit a pull request in the `cymais` repository. Contributions that enhance the integration and usability of Nextcloud on personal computers are highly welcome.
|
@@ -1,3 +1,3 @@
|
||||
dependencies:
|
||||
- pc-libreoffice
|
||||
- pc-browsers
|
||||
- client-browser
|
@@ -1,33 +0,0 @@
|
||||
# PC-Spotify Role
|
||||
|
||||
## Overview
|
||||
This README is for the `pc-spotify` role, part of the `cymais` repository. This role is dedicated to installing Spotify, a popular digital music streaming service, on personal computers.
|
||||
|
||||
## Role Tasks
|
||||
The `main.yml` file in the `pc-spotify` role includes the following task:
|
||||
|
||||
1. **Install Entertainment Software**:
|
||||
- Utilizes the `kewlfft.aur.aur` module with `yay` as the AUR helper to install `spotify`. Spotify offers streaming of millions of songs, podcasts, and videos from artists all around the world.
|
||||
|
||||
## Dependencies
|
||||
This role depends on:
|
||||
- **system-aur-helper**: Ensures that an Arch User Repository (AUR) helper is available, which is necessary for installing packages like `spotify` that are not available in the standard repositories.
|
||||
|
||||
## Purpose and Usage
|
||||
The `pc-spotify` role is tailored for users who enjoy streaming music and wish to have Spotify readily available on their personal computer. This role simplifies the process of installing Spotify, making it accessible for listening to music, podcasts, and more.
|
||||
|
||||
## Prerequisites
|
||||
- **Ansible**: Required for running this role.
|
||||
- **Arch Linux-based System**: The role is designed for systems that use the `pacman` package manager and AUR helpers, typically found in Arch Linux distributions.
|
||||
|
||||
## Running the Role
|
||||
To use this role:
|
||||
1. Clone the `cymais` repository.
|
||||
2. Navigate to the `roles/pc-spotify` directory.
|
||||
3. Execute the role using Ansible, ensuring you have the necessary system permissions for package installation.
|
||||
|
||||
## Customization
|
||||
While this role is primarily focused on installing Spotify, it can be customized to include additional entertainment or media software as per user requirements.
|
||||
|
||||
## Support and Contributions
|
||||
For support, feedback, or contributions, such as adding more features or enhancing the role, please open an issue or submit a pull request in the `cymais` repository. Contributions that improve the entertainment software setup, including Spotify, are highly welcomed.
|
@@ -1,2 +0,0 @@
|
||||
dependencies:
|
||||
- system-aur-helper
|
@@ -1,38 +0,0 @@
|
||||
# PC-SSH Role
|
||||
|
||||
## Overview
|
||||
Welcome to the `pc-ssh` role, a critical component of the `cymais` repository. This role is dedicated to setting up SSH (Secure Shell) on the client side, facilitating secure access to remote servers.
|
||||
|
||||
## Role Description
|
||||
The `pc-ssh` role includes tasks to pull and update SSH configuration from a specified repository and handle potential errors:
|
||||
|
||||
1. **Pull SSH Repository**:
|
||||
- Clones or updates the SSH configuration from a given repository (`{{ssh_configuration_repository}}`) into the `$HOME/.ssh` directory. This task ensures that your SSH configuration is synchronized with the specified repository.
|
||||
|
||||
2. **Warn if Repo is Not Reachable**:
|
||||
- Displays a warning message if the SSH configuration repository is not reachable, indicating potential issues with the repository's availability or the network connection.
|
||||
|
||||
## Dependencies
|
||||
This role depends on:
|
||||
- **pc-git**: Ensures that Git is installed, which is necessary for cloning and updating the SSH configuration repository.
|
||||
|
||||
## Purpose and Usage
|
||||
The `pc-ssh` role is designed for users who require SSH access to remote servers, such as developers, system administrators, or IT professionals. By automating the SSH configuration process, this role streamlines the setup and ensures a consistent and secure SSH environment.
|
||||
|
||||
## Prerequisites
|
||||
- **Ansible**: Must be installed to run this role.
|
||||
- **Git**: Required for cloning and updating the SSH configuration repository.
|
||||
- **Arch Linux-based System**: While not explicitly stated, the role's compatibility with specific systems depends on the dependencies and the overall playbook configuration.
|
||||
|
||||
## Running the Role
|
||||
To use this role:
|
||||
1. Clone the `cymais` repository.
|
||||
2. Navigate to the `roles/pc-ssh` directory.
|
||||
3. Define the `ssh_configuration_repository` variable with the URL of your SSH configuration repository.
|
||||
4. Run the role using Ansible, ensuring you have the necessary permissions for executing the tasks.
|
||||
|
||||
## Customization
|
||||
You can customize this role by modifying the SSH configuration repository URL or by adding additional SSH-related tasks as needed.
|
||||
|
||||
## Support and Contributions
|
||||
For support, feedback, or contributions, such as enhancing the SSH setup or adding more features, please open an issue or submit a pull request in the `cymais` repository. Contributions that improve SSH configuration and usage are highly encouraged.
|
@@ -1,2 +0,0 @@
|
||||
dependencies:
|
||||
- pc-git
|
@@ -1,13 +0,0 @@
|
||||
- name: pull ssh repository from {{ssh_configuration_repository}}
|
||||
git:
|
||||
repo: "{{ssh_configuration_repository}}"
|
||||
dest: "$HOME/.ssh"
|
||||
update: yes
|
||||
register: git_result
|
||||
ignore_errors: true
|
||||
become: false
|
||||
|
||||
- name: Warn if repo is not reachable
|
||||
debug:
|
||||
msg: "Warning: Repository is not reachable."
|
||||
when: git_result.failed
|
38
roles/persona-gamer-core/README.md
Normal file
38
roles/persona-gamer-core/README.md
Normal file
@@ -0,0 +1,38 @@
|
||||
# Gamer Core 🧩
|
||||
|
||||
## Description
|
||||
|
||||
This Ansible role installs core gaming utilities and performance tools on Arch Linux systems. It includes essential software like [Steam](https://store.steampowered.com/), [Lutris](https://lutris.net/), [Wine](https://www.winehq.org/), [GameMode](https://github.com/FeralInteractive/gamemode), and [MangoHUD](https://github.com/flightlessmango/MangoHud).
|
||||
|
||||
## Overview
|
||||
|
||||
Focused on native and Windows-compatible game support, this role equips systems with the necessary runtimes, drivers, and enhancements for high-performance gaming. It complements other persona-gamer roles such as `retro` and `default` to provide a full gaming setup.
|
||||
|
||||
## Purpose
|
||||
|
||||
To automate the installation of foundational gaming tools and system enhancements, ensuring consistent and fast configuration across setups.
|
||||
|
||||
## Features
|
||||
|
||||
- **Steam & Lutris:** Popular game launchers for Linux and Windows titles.
|
||||
- **Wine Runtime:** Provides compatibility for Windows-based games.
|
||||
- **GameMode & MangoHUD:** Performance tuning and live system metrics.
|
||||
- **Multilib & 32-bit Support:** Required for compatibility layers.
|
||||
|
||||
## Included Tools
|
||||
|
||||
| Tool | Description |
|
||||
|-------------|-------------|
|
||||
| [Steam](https://store.steampowered.com/) | Native Linux and Proton-powered game launcher |
|
||||
| [Lutris](https://lutris.net/) | Unified gaming platform for native and emulated games |
|
||||
| [Wine](https://www.winehq.org/) | Compatibility layer for Windows games |
|
||||
| [GameMode](https://github.com/FeralInteractive/gamemode) | Performance daemon by Feral Interactive |
|
||||
| [MangoHUD](https://github.com/flightlessmango/MangoHud) | Vulkan/OpenGL performance overlay |
|
||||
|
||||
## 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)
|
28
roles/persona-gamer-core/meta/main.yml
Normal file
28
roles/persona-gamer-core/meta/main.yml
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
galaxy_info:
|
||||
author: "Kevin Veen-Birkenbach"
|
||||
description: "Installs essential gaming utilities, launchers, and runtimes 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:
|
||||
- gaming
|
||||
- steam
|
||||
- lutris
|
||||
- wine
|
||||
- gamemode
|
||||
- mangohud
|
||||
- archlinux
|
||||
- performance
|
||||
repository: https://s.veen.world/cymais
|
||||
issue_tracker_url: https://s.veen.world/cymaisissues
|
||||
documentation: https://s.veen.world/cymais
|
||||
dependencies: []
|
15
roles/persona-gamer-core/tasks/main.yml
Normal file
15
roles/persona-gamer-core/tasks/main.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
- name: Install core gaming tools from pacman
|
||||
pacman:
|
||||
name:
|
||||
- steam
|
||||
- lutris
|
||||
- gamemode
|
||||
- mangohud
|
||||
- lib32-mangohud
|
||||
- wine
|
||||
- wine-gecko
|
||||
- wine-mono
|
||||
- winetricks
|
||||
- lib32-wine
|
||||
state: present
|
||||
update_cache: yes
|
36
roles/persona-gamer-default/README.md
Normal file
36
roles/persona-gamer-default/README.md
Normal file
@@ -0,0 +1,36 @@
|
||||
# Gamer Default 🎮
|
||||
|
||||
## Description
|
||||
|
||||
This Ansible role installs a curated collection of open source and community-friendly games on Arch Linux systems. It is ideal for setting up a fun and accessible default gaming environment.
|
||||
|
||||
## Overview
|
||||
|
||||
Focused on simplicity and fun, this role brings a mix of strategy, racing, action, and retro-inspired games to your system. All games are sourced from official Arch repositories and require no proprietary services.
|
||||
|
||||
## Purpose
|
||||
|
||||
The purpose of this role is to quickly populate a gaming system with high-quality open source titles. This is great for shared systems, offline setups, or just discovering classic FOSS games.
|
||||
|
||||
## Features
|
||||
|
||||
- **Installs Fun Games:** From real-time strategy to racing and chess.
|
||||
- **No DRM or Accounts Needed:** All games work offline.
|
||||
- **Fast Setup:** Uses the official Arch repositories via `pacman`.
|
||||
|
||||
## Included Games
|
||||
|
||||
- 🏛 [**0 A.D.**](https://play0ad.com) – Open-source RTS in the spirit of Age of Empires
|
||||
- 🛰 [**Warzone 2100**](https://wz2100.net) – Real-time strategy with tech trees and post-apocalyptic theme
|
||||
- 🏁 [**SuperTuxKart**](https://supertuxkart.net) – Cartoon kart racer with power-ups and multiplayer
|
||||
- ♟ [**GNU Chess**](https://www.gnu.org/software/chess/) – Classic chess engine with CLI or GUI support
|
||||
- 🔫 [**Sauerbraten**](https://sauerbraten.org) – Fast-paced old-school FPS with LAN and map editor
|
||||
- 🍄 [**Mari0**](https://stabyourself.net/mari0/) – Mashup of Super Mario Bros and Portal mechanics
|
||||
|
||||
## 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)
|
25
roles/persona-gamer-default/meta/main.yml
Normal file
25
roles/persona-gamer-default/meta/main.yml
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
galaxy_info:
|
||||
author: "Kevin Veen-Birkenbach"
|
||||
description: "Installs a curated set of open source games for 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:
|
||||
- gaming
|
||||
- open-source
|
||||
- games
|
||||
- archlinux
|
||||
- fun
|
||||
repository: https://s.veen.world/cymais
|
||||
issue_tracker_url: https://s.veen.world/cymaisissues
|
||||
documentation: https://s.veen.world/cymais
|
||||
dependencies: []
|
5
roles/persona-gamer-default/tasks/main.yml
Normal file
5
roles/persona-gamer-default/tasks/main.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
- name: Install Default Gaming Software
|
||||
community.general.pacman:
|
||||
name: "{{ gamer_default_games }}"
|
||||
state: present
|
||||
update_cache: yes
|
7
roles/persona-gamer-default/vars/main.yml
Normal file
7
roles/persona-gamer-default/vars/main.yml
Normal file
@@ -0,0 +1,7 @@
|
||||
gamer_default_games:
|
||||
- 0ad
|
||||
- warzone2100
|
||||
- supertuxkart
|
||||
- gnuchess
|
||||
- sauerbraten
|
||||
- mari0
|
34
roles/persona-gamer-retro/README.md
Normal file
34
roles/persona-gamer-retro/README.md
Normal file
@@ -0,0 +1,34 @@
|
||||
# RetroArch 🎮
|
||||
|
||||
## Description
|
||||
|
||||
This Ansible role installs and configures [RetroArch](https://www.retroarch.com/) on Arch Linux systems. It provides all necessary packages, assets, and dependencies for a clean retro gaming experience.
|
||||
|
||||
## Overview
|
||||
|
||||
Designed for retro gaming enthusiasts, this role sets up RetroArch along with its core assets and themes. It ensures all UI styles ([XMB](https://en.wikipedia.org/wiki/XrossMediaBar), [Ozone](https://docs.libretro.com/guides/ozone-menu/)) are ready and provides a consistent emulator frontend interface powered by the [Libretro](https://www.libretro.com/) framework.
|
||||
|
||||
## Purpose
|
||||
|
||||
The purpose of this role is to automate the deployment of a full-featured RetroArch environment, reducing manual setup and improving reproducibility across gaming setups.
|
||||
|
||||
## Features
|
||||
|
||||
- **Installs RetroArch:** Including the main [RetroArch package](https://archlinux.org/packages/community/x86_64/retroarch/) and theme assets.
|
||||
- **UI Assets Support:** Both [XMB](https://docs.libretro.com/guides/xmb-menu/) and [Ozone](https://docs.libretro.com/guides/ozone-menu/) menu styles supported out of the box.
|
||||
|
||||
## ℹ️ Further Reading
|
||||
|
||||
- 🕹️ [RetroArch - Official Site](https://www.retroarch.com/)
|
||||
- 🧩 [Libretro - Modular Emulator Framework](https://www.libretro.com/)
|
||||
- 📚 [RetroArch on ArchWiki](https://wiki.archlinux.org/title/RetroArch)
|
||||
- 🧠 [RetroArch - Wikipedia](https://en.wikipedia.org/wiki/RetroArch)
|
||||
- 🎨 [UI Menus: XMB, Ozone, GLUI, RGUI](https://docs.libretro.com/guides/)
|
||||
|
||||
## 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)
|
25
roles/persona-gamer-retro/meta/main.yml
Normal file
25
roles/persona-gamer-retro/meta/main.yml
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
galaxy_info:
|
||||
author: "Kevin Veen-Birkenbach"
|
||||
description: "Installs and configures RetroArch."
|
||||
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:
|
||||
- retroarch
|
||||
- emulator
|
||||
- gaming
|
||||
- archlinux
|
||||
- assets
|
||||
repository: https://s.veen.world/cymais
|
||||
issue_tracker_url: https://s.veen.world/cymaisissues
|
||||
documentation: https://s.veen.world/cymais
|
||||
dependencies: []
|
5
roles/persona-gamer-retro/tasks/main.yml
Normal file
5
roles/persona-gamer-retro/tasks/main.yml
Normal file
@@ -0,0 +1,5 @@
|
||||
- name: Install RetroArch and assets
|
||||
pacman:
|
||||
name: "{{ retroarch_packages }}"
|
||||
state: present
|
||||
update_cache: yes
|
4
roles/persona-gamer-retro/vars/main.yml
Normal file
4
roles/persona-gamer-retro/vars/main.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
retroarch_packages:
|
||||
- retroarch
|
||||
- retroarch-assets-xmb
|
||||
- retroarch-assets-ozone
|
37
roles/persona-gamer/README.md
Normal file
37
roles/persona-gamer/README.md
Normal file
@@ -0,0 +1,37 @@
|
||||
# Gamer 🎮
|
||||
|
||||
## Description
|
||||
|
||||
This Ansible meta-role prepares an Arch Linux system for a complete and optimized gaming experience. It delegates the setup to modular sub-roles that install open-source games, retro emulators, and core performance tools like [Steam](https://store.steampowered.com/), [Wine](https://www.winehq.org/), [Lutris](https://lutris.net/), [GameMode](https://github.com/FeralInteractive/gamemode), and [RetroArch](https://www.retroarch.com/).
|
||||
|
||||
## Overview
|
||||
|
||||
This role combines several specialized gaming roles into one streamlined setup. It ensures your system is ready for modern, retro, and open-source gaming, with zero manual configuration.
|
||||
|
||||
## Purpose
|
||||
|
||||
To provide a modular and reproducible way to deploy a full-featured Linux gaming system, suited for both native and Windows-based titles, retro consoles, and FOSS games.
|
||||
|
||||
## Features
|
||||
|
||||
- ✅ **Modular Roles:** Handles separate responsibilities through sub-roles
|
||||
- 🕹️ **Retro Support:** Emulators and themes via [RetroArch](https://www.retroarch.com/)
|
||||
- 🧩 **Core Stack:** Performance tools and runtimes (e.g. [GameMode](https://github.com/FeralInteractive/gamemode), [MangoHUD](https://github.com/flightlessmango/MangoHud))
|
||||
- 🎲 **Open Source Games:** Installed directly from official Arch repos
|
||||
- ⚙️ **System Integration:** Sets `gaming_ready` fact for other CyMaIS roles
|
||||
|
||||
## Sub-Roles
|
||||
|
||||
| Role | Responsibility |
|
||||
|------|----------------|
|
||||
| [`persona-gamer-retro`](../persona-gamer-retro) | Installs RetroArch and assets |
|
||||
| [`persona-gamer-default`](../persona-gamer-default) | Installs open source games |
|
||||
| [`persona-gamer-core`](../persona-gamer-core) | Installs Steam, Lutris, Wine, GameMode, MangoHUD |
|
||||
|
||||
## 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)
|
31
roles/persona-gamer/meta/main.yml
Normal file
31
roles/persona-gamer/meta/main.yml
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
galaxy_info:
|
||||
author: "Kevin Veen-Birkenbach"
|
||||
description: "Gaming setup role for 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:
|
||||
- gaming
|
||||
- steam
|
||||
- lutris
|
||||
- gamemode
|
||||
- archlinux
|
||||
- performance
|
||||
- wine
|
||||
- graphics
|
||||
repository: https://s.veen.world/cymais
|
||||
issue_tracker_url: https://s.veen.world/cymaisissues
|
||||
documentation: https://s.veen.world/cymais
|
||||
dependencies:
|
||||
- role: persona-gamer-retro
|
||||
- role: persona-gamer-default
|
||||
- role: persona-gamer-core
|
@@ -48,37 +48,37 @@
|
||||
name: pc-latex
|
||||
|
||||
- name: GNOME setup
|
||||
when: ("gnome
|
||||
when: ("gnome" in group_names)
|
||||
include_role:
|
||||
name: pc-gnome
|
||||
name: client-gnome
|
||||
|
||||
- name: setup ssh client
|
||||
when: ("ssh" in group_names)
|
||||
when: ("ssh-client" in group_names)
|
||||
include_role:
|
||||
name: pc-ssh
|
||||
name: client-ssh
|
||||
|
||||
- name: setup gaming hosts
|
||||
when: ("gaming" in group_names)
|
||||
include_role:
|
||||
name: pc-games
|
||||
name: persona-gamer
|
||||
|
||||
- name: setup entertainment hosts
|
||||
when: ("entertainment" in group_names)
|
||||
include_role:
|
||||
name: pc-spotify
|
||||
name: client-spotify
|
||||
|
||||
- name: setup torbrowser hosts
|
||||
when: ("torbrowser" in group_names)
|
||||
include_role:
|
||||
name: pc-torbrowser
|
||||
|
||||
- name: setup nextcloud
|
||||
- name: setup nextcloud-client
|
||||
when: ("nextcloud_client" in group_names)
|
||||
include_role:
|
||||
name: pc-nextcloud
|
||||
name: client-nextcloud
|
||||
|
||||
- name: setup docker
|
||||
when: ("dockerin group_names)
|
||||
when: ("docker" in group_names)
|
||||
include_role:
|
||||
name: pc-docker
|
||||
|
||||
|
Reference in New Issue
Block a user