Optimized developer personas, implemented gcc and solved python-pip update bug

This commit is contained in:
Kevin Veen-Birkenbach 2025-04-05 20:39:56 +02:00
parent d5ba306081
commit 3ae3da3673
No known key found for this signature in database
GPG Key ID: 44D8F11FD62F878E
51 changed files with 557 additions and 279 deletions

View File

@ -1,7 +0,0 @@
It may be neccessary to install gcc seperat to use psutil
```bash
sudo pacman -S gcc
```
If this is the case in the future, automize it in this role.

View File

@ -1 +0,0 @@
docker_cleanup_backups: "{{path_administrator_scripts}}cleanup-backups/"

View File

@ -1,7 +1,7 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Automates the installation and configuration of Firefox with enforced extension policies on Arch Linux."
description: "Automates the installation and configuration of Firefox with enforced extension policies on Linux."
license: "CyMaIS NonCommercial License (CNCL)"
license_url: "https://s.veen.world/cncl"
company: |

View File

@ -1,7 +1,7 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Aggregates essential GNOME desktop roles—including caffeine, extensions, and terminal—for a complete GNOME environment on Arch Linux."
description: "Aggregates essential GNOME desktop roles—including caffeine, extensions, and terminal—for a complete GNOME environment on Linux."
license: "CyMaIS NonCommercial License (CNCL)"
license_url: "https://s.veen.world/cncl"
company: |

29
roles/gcc/README.md Normal file
View File

@ -0,0 +1,29 @@
# GCC 🧠
## Description
This Ansible role installs the GNU Compiler Collection (GCC) on Arch Linux systems. GCC is a standard compiler suite supporting C, C++, and other programming languages. It is a core component for compiling and building software from source.
Learn more about GCC on [Wikipedia](https://en.wikipedia.org/wiki/GNU_Compiler_Collection), the [official GCC homepage](https://gcc.gnu.org/), and the [Arch Linux Wiki](https://wiki.archlinux.org/title/GCC).
## Overview
Tailored for Arch Linux, this role installs GCC and optionally sets up additional development utilities. It ensures the package is installed via the system package manager and ready to compile code in a variety of programming languages.
## Purpose
The purpose of this role is to automate the provisioning of a development-ready environment by ensuring the GCC toolchain is properly installed and available.
## Features
- **Installs GCC:** Uses `pacman` to install the `gcc` package.
- **Minimal Setup:** No unnecessary dependencies are installed.
- **Reusable Role:** Can be used as a foundational component for software development, CI/CD pipelines, and build environments.
## 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/gcc/meta/main.yml Normal file
View File

@ -0,0 +1,25 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs the GNU Compiler Collection (GCC)"
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:
- gcc
- compiler
- development
- archlinux
- build
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies: []

6
roles/gcc/tasks/main.yml Normal file
View File

@ -0,0 +1,6 @@
---
- name: Install GCC
pacman:
name: gcc
state: present
update_cache: yes

View File

@ -1,3 +0,0 @@
dependencies:
- client-git
- make

View File

@ -1,38 +0,0 @@
# PC-Developer-Tools-Arduino Role
## Overview
This README file is for the `pc-developer-tools-arduino` role, a specialized component of the `cymais` repository. This role is specifically crafted for setting up Arduino development tools on personal computers.
## Role Details
The `main.yml` file in the `pc-developer-tools-arduino` role encompasses tasks crucial for Arduino developers:
1. **Install Arduino Developer Tools**:
- This task employs the `community.general.pacman` module to install:
- `arduino`: The Arduino IDE, which is an open-source electronics platform based on easy-to-use hardware and software.
- `arduino-docs`: Documentation for Arduino, providing essential information for development.
2. **Adding User to Relevant Arduino Usergroups**:
- This task modifies the user (specified by `{{users.client.username}}`) to be added to the `uucp` and `lock` groups, which is necessary for accessing serial ports on Linux systems.
## Dependencies
The role depends on:
- **pc-developer-tools**: Ensures that base developer tools, including code editors and related software, are installed and configured.
## Purpose and Usage
The `pc-developer-tools-arduino` role is tailored for developers and hobbyists who work with Arduino boards and need a reliable and efficient setup for their development environment. This role simplifies the process of installing and configuring the Arduino IDE and associated documentation, along with setting up necessary user permissions.
## Prerequisites
- **Ansible**: Required for executing this role.
- **Arch Linux-based System**: The role uses `pacman`, indicating it is designed for Arch Linux-based distributions.
## Running the Role
To utilize this role:
1. Clone the `cymais` repository.
2. Navigate to the `roles/pc-developer-tools-arduino` directory.
3. Execute the role using Ansible, ensuring you replace `{{users.client.username}}` with the actual username and have the necessary system permissions.
## Customization
This role can be customized to include additional Arduino-related packages or tools, depending on the user's requirements.
## Support and Contributions
For support, suggestions, or contributions (like adding more Arduino-related tools or improving the setup), please raise an issue or submit a pull request in the `cymais` repository. Contributions that enhance the Arduino development environment setup are highly encouraged.

View File

@ -1,2 +0,0 @@
dependencies:
- pc-developer-tools

View File

@ -1,34 +0,0 @@
# PC-Developer-Tools-Bash Role
## Overview
This README accompanies the `pc-developer-tools-bash` role within the `cymais` repository. This role is dedicated to equipping personal computers with essential tools for Bash scripting and development.
## Role Contents
The `main.yml` file under the `pc-developer-tools-bash` role includes tasks focused on installing Bash development tools:
1. **Install Bash Developer Tools**:
- This task leverages the `community.general.pacman` module to install:
- `shellcheck`: A static analysis tool for shell scripts, which helps in identifying and correcting common errors or issues in Bash scripts.
## Dependencies
This role is dependent on:
- **pc-developer-tools**: Ensures that foundational developer tools are in place, providing a base environment for further specialized toolsets like Bash development tools.
## Purpose and Usage
The `pc-developer-tools-bash` role is specifically tailored for developers who frequently work with Bash scripting. ShellCheck, the main tool installed by this role, is invaluable for writing robust, error-free shell scripts. This role is ideal for system administrators, DevOps professionals, and anyone involved in script-based automation or Linux-based development.
## Prerequisites
- **Ansible**: You need to have Ansible installed on your system to use this role.
- **Arch Linux-based System**: The role utilizes `pacman`, thus it is best suited for Arch Linux or similar distributions.
## Running the Role
To execute this role:
1. Clone the `cymais` repository to your machine.
2. Navigate to the `roles/pc-developer-tools-bash` directory within the repository.
3. Run the role using Ansible, ensuring you have the necessary permissions to install software packages.
## Customization
The role can be customized by adding additional Bash development tools or utilities as per the user's requirements in the `main.yml` file.
## Support and Contributions
For support, feedback, or contributions (like adding more tools relevant to Bash development or enhancing the setup), please open an issue or submit a pull request in the `cymais` repository. Contributions that improve the Bash development environment are highly appreciated.

View File

@ -1,2 +0,0 @@
dependencies:
- pc-developer-tools

View File

@ -1,29 +0,0 @@
# PC-Developer-Tools-Java Role
## Overview
Welcome to the `pc-developer-tools-java` role, a part of the `cymais` repository. This role is specifically designed for setting up Java development tools on personal computers. It is an essential component for Java developers, providing the necessary tools and dependencies for efficient Java development.
## Role Dependencies
This role has dependencies on two other roles within the playbook:
1. **Java**: Ensures that Java, specifically the JDK (Java Development Kit), is installed and configured on the system. This is a critical prerequisite for running and developing Java applications.
2. **PC-Developer-Tools**: Establishes a base environment of developer tools which might include code editors, version control systems, and other utilities beneficial for a broad range of development activities.
## Purpose and Usage
The `pc-developer-tools-java` role is tailored to meet the needs of Java developers by ensuring that their systems are equipped with all necessary Java-specific tools. This role is particularly useful for software engineers, application developers, and students working with Java.
## Prerequisites
- **Ansible**: You must have Ansible installed on your system to use this role.
- **Appropriate Operating System**: While the role itself doesn't specify system requirements, the dependencies, especially the Java role, may be tailored for specific distributions like Arch Linux. Ensure your system is compatible with these requirements.
## Running the Role
To utilize this role:
1. Ensure the `cymais` repository is cloned to your machine.
2. Verify that the dependencies (`java` and `pc-developer-tools`) are correctly set up and configured in your playbook.
3. Navigate to the directory containing the `pc-developer-tools-java` role.
4. Execute the role using Ansible. Ensure that you have the appropriate permissions and environment for installing and configuring the development tools.
## Customization
You may customize this role by adding additional Java development tools or adjusting configurations to better suit your specific development needs.
## Support and Contributions
For support, feedback, or contributions to this role, such as adding more Java-related tools or enhancing the setup process, please open an issue or submit a pull request in the `cymais` repository. Contributions that improve the Java development environment setup are highly encouraged.

View File

@ -1,3 +0,0 @@
dependencies:
- java
- pc-developer-tools

View File

@ -1,34 +0,0 @@
# PC-Developer-Tools-PHP Role
## Overview
This README document is for the `pc-developer-tools-php` role within the `cymais` repository. This role is specifically designed to facilitate the setup of PHP development tools on personal computing environments.
## Role Contents
The `main.yml` file under the `pc-developer-tools-php` role is centered around the installation of essential PHP development tools:
1. **Install PHP Developer Tools**:
- The task uses the `community.general.pacman` module to install:
- `php`: The PHP language package, which is a popular general-purpose scripting language especially suited to web development.
## Dependencies
This role depends on:
- **pc-developer-tools**: Ensures that basic developer tools, which may include code editors, version control systems, and other common development utilities, are installed and available.
## Purpose and Usage
The `pc-developer-tools-php` role is tailored for web developers and programmers who work with PHP. By automating the installation of PHP, this role streamlines the setup process, making it easier for developers to start working on PHP-based projects or running PHP applications.
## Prerequisites
- **Ansible**: Required for running this role.
- **Arch Linux-based System**: Given that the role uses the `pacman` package manager, it is most suitable for systems based on Arch Linux or similar distributions.
## Running the Role
To use this role:
1. Clone the `cymais` repository to your system.
2. Navigate to the `roles/pc-developer-tools-php` directory within the repository.
3. Run the role using Ansible, ensuring you have the necessary permissions for installing packages.
## Customization
This role can be customized by adding more PHP-related packages or tools, depending on the specific needs of the user or the project.
## Support and Contributions
For support, feedback, or contributions, such as adding additional tools for PHP development or enhancing the existing setup, please open an issue or submit a pull request in the `cymais` repository. Contributions that enhance the PHP development environment are highly welcomed.

View File

@ -1,2 +0,0 @@
dependencies:
- pc-developer-tools

View File

@ -1,34 +0,0 @@
# PC-Developer-Tools-Python Role
## Overview
This README accompanies the `pc-developer-tools-python` role, which is part of the `cymais` repository. The role is dedicated to setting up Python development tools on personal computers.
## Role Contents
The `main.yml` file under the `pc-developer-tools-python` role includes the following task:
1. **Install Python Developer Tools**:
- The task employs the `community.general.pacman` module to install:
- `python`: The Python programming language package, essential for development in Python, one of the most popular and widely used programming languages today.
## Dependencies
This role depends on:
- **pc-developer-tools**: This ensures that basic developer tools, potentially including code editors, version control systems, and other utilities common in development environments, are already installed.
## Purpose and Usage
The `pc-developer-tools-python` role is specifically designed for developers who work with Python. Whether you are a beginner learning Python, a data scientist using Python for analysis, or a web developer creating applications in Python, this role provides the foundational Python package necessary for such activities.
## Prerequisites
- **Ansible**: Ansible must be installed on your system to run this role.
- **Arch Linux-based System**: Since the role utilizes the `pacman` package manager, it is tailored for Arch Linux or similar distributions.
## Running the Role
To use this role:
1. Clone the `cymais` repository to your machine.
2. Navigate to the `roles/pc-developer-tools-python` directory within the repository.
3. Execute the role using Ansible, ensuring you have the appropriate permissions to install software packages.
## Customization
You can customize this role by adding more Python-related tools, libraries, or frameworks to suit your specific development needs.
## Support and Contributions
For support, feedback, or contributions, such as adding additional Python development tools or enhancing the existing setup, please open an issue or submit a pull request in the `cymais` repository. Contributions that improve the Python development environment are highly encouraged.

View File

@ -1,2 +0,0 @@
dependencies:
- pc-developer-tools

View File

@ -1,5 +0,0 @@
- name: install python developer tools
community.general.pacman:
name:
- python
state: present

View File

@ -1,34 +0,0 @@
# PC-Developer-Tools Role
## Overview
This README document is for the `pc-developer-tools` role within the `cymais` repository. The role is designed to streamline the setup of essential development tools on personal computers, particularly for software development environments.
## Role Contents
The `main.yml` file under the `pc-developer-tools` role includes tasks focused on the installation of key development tools:
1. **Install Base Developer Tools**:
- This task uses the `community.general.pacman` module to install:
- `code`: Visual Studio Code (VS Code), a powerful and popular open-source code editor that is highly customizable and supports a wide range of programming languages.
## Dependencies
This role relies on:
- **pc-administrator-tools**: Ensures that core administrative tools are installed, which can be essential for various development tasks.
## Purpose and Usage
The `pc-developer-tools` role is tailored for developers who need a quick and efficient setup of a development environment on their personal computer. It is particularly useful for programmers, software engineers, and anyone involved in software development who prefers a streamlined and efficient workflow.
## Prerequisites
- **Ansible**: Required to run this role.
- **Arch Linux-based System**: The role is designed with the `pacman` package manager in mind, thus it is best suited for Arch Linux or similar distributions.
## Running the Role
To utilize this role:
1. Clone the `cymais` repository.
2. Navigate to the `roles/pc-developer-tools` directory.
3. Run the role using Ansible, making sure you have the necessary privileges for package installation.
## Customization
Users can customize this role by adding more development tools or editors according to their specific needs in the `main.yml` file.
## Support and Contributions
For support, feedback, or contributions (such as adding more developer tools or enhancing the existing setup), please open an issue or submit a pull request in the `cymais` repository. Contributions that improve the development environment setup are highly welcomed.

View File

@ -1,2 +0,0 @@
dependencies:
- pc-administrator-tools

View File

@ -1,36 +0,0 @@
# PC-Network-Analyze-Tools Role
## Overview
This README accompanies the `pc-network-analyze-tools` role within the `cymais` repository. This role is dedicated to installing key network analysis tools on personal computers.
## Role Contents
The `main.yml` file in the `pc-network-analyze-tools` role includes tasks for installing essential network analysis tools:
1. **Install Administrator Network Analyze Tools**:
- Utilizes the `community.general.pacman` module to install:
- `traceroute`: A network diagnostic tool for tracing the path that an IP packet follows to reach its destination.
- `wireshark-qt`: The Qt-based graphical interface for Wireshark, a network protocol analyzer.
- `wireshark-cli`: The command-line interface for Wireshark.
## Dependencies
This role relies on:
- **pc-administrator-tools**: Ensures that essential administrative tools, likely needed alongside network analysis tools, are installed.
## Purpose and Usage
The `pc-network-analyze-tools` role is tailored for network administrators, IT professionals, security analysts, and anyone who needs to analyze or troubleshoot network issues. These tools provide capabilities for detailed network packet inspection, route tracing, and understanding network performance issues.
## Prerequisites
- **Ansible**: Required to run this role.
- **Arch Linux-based System**: The 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-network-analyze-tools` directory.
3. Run the role using Ansible, making sure you have the necessary permissions for software installation.
## Customization
You can customize this role by adding or removing network analysis tools in the `main.yml` file, based on your specific needs or preferences.
## Support and Contributions
For support, feedback, or contributions, such as adding more tools or enhancing the current setup, please open an issue or submit a pull request in the `cymais` repository. Contributions that improve the network analysis capabilities of this role are highly encouraged.

View File

@ -1,2 +0,0 @@
dependencies:
- pc-administrator-tools

View File

@ -0,0 +1,29 @@
# Persona: Network Administrator🌐
## Description
This Ansible role installs core tools for network administrators and system engineers on Arch Linux. It focuses on diagnostics, protocol analysis, and connectivity testing in local and remote environments.
Learn more about Linux network tools on the [Arch Wiki - Network Tools](https://wiki.archlinux.org/title/Network_tools), [Wireshark Official Site](https://www.wireshark.org/), and [Traceroute](https://linux.die.net/man/8/traceroute).
## Overview
This role enhances the base `persona-administrator` role by adding tools specifically for analyzing, debugging, and monitoring network traffic and connectivity.
## Purpose
Designed for system and network administrators, this role provides quick access to powerful network tools, enabling efficient problem analysis and packet inspection.
## Features
- **Installs Network Utilities:** Includes `traceroute`, `wireshark-qt`, and `wireshark-cli`.
- **Packet Analysis Ready:** GUI and CLI tools for inspecting and decoding network traffic.
- **Persona Integration:** Extends the core administrator persona for network-focused tasks.
## 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,26 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs essential network analysis tools for system administrators on Linux."
license: "CyMaIS NonCommercial License (CNCL)"
license_url: "https://s.veen.world/cncl"
company: |
Kevin Veen-Birkenbach
Consulting & Coaching Solutions
https://www.veen.world
min_ansible_version: "2.9"
platforms:
- name: Archlinux
versions:
- rolling
galaxy_tags:
- network
- administration
- archlinux
- persona
- tools
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- persona-administrator

View File

@ -0,0 +1,29 @@
# Persona: Administrator 🛠️
## Description
This Ansible role installs a collection of essential tools for Linux system administrators on Arch Linux. It provides a base environment for package management, building software, archiving, duplication detection, and more.
Learn more about Linux system administration from the [Arch Wiki](https://wiki.archlinux.org/title/System_administration), [The Linux Documentation Project](https://tldp.org/), and the [GNU Core Utilities](https://www.gnu.org/software/coreutils/).
## Overview
Targeted at Arch Linux, this role sets up utilities commonly used by system administrators, such as `yay` for AUR management, `fdupes` for duplicate detection, `7z` support, `cmake`, and the full `base-devel` toolchain.
## Purpose
This role aims to streamline the configuration of a reliable administrative environment. It's intended for technical users who manage Linux systems regularly and want a reproducible, maintainable toolset.
## Features
- **Installs Core Admin Tools:** Includes `base-devel`, `yay`, `cmake`, `fdupes`, and `p7zip`.
- **Extensible via Dependencies:** Includes additional development tools (`git`, `make`, `gcc`) as dependencies.
- **Persona Integration:** Part of the CyMaIS Persona system for user-centric workstation roles.
## Credits 📝
Developed and maintained by **Kevin Veen-Birkenbach**.
Learn more at [www.veen.world](https://www.veen.world)
Part of the [CyMaIS Project](https://github.com/kevinveenbirkenbach/cymais)
License: [CyMaIS NonCommercial License (CNCL)](https://s.veen.world/cncl)

View File

@ -0,0 +1,28 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs essential tools for Linux system administrators on Linux."
license: "CyMaIS NonCommercial License (CNCL)"
license_url: "https://s.veen.world/cncl"
company: |
Kevin Veen-Birkenbach
Consulting & Coaching Solutions
https://www.veen.world
min_ansible_version: "2.9"
platforms:
- name: Archlinux
versions:
- rolling
galaxy_tags:
- system
- administration
- archlinux
- persona
- tools
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- client-git
- make
- gcc

View File

@ -3,7 +3,6 @@
name:
- base-devel
- yay
- gcc
- cmake
- fdupes
- p7zip

View File

@ -0,0 +1,29 @@
# Persona: Arduino Developer🔌
## Description
This Ansible role installs everything needed for Arduino development on Arch Linux. It includes the official Arduino IDE, documentation, and user group configurations to enable serial port access for uploading code to boards.
Learn more at the [Arduino Project Website](https://www.arduino.cc/), [Arch Wiki - Arduino](https://wiki.archlinux.org/title/Arduino), and on [Wikipedia](https://en.wikipedia.org/wiki/Arduino).
## Overview
Building upon the general developer persona, this role focuses on embedded and microcontroller development. It ensures that the system has the correct packages and permissions to work with Arduino boards via USB.
## Purpose
The role enables a ready-to-use Arduino development setup by installing necessary tools and configuring user permissions for serial access.
## Features
- **Installs Arduino IDE & Docs:** Provides GUI and offline references.
- **User Group Configuration:** Adds the developer to `uucp` and `lock` groups for serial communication.
- **Persona Integration:** Extends `persona-developer` with embedded-specific tools.
## 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,27 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs tools and permissions for Arduino development on Linux."
license: "CyMaIS NonCommercial License (CNCL)"
license_url: "https://s.veen.world/cncl"
company: |
Kevin Veen-Birkenbach
Consulting & Coaching Solutions
https://www.veen.world
min_ansible_version: "2.9"
platforms:
- name: Archlinux
versions:
- rolling
galaxy_tags:
- development
- arduino
- embedded
- microcontroller
- engineering
- persona
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- persona-developer

View File

@ -0,0 +1,37 @@
# Persona: Java Developer☕
## Description
This Ansible role sets up a complete environment for Java developers on Arch Linux. It ensures that the Java Development Kit (JDK) is installed and ready to use, building on a base developer environment to support software engineers, students, and professionals working with Java.
Learn more about [Java on Wikipedia](https://en.wikipedia.org/wiki/Java_(programming_language)), [OpenJDK](https://openjdk.org/), and [Java Development on the Arch Wiki](https://wiki.archlinux.org/title/Java).
## Overview
Part of the CyMaIS persona system, this role adds Java-specific tools and configurations on top of a general developer setup. It focuses on providing the foundation needed to develop, build, and run Java applications.
## Purpose
The role is ideal for users who regularly work with Java, whether for backend systems, Android development, or academic projects. It ensures that the necessary runtime and development tools are always present and correctly configured.
## Features
- **Installs Java Development Kit (JDK):** Ensures the system has Java ready to run and compile applications.
- **Persona Integration:** Extends the `persona-developer` role with Java-specific capabilities.
- **Ready for IDEs & Build Tools:** Prepares the base for tools like Maven, Gradle, or IntelliJ IDEA.
## Customization
You can extend this role to include more Java tooling such as:
- Maven (`maven`)
- Gradle (`gradle`)
- IDEs (like IntelliJ or Eclipse)
Just add packages or tasks based on your workflow.
## 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,29 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs tools and dependencies for Java development on Linux."
license: "CyMaIS NonCommercial License (CNCL)"
license_url: "https://s.veen.world/cncl"
company: |
Kevin Veen-Birkenbach
Consulting & Coaching Solutions
https://www.veen.world
min_ansible_version: "2.9"
platforms:
- name: Archlinux
versions:
- rolling
galaxy_tags:
- development
- java
- jdk
- software
- engineering
- archlinux
- persona
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- java
- persona-developer

View File

@ -0,0 +1,39 @@
# Persona: PHP Developer🐘
## Description
This Ansible role provides a minimal setup for PHP development on Arch Linux. It installs the PHP interpreter and establishes the foundation for web and backend development using PHP.
Explore more at the [PHP Official Site](https://www.php.net/), [Arch Wiki - PHP](https://wiki.archlinux.org/title/PHP), and [Wikipedia PHP](https://en.wikipedia.org/wiki/PHP).
## Overview
The `persona-developer-php` role extends the base developer persona by adding support for PHP development. It's ideal for backend developers, web engineers, and students working with PHP-based applications and frameworks.
## Purpose
To equip developer environments with PHP so that users can begin writing and running PHP scripts or building full-stack applications with common PHP frameworks like Laravel or Symfony.
## Features
- **Installs PHP:** Adds the official PHP interpreter from the Arch package repositories.
- **Lightweight & Extensible:** Can be extended with PHP modules, web servers, or frameworks.
- **Persona Integration:** Builds on the `persona-developer` role for consistent tooling and workflow.
## Customization
This role can be extended with:
- PHP extensions (`php-gd`, `php-pgsql`, etc.)
- Composer (`composer`)
- Web servers like Apache or NGINX
- Frameworks like Laravel or Symfony
Let the role grow as your stack does.
## 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,28 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs PHP and related development tools on Linux for PHP software engineering."
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:
- development
- php
- web
- software
- engineering
- archlinux
- persona
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- persona-developer

View File

@ -0,0 +1,36 @@
# Persona: Developer Python 🐍
## Description
This Ansible role sets up a Python development environment on Arch Linux. It includes Python itself, the `pip` package manager, and builds on the general developer persona to support scripting, application development, data science, and more.
Learn more at the [Python Official Site](https://www.python.org/), the [Arch Wiki - Python](https://wiki.archlinux.org/title/Python), and [Wikipedia Python](https://en.wikipedia.org/wiki/Python_(programming_language)).
## Overview
This role provides the essential tooling for Python developers, enabling immediate use of `python` and `pip` from the command line. It supports both general-purpose scripting and advanced software engineering workflows.
## Purpose
To simplify and standardize the provisioning of Python-ready environments for developers, students, data scientists, and automation engineers.
## Features
- **Installs Python and Pip:** Ensures the interpreter and package manager are available.
- **Persona Integration:** Extends `persona-developer` with Python-specific tools.
- **Foundation for Further Stacks:** Ideal starting point for Flask, Django, scientific computing, and automation.
## Customization
Easily extend this role with:
- Python virtualenv tools (`python-virtualenv`, `pyenv`)
- Popular libraries (`numpy`, `requests`, `flask`)
- Framework-specific roles (e.g., `persona-developer-python-django`)
## 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,29 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs tools and environment for Python development on Linux."
license: "CyMaIS NonCommercial License (CNCL)"
license_url: "https://s.veen.world/cncl"
company: |
Kevin Veen-Birkenbach
Consulting & Coaching Solutions
https://www.veen.world
min_ansible_version: "2.9"
platforms:
- name: Archlinux
versions:
- rolling
galaxy_tags:
- development
- python
- software
- engineering
- archlinux
- persona
- pip
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- persona-developer
- python-pip

View File

@ -0,0 +1,36 @@
# Persona: Developer Shell 🐚
## Description
This Ansible role sets up a minimal yet effective environment for Bash and shell script development on Arch Linux. It includes tools like `shellcheck` that help developers write clean, maintainable, and error-free shell scripts.
Learn more about [ShellCheck](https://www.shellcheck.net/), [Bash](https://www.gnu.org/software/bash/), and general shell scripting via the [Arch Wiki - Bash](https://wiki.archlinux.org/title/Bash).
## Overview
This role expands the general `persona-developer` by equipping the system with tools specifically aimed at writing and linting shell scripts. It's ideal for DevOps engineers, system administrators, and anyone automating systems with Bash.
## Purpose
The role ensures that the developer can safely and efficiently write shell scripts, catching bugs and stylistic issues early using static analysis.
## Features
- **Installs ShellCheck:** A linting tool for detecting issues in shell scripts.
- **Persona Integration:** Extends the general developer persona for Bash-centric workflows.
- **Lightweight & Fast:** Quick setup with room for future extensions.
## Customization
You can easily extend this role with:
- Additional linting or formatting tools
- Script documentation generators
- Shell environments like `zsh`, `fish`, or `nushell`
## 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,28 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs tools for Bash scripting and shell development on Linux."
license: "CyMaIS NonCommercial License (CNCL)"
license_url: "https://s.veen.world/cncl"
company: |
Kevin Veen-Birkenbach
Consulting & Coaching Solutions
https://www.veen.world
min_ansible_version: "2.9"
platforms:
- name: Archlinux
versions:
- rolling
galaxy_tags:
- development
- shell
- bash
- scripting
- archlinux
- persona
- automation
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- persona-developer

View File

@ -0,0 +1,29 @@
# Persona: Developer 👨‍💻
## Description
This Ansible role provides a minimal development environment for software engineers on Arch Linux. It installs core tools and editors necessary to begin building, editing, and managing source code projects.
Learn more about development environments on [Visual Studio Code](https://code.visualstudio.com/), the [Arch Wiki - Development Tools](https://wiki.archlinux.org/title/Development_tools), and general [Software Engineering](https://en.wikipedia.org/wiki/Software_engineering) on Wikipedia.
## Overview
This role builds upon the system administration and package management roles to deliver a clean, editor-ready base for developers. It ensures that essential developer tooling is ready to go.
## Purpose
To reduce setup time and ensure consistency across developer workstations, this role prepares a functional and extensible foundation for software engineering work.
## Features
- **Installs Visual Studio Code:** A powerful code editor with a wide plugin ecosystem.
- **Extensible Design:** Acts as a base layer for more specific development stacks (e.g., web, Python, embedded).
- **Persona Integration:** Extends the `persona-administrator` for technical users with a development focus.
## 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,28 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs a base development environment for software engineers on Linux."
license: "CyMaIS NonCommercial License (CNCL)"
license_url: "https://s.veen.world/cncl"
company: |
Kevin Veen-Birkenbach
Consulting & Coaching Solutions
https://www.veen.world
min_ansible_version: "2.9"
platforms:
- name: Archlinux
versions:
- rolling
galaxy_tags:
- development
- software
- engineering
- archlinux
- persona
- tools
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
dependencies:
- persona-administrator
- package-manager

View File

@ -1,7 +1,7 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Installs essential gaming utilities, launchers, and runtimes on Arch Linux."
description: "Installs essential gaming utilities, launchers, and runtimes on Linux."
license: "CyMaIS NonCommercial License (CNCL)"
license_url: "https://s.veen.world/cncl"
company: |

View File

@ -22,4 +22,5 @@ galaxy_info:
repository: "https://s.veen.world/cymais"
issue_tracker_url: "https://s.veen.world/cymaisissues"
documentation: "https://s.veen.world/cymais"
dependencies: []
dependencies:
- gcc

View File

@ -23,4 +23,5 @@ galaxy_info:
- pip
- update
- maintenance
dependencies: []
dependencies:
- python-pip

View File

@ -1,4 +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"
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

@ -5,7 +5,7 @@
include_role:
name: "{{ item }}"
loop:
- pc-administrator-tools
- persona-administrator
- driver-non-free
- name: pc-office