Compare commits

..

6 Commits

53 changed files with 244 additions and 136 deletions

View File

@ -73,6 +73,7 @@ Covers automated updates and maintenance for the system and its components, incl
- **[update-apt](./roles/update-apt/)**: Updates system packages using apt (for Debian-based systems). - **[update-apt](./roles/update-apt/)**: Updates system packages using apt (for Debian-based systems).
- **[update-docker](./roles/update-docker/)**: Keeps Docker containers up to date. - **[update-docker](./roles/update-docker/)**: Keeps Docker containers up to date.
- **[update-pacman](./roles/update-pacman/)**: Updates system packages using Pacman (for Arch-based systems). - **[update-pacman](./roles/update-pacman/)**: Updates system packages using Pacman (for Arch-based systems).
- **[update-yay](./roles/update-yay/)**: Updates system packages using yay.
### Driver ### Driver
Deals with the installation and configuration of various hardware drivers, catering to a range of devices and needs. Deals with the installation and configuration of various hardware drivers, catering to a range of devices and needs.
@ -99,23 +100,37 @@ Centers on VPN configurations, specifically for Wireguard, providing secure and
### Desktop and Personal Computing ### Desktop and Personal Computing
Offers a range of tools and software to enhance the personal computing experience on desktops and laptops, covering multimedia, productivity, and virtualization. Offers a range of tools and software to enhance the personal computing experience on desktops and laptops, covering multimedia, productivity, and virtualization.
- **[PC Bluray Player Tools](./roles/pc-bluray-player-tools/)**: Software for playing Blu-ray media on personal computers.
- **[PC Caffeine](./roles/pc-caffeine/)**: Utility to keep your computer awake.
- **[PC Designer Tools](./roles/pc-designer-tools/)**: Graphic design and 3D modeling software.
- **[PC Games](./roles/pc-games/)**: Installation of various computer games.
- **[PC Gnome](./roles/pc-gnome/)**: Installation and configuration of Gnome desktop environment.
- **[PC LibreOffice](./roles/pc-libreoffice/)**: Installation of the LibreOffice suite.
- **[PC Network Analyze Tools](./roles/pc-network-analyze-tools/)**: Network analysis and troubleshooting utilities.
- **[PC Nextcloud](./roles/pc-nextcloud/)**: Client setup for Nextcloud cloud storage service.
- **[PC Office](./roles/pc-office/)**: Various office productivity tools.
- **[PC Qbittorrent](./roles/pc-qbittorrent/)**: Installation of qBittorrent for file sharing.
- **[PC Spotify](./roles/pc-spotify/)**: Installation of Spotify for music streaming.
- **[PC Streaming Tools](./roles/pc-streaming-tools/)**: Software for video streaming and recording.
- **[PC Torbrowser](./roles/pc-torbrowser/)**: Installation of Tor Browser for anonymous browsing.
- **[PC Video Conference](./roles/pc-video-conference/)**: Video conferencing software setup.
- **[PC Virtual Box](./roles/pc-virtual-box/)**: VirtualBox setup for creating virtual machines.
### Development Environment #### Desktop
This category focuses on tools and configurations that enhance the desktop computing experience. It includes utilities to maintain system activity, and software for optimizing the desktop environment, ensuring a seamless and user-friendly interface for day-to-day computer usage.
- **[PC Caffeine](./roles/pc-caffeine/)**: Utility to keep your computer awake.
- **[PC Gnome](./roles/pc-gnome/)**: Installation and configuration of Gnome desktop environment.
#### Entertainment
Geared towards leisure and entertainment, this section includes software for playing Blu-ray media, accessing a vast collection of music, and installing various computer games. It's designed to enrich your personal computing experience with multimedia enjoyment and gaming.
- **[PC Bluray Player Tools](./roles/pc-bluray-player-tools/)**: Software for playing Blu-ray media on personal computers.
- **[PC Spotify](./roles/pc-spotify/)**: Installation of Spotify for music streaming.
- **[PC Games](./roles/pc-games/)**: Installation of various computer games.
#### Office
This segment caters to professional productivity needs. It encompasses a range of office-related software, from comprehensive office suites and video conferencing tools to cloud storage solutions, facilitating efficient and organized work in various office environments.
- **[PC LibreOffice](./roles/pc-libreoffice/)**: Installation of the LibreOffice suite.
- **[PC Office](./roles/pc-office/)**: Various office productivity tools.
- **[PC Video Conference](./roles/pc-video-conference/)**: Video conferencing software setup.
- **[PC Nextcloud](./roles/pc-nextcloud/)**: Client setup for Nextcloud cloud storage service.
- **[PC GnuCash](./roles/pc-gnucash/)**: Software to manage finances
#### Anonymization
Focusing on privacy and security, the Anonymization section offers tools for secure file sharing and anonymous web browsing. It includes software solutions that prioritize user privacy, ensuring secure online activities and data protection.
- **[PC Qbittorrent](./roles/pc-qbittorrent/)**: Installation of qBittorrent for file sharing.
- **[PC Torbrowser](./roles/pc-torbrowser/)**: Installation of Tor Browser for anonymous browsing.
#### Content Creation
Dedicated to creatives and content producers, this category provides tools essential for video streaming, recording, graphic design, and 3D modeling. It's tailored for those involved in digital content creation, offering the necessary software to bring creative projects to life.
- **[PC Streaming Tools](./roles/pc-streaming-tools/)**: Software for video streaming and recording.
- **[PC Designer Tools](./roles/pc-designer-tools/)**: Graphic design and 3D modeling software.
#### Development Environment
Targets software developers with tools and environments for various programming languages and development needs. Targets software developers with tools and environments for various programming languages and development needs.
- **[PC Developer Tools](./roles/pc-developer-tools/)**: Basic developer tools setup. - **[PC Developer Tools](./roles/pc-developer-tools/)**: Basic developer tools setup.
- **[PC Developer Tools Arduino](./roles/pc-developer-tools-arduino/)**: Setup for Arduino development. - **[PC Developer Tools Arduino](./roles/pc-developer-tools-arduino/)**: Setup for Arduino development.
@ -123,18 +138,12 @@ Targets software developers with tools and environments for various programming
- **[PC Developer Tools Java](./roles/pc-developer-tools-java/)**: Java development environment setup. - **[PC Developer Tools Java](./roles/pc-developer-tools-java/)**: Java development environment setup.
- **[PC Developer Tools PHP](./roles/pc-developer-tools-php/)**: PHP development environment setup. - **[PC Developer Tools PHP](./roles/pc-developer-tools-php/)**: PHP development environment setup.
- **[PC Developer Tools Python](./roles/pc-developer-tools-python/)**: Python development environment setup. - **[PC Developer Tools Python](./roles/pc-developer-tools-python/)**: Python development environment setup.
- **[PC Virtual Box](./roles/pc-virtual-box/)**: VirtualBox setup for creating virtual machines.
- **[PC Network Analyze Tools](./roles/pc-network-analyze-tools/)**: Network analysis and troubleshooting utilities.
### Other ### Server
Encompasses miscellaneous essential tools and systems, including AUR helper, spellchecking, typesetting, and package management.
- **[System-Aur-Helper](./roles/system-aur-helper/)**: Installs and configures AUR helper (yay).
- **[Hunspell](./roles/hunspell/)**: Installation of Hunspell spellchecker.
- **[Latex](./roles/latex/)**: Installation of LaTeX typesetting system.
- **[Java](./roles/java/)**: Installs Java Development Kit (JDK).
- **[Python Pip](./roles/python-pip/)**: Installation of Python Pip package manager.
## Server #### Webserver
### Webserver
Focuses on web server roles and applications, covering SSL certificates, Nginx configurations, reverse proxies, and email services. Focuses on web server roles and applications, covering SSL certificates, Nginx configurations, reverse proxies, and email services.
- **[Letsencrypt](./roles/letsencrypt/)**: Configures Let's Encrypt for SSL certificates. - **[Letsencrypt](./roles/letsencrypt/)**: Configures Let's Encrypt for SSL certificates.
- **[Nginx](./roles/nginx/)**: Installs and configures Nginx web server. - **[Nginx](./roles/nginx/)**: Installs and configures Nginx web server.
@ -146,7 +155,7 @@ Focuses on web server roles and applications, covering SSL certificates, Nginx c
- **[Certbot Nginx](./roles/certbot-nginx/)**: Integrates Certbot with Nginx for SSL certificates. - **[Certbot Nginx](./roles/certbot-nginx/)**: Integrates Certbot with Nginx for SSL certificates.
- **[Postfix](./roles/postfix/)**: Setup for the Postfix mail transfer agent. - **[Postfix](./roles/postfix/)**: Setup for the Postfix mail transfer agent.
### Docker and Containerization #### Docker and Containerization
Dedicated to Docker container setups and application management, offering a wide array of software deployment options. Dedicated to Docker container setups and application management, offering a wide array of software deployment options.
- **[Docker](./roles/docker/)**: Basic Docker and Docker Compose setup. - **[Docker](./roles/docker/)**: Basic Docker and Docker Compose setup.
- **[Docker Akaunting](./roles/docker-akaunting/)**: Deployment of the Akaunting finance software. - **[Docker Akaunting](./roles/docker-akaunting/)**: Deployment of the Akaunting finance software.
@ -171,6 +180,14 @@ Dedicated to Docker container setups and application management, offering a wide
- **[Docker Wordpress](./roles/docker-wordpress/)**: Wordpress blog and website platform setup. - **[Docker Wordpress](./roles/docker-wordpress/)**: Wordpress blog and website platform setup.
- **[Docker YOURLS](./roles/docker-yourls/)**: Setup for YOURLS, a URL shortening service. - **[Docker YOURLS](./roles/docker-yourls/)**: Setup for YOURLS, a URL shortening service.
### Other
Encompasses miscellaneous essential tools and systems, including AUR helper, spellchecking, typesetting, and package management.
- **[System-Aur-Helper](./roles/system-aur-helper/)**: Installs and configures AUR helper (yay).
- **[Hunspell](./roles/hunspell/)**: Installation of Hunspell spellchecker.
- **[Latex](./roles/pc-latex/)**: Installation of LaTeX typesetting system.
- **[Java](./roles/java/)**: Installs Java Development Kit (JDK).
- **[Python Pip](./roles/python-pip/)**: Installation of Python Pip package manager.
## Key Advantages of CyMaIS ## Key Advantages of CyMaIS
**CyMaIS - Cyber Master Infrastructure Solution** is a comprehensive and agile tool designed for efficient IT infrastructure management and deployment. Here are its key advantages and unique selling points (USP): **CyMaIS - Cyber Master Infrastructure Solution** is a comprehensive and agile tool designed for efficient IT infrastructure management and deployment. Here are its key advantages and unique selling points (USP):

View File

@ -235,6 +235,12 @@
roles: roles:
- pc-office - pc-office
- name: personal computer for business
hosts: business_personal_computer
become: true
roles:
- pc-gnucash
- name: pc-designer-tools - name: pc-designer-tools
hosts: collection_designer hosts: collection_designer
become: true become: true
@ -265,11 +271,11 @@
roles: roles:
- driver-intel - driver-intel
- name: latex - name: pc-latex
hosts: latex hosts: latex
become: true become: true
roles: roles:
- latex - pc-latex
- name: GNOME setup - name: GNOME setup
hosts: gnome hosts: gnome

View File

@ -1,5 +1,5 @@
dependencies: dependencies:
- git - git
- backups-provider - backups-provider
- systemd_notifier - systemd-notifier
- cleanup-failed-docker-backups - cleanup-failed-docker-backups

View File

@ -1,5 +1,5 @@
dependencies: dependencies:
- git - git
- systemd_notifier - systemd-notifier
- cleanup-backups-timer - cleanup-backups-timer
- cleanup-failed-docker-backups - cleanup-failed-docker-backups

View File

@ -1,3 +1,3 @@
dependencies: dependencies:
- nginx - nginx
- systemd_notifier - systemd-notifier

View File

@ -1,3 +1,3 @@
dependencies: dependencies:
- python-pip - python-pip
- systemd_notifier - systemd-notifier

View File

@ -1,2 +1,2 @@
dependencies: dependencies:
- systemd_notifier - systemd-notifier

View File

@ -1,3 +1,3 @@
dependencies: dependencies:
- git - git
- systemd_notifier - systemd-notifier

View File

@ -1,3 +1,3 @@
dependencies: dependencies:
- nginx-docker-reverse-proxy - nginx-docker-reverse-proxy
- systemd_notifier - systemd-notifier

View File

@ -9,4 +9,4 @@ galaxy_info:
- all - all
dependencies: dependencies:
- system-aur-helper - system-aur-helper
- systemd_notifier - systemd-notifier

View File

@ -1,2 +1,2 @@
dependencies: dependencies:
- systemd_notifier - systemd-notifier

View File

@ -1,2 +1,2 @@
dependencies: dependencies:
- systemd_notifier - systemd-notifier

View File

@ -18,4 +18,4 @@ This Ansible role is designed to ensure the health of Docker containers running
To use this role, include it in your playbook and set the `path_administrator_scripts` variable to the desired path for the health check scripts. To use this role, include it in your playbook and set the `path_administrator_scripts` variable to the desired path for the health check scripts.
Ensure that the `systemd_notifier` dependency is satisfied for error notifications. Ensure that the `systemd-notifier` dependency is satisfied for error notifications.

View File

@ -1,2 +1,2 @@
dependencies: dependencies:
- systemd_notifier - systemd-notifier

View File

@ -18,7 +18,7 @@ This role checks for anonymous Docker volumes that are not bound to a container
Include this role in your playbook and set the `path_administrator_scripts` variable to determine where the health check scripts should reside. Define `whitelisted_anonymous_volumes` in `vars/main.yml` with an array of volume IDs that should be ignored by the health check. Include this role in your playbook and set the `path_administrator_scripts` variable to determine where the health check scripts should reside. Define `whitelisted_anonymous_volumes` in `vars/main.yml` with an array of volume IDs that should be ignored by the health check.
Ensure that the `systemd_notifier` dependency is satisfied for error notifications. Ensure that the `systemd-notifier` dependency is satisfied for error notifications.
## Created with AI ## Created with AI
This script was created with the help of AI. The full conversation you find [here](https://chat.openai.com/share/1fa829f1-f001-4111-b1d4-1b2e3d583da2). This script was created with the help of AI. The full conversation you find [here](https://chat.openai.com/share/1fa829f1-f001-4111-b1d4-1b2e3d583da2).

View File

@ -1,2 +1,2 @@
dependencies: dependencies:
- systemd_notifier - systemd-notifier

View File

@ -1,2 +1,2 @@
dependencies: dependencies:
- systemd_notifier - systemd-notifier

View File

@ -1,3 +1,3 @@
dependencies: dependencies:
- python-pip - python-pip
- systemd_notifier - systemd-notifier

View File

@ -0,0 +1,35 @@
# GnuCash Installation Role
## Overview
This Ansible role is responsible for installing GnuCash, a free and open-source financial management software, on systems utilizing the Pacman package manager. It's particularly useful for setting up GnuCash in a Linux environment with minimal manual intervention.
## Role: pc-gnucash
The `pc-gnucash` role ensures that GnuCash is installed and maintained at its latest available version in the Pacman repositories.
## Requirements
- Target systems should be running a Linux distribution that uses the Pacman package manager.
- Ansible should be installed and configured on the system initiating the playbook.
## Role Tasks
- `main.yml`: The main task file that handles the installation of GnuCash.
### Task Details
- **Install GnuCash**: This task uses the `community.general.pacman` module to install GnuCash from the Pacman repositories.
## Usage
To use this role, include it in your playbook and run the playbook using the Ansible command. Ensure that your target systems are accessible and properly configured for Ansible automation.
## Example Playbook
An example of how to use this role in your playbook:
```yaml
- hosts: your_target_group
roles:
- pc-gnucash
```
## License
This playbook is licensed under the terms of the [GNU Affero General Public License v3.0](https://www.gnu.org/licenses/agpl-3.0).
## Author Information
This role was created by [Kevin Veen-Birkenbach](https://cybermaster.space).

View File

@ -0,0 +1,5 @@
- name: Install GnuCash
community.general.pacman:
name:
- gnucash
state: present

View File

@ -7,7 +7,7 @@ Welcome to the LaTeX role within the `cymais` repository. It focuses on setting
The `main.yml` file in this role automates the installation of key LaTeX packages: The `main.yml` file in this role automates the installation of key LaTeX packages:
1. **Install LaTeX Software**: This task uses the `community.general.pacman` module to install a range of LaTeX packages, ensuring a robust setup for LaTeX users. The packages include: 1. **Install LaTeX Software**: This task uses the `community.general.pacman` module to install a range of LaTeX packages, ensuring a robust setup for LaTeX users. The packages include:
- `texlive-latexextra`: Offers additional LaTeX packages. - `texlive-pc-latexextra`: Offers additional LaTeX packages.
- `texlive-lang`: Provides language support. - `texlive-lang`: Provides language support.
- `texlive-langextra`: Includes extra language packs. - `texlive-langextra`: Includes extra language packs.
- `texlive-fontsextra`: Adds a comprehensive collection of fonts. - `texlive-fontsextra`: Adds a comprehensive collection of fonts.
@ -26,7 +26,7 @@ For an extensive list of available LaTeX packages and customization options, you
## Running the Role ## Running the Role
To execute this role: To execute this role:
1. Ensure the `cymais` repository is cloned to your system. 1. Ensure the `cymais` repository is cloned to your system.
2. Navigate to the `roles/latex` directory within the repository. 2. Navigate to the `roles/pc-latex` directory within the repository.
3. Run the role using the appropriate Ansible commands. 3. Run the role using the appropriate Ansible commands.
## Customization ## Customization

View File

@ -5,5 +5,5 @@
- texlive-lang - texlive-lang
- texlive-langextra - texlive-langextra
- texlive-fontsextra - texlive-fontsextra
- texlive-most - texlive
state: present state: present

View File

@ -2,11 +2,11 @@
community.general.pacman: community.general.pacman:
name: name:
- ttf-liberation - ttf-liberation
- libreoffice-still - libreoffice-fresh
state: present state: present
- name: install libreoffice language packages - name: install libreoffice language packages
community.general.pacman: community.general.pacman:
name: "libreoffice-still-{{ item }}" name: "libreoffice-fresh-{{ item }}"
state: present state: present
loop: "{{libreoffice_languages}}" loop: "{{libreoffice_languages}}"

View File

@ -16,11 +16,4 @@
path: /etc/sudoers.d/11-install-aur_builder path: /etc/sudoers.d/11-install-aur_builder
line: 'aur_builder ALL=(ALL) NOPASSWD: /usr/bin/pacman' line: 'aur_builder ALL=(ALL) NOPASSWD: /usr/bin/pacman'
create: yes create: yes
validate: 'visudo -cf %s' validate: 'visudo -cf %s'
- name: Upgrade the system using yay, only act on AUR packages.
become: false
kewlfft.aur.aur:
upgrade: yes
use: yay
aur_only: yes

View File

@ -1,17 +1,17 @@
# systemd_notifier_email Ansible Role # systemd-notifier-email Ansible Role
Author: Kevin Veen-Birkenbach (kevin@veen.world) Author: Kevin Veen-Birkenbach (kevin@veen.world)
## Description ## Description
This Ansible role installs the necessary components for sending email notifications through systemd when any service fails. It configures the `systemd_notifier_email` service and handles the setup of email parameters and templates. This Ansible role installs the necessary components for sending email notifications through systemd when any service fails. It configures the `systemd-notifier-email` service and handles the setup of email parameters and templates.
Features include: Features include:
- Installation and configuration of an email sending service. - Installation and configuration of an email sending service.
- Customizable email templates for service failure notifications. - Customizable email templates for service failure notifications.
This role is part of the `systemd_notifier` suite, which provides a comprehensive solution for service failure notifications in a systemd environment. This role is part of the `systemd-notifier` suite, which provides a comprehensive solution for service failure notifications in a systemd environment.
This role was created as part of a conversation with OpenAI's ChatGPT and can be found [here](https://chat.openai.com/share/96e4ca12-0888-41c0-9cfc-29c0180f0dba). This role was created as part of a conversation with OpenAI's ChatGPT and can be found [here](https://chat.openai.com/share/96e4ca12-0888-41c0-9cfc-29c0180f0dba).
@ -30,7 +30,7 @@ The following variables can be customized in the role's `vars/main.yml` file:
## Usage ## Usage
To use this role, include it as a dependency in your playbook or role that requires email notifications. Ensure that the `systemd_notifier_email` role is correctly referenced and configured. To use this role, include it as a dependency in your playbook or role that requires email notifications. Ensure that the `systemd-notifier-email` role is correctly referenced and configured.
## License ## License

View File

@ -0,0 +1,4 @@
- name: "restart systemd-notifier-email service"
systemd:
name: systemd-notifier-email.service
daemon_reload: yes

View File

@ -0,0 +1,18 @@
- name: install smtp-forwarder
pacman: name=smtp-forwarder state=present
- name: configure msmtprc.conf.j2
template: src=msmtprc.conf.j2 dest=/root/.msmtprc
- name: "create {{systemd_notifier_email_folder}}"
file:
path: "{{systemd_notifier_email_folder}}"
state: directory
mode: 0755
- name: configure systemd-notifier-email.sh
template: src=systemd-notifier-email.sh.j2 dest={{systemd_notifier_email_folder}}systemd-notifier-email.sh
- name: configure systemd-notifier-email.service
template: src=systemd-notifier-email@.service.j2 dest=/etc/systemd/system/systemd-notifier-email@.service
notify: restart systemd-notifier-email service

View File

@ -3,6 +3,6 @@ Description=status email for %i to user
[Service] [Service]
Type=oneshot Type=oneshot
ExecStart=/bin/bash {{systemd_notifier_email_folder}}systemd_notifier_email.sh %i ExecStart=/bin/bash {{systemd_notifier_email_folder}}systemd-notifier-email.sh %i
User=root User=root
Group=systemd-journal Group=systemd-journal

View File

@ -1 +1 @@
systemd_notifier_email_folder: "{{path_administrator_scripts}}systemd_notifier_email/" systemd_notifier_email_folder: "{{path_administrator_scripts}}systemd-notifier-email/"

View File

@ -1,13 +1,13 @@
## Description ## Description
This Ansible role installs the necessary components for sending Telegram notifications through systemd when any service fails. It configures the `systemd_notifier_telegram` service and handles the setup of Telegram bot parameters and notification templates. This Ansible role installs the necessary components for sending Telegram notifications through systemd when any service fails. It configures the `systemd-notifier-telegram` service and handles the setup of Telegram bot parameters and notification templates.
Features include: Features include:
- Installation and configuration of a Telegram notifier service. - Installation and configuration of a Telegram notifier service.
- Customizable templates for Telegram messages sent on service failure. - Customizable templates for Telegram messages sent on service failure.
This role is part of the `systemd_notifier` suite, which provides a comprehensive solution for service failure notifications in a systemd environment. This role is part of the `systemd-notifier` suite, which provides a comprehensive solution for service failure notifications in a systemd environment.
## Requirements ## Requirements
@ -20,14 +20,14 @@ This role has the following requirements:
The following variables can be customized in the role's `vars/main.yml` file: The following variables can be customized in the role's `vars/main.yml` file:
- `systemd_notifier_telegram_folder`: The path to the folder where Telegram-related scripts and configurations will be stored. - `systemd_telegram_folder`: The path to the folder where Telegram-related scripts and configurations will be stored.
- `systemd_notifier_telegram_script`: The full path to the systemd-telegram.sh script. - `systemd_telegram_script`: The full path to the systemd-telegram.sh script.
This role was created as part of a conversation with OpenAI's ChatGPT and can be found [here](https://chat.openai.com/share/96e4ca12-0888-41c0-9cfc-29c0180f0dba). This role was created as part of a conversation with OpenAI's ChatGPT and can be found [here](https://chat.openai.com/share/96e4ca12-0888-41c0-9cfc-29c0180f0dba).
## Usage ## Usage
To use this role, include it as a dependency in your playbook or role that requires Telegram notifications. Ensure that the `systemd_notifier_telegram` role is correctly referenced and configured. To use this role, include it as a dependency in your playbook or role that requires Telegram notifications. Ensure that the `systemd-notifier-telegram` role is correctly referenced and configured.
## License ## License

View File

@ -0,0 +1,4 @@
- name: "restart systemd-notifier-telegram service"
systemd:
name: systemd-notifier-telegram.service
daemon_reload: yes

View File

@ -0,0 +1,21 @@
- name: install curl
pacman:
name: curl
state: present
- name: Create a directory with a subdirectory
ansible.builtin.file:
path: "{{systemd_telegram_folder}}"
state: directory
mode: '0755'
- name: configure systemd-notifier-telegram.sh
template:
src: systemd-notifier-telegram.sh.j2
dest: "{{ systemd_telegram_script }}"
- name: configure systemd-notifier-telegram.service
template:
src: systemd-notifier-telegram@.service.j2
dest: "/etc/systemd/system/systemd-notifier-telegram@.service"
notify: "restart systemd-notifier-telegram service"

View File

@ -0,0 +1,2 @@
systemd_telegram_folder: "/opt/ansible-roles/systemd-notifier-telegram/"
systemd_telegram_script: "{{systemd_telegram_folder}}systemd-notifier-telegram.sh"

View File

@ -1,15 +1,15 @@
# systemd_notifier Ansible Role # systemd-notifier Ansible Role
Author: Kevin Veen-Birkenbach (kevin@veen.world) Author: Kevin Veen-Birkenbach (kevin@veen.world)
## Description ## Description
This Ansible role installs a systemd service that sends notifications via both `systemd_notifier_telegram` and `systemd_notifier_email` when any service fails. This Ansible role installs a systemd service that sends notifications via both `systemd-notifier-telegram` and `systemd-notifier-email` when any service fails.
Features include: Features include:
- Configuration of a systemd service for notification. - Configuration of a systemd service for notification.
- Dependency management for the `systemd_notifier_telegram` and `systemd_notifier_email` roles. - Dependency management for the `systemd-notifier-telegram` and `systemd-notifier-email` roles.
This role was created as part of a conversation with OpenAI's ChatGPT and can be found [here](https://chat.openai.com/share/96e4ca12-0888-41c0-9cfc-29c0180f0dba). This role was created as part of a conversation with OpenAI's ChatGPT and can be found [here](https://chat.openai.com/share/96e4ca12-0888-41c0-9cfc-29c0180f0dba).
@ -21,8 +21,8 @@ This Ansible role is licensed under the AGPL v3 License. See the LICENSE file fo
This role has the following dependencies: This role has the following dependencies:
- `systemd_notifier_telegram` - `systemd-notifier-telegram`
- `systemd_notifier_email` - `systemd-notifier-email`
## Features ## Features

View File

@ -0,0 +1,4 @@
---
dependencies:
- role: systemd-notifier-telegram
- role: systemd-notifier-email

View File

@ -0,0 +1,8 @@
[Unit]
Description=Notifier for %i
[Service]
Type=oneshot
ExecStart=/usr/bin/systemctl start systemd-notifier-telegram@%i.service systemd-notifier-email@%i.service
User=root
Group=systemd-journal

View File

@ -1,4 +0,0 @@
---
dependencies:
- role: systemd_notifier_telegram
- role: systemd_notifier_email

View File

@ -1,8 +0,0 @@
[Unit]
Description=Notifier for %i
[Service]
Type=oneshot
ExecStart=/usr/bin/systemctl start systemd_notifier_telegram@%i.service systemd_notifier_email@%i.service
User=root
Group=systemd-journal

View File

@ -1,4 +0,0 @@
- name: "restart systemd_notifier_email service"
systemd:
name: systemd_notifier_email.service
daemon_reload: yes

View File

@ -1,18 +0,0 @@
- name: install smtp-forwarder
pacman: name=smtp-forwarder state=present
- name: configure msmtprc.conf.j2
template: src=msmtprc.conf.j2 dest=/root/.msmtprc
- name: "create {{systemd_notifier_email_folder}}"
file:
path: "{{systemd_notifier_email_folder}}"
state: directory
mode: 0755
- name: configure systemd_notifier_email.sh
template: src=systemd_notifier_email.sh.j2 dest={{systemd_notifier_email_folder}}systemd_notifier_email.sh
- name: configure systemd_notifier_email.service
template: src=systemd_notifier_email@.service.j2 dest=/etc/systemd/system/systemd_notifier_email@.service
notify: restart systemd_notifier_email service

View File

@ -1,4 +0,0 @@
- name: "restart systemd_notifier_telegram service"
systemd:
name: systemd_notifier_telegram.service
daemon_reload: yes

View File

@ -1,21 +0,0 @@
- name: install curl
pacman:
name: curl
state: present
- name: Create a directory with a subdirectory
ansible.builtin.file:
path: "{{systemd_telegram_folder}}"
state: directory
mode: '0755'
- name: configure systemd_notifier_telegram.sh
template:
src: systemd_notifier_telegram.sh.j2
dest: "{{ systemd_telegram_script }}"
- name: configure systemd_notifier_telegram.service
template:
src: systemd_notifier_telegram@.service.j2
dest: "/etc/systemd/system/systemd_notifier_telegram@.service"
notify: "restart systemd_notifier_telegram service"

View File

@ -1,2 +0,0 @@
systemd_telegram_folder: "/opt/ansible-roles/systemd_notifier_telegram/"
systemd_telegram_script: "{{systemd_telegram_folder}}systemd_notifier_telegram.sh"

View File

@ -0,0 +1,33 @@
# Ansible Role: update-yay
This Ansible role is designed for updating AUR packages on Arch Linux systems using `yay`. It automates the process of upgrading AUR packages, ensuring that your system stays up-to-date with the latest versions available in the Arch User Repository (AUR).
## Requirements
The role requires that `yay` (Yet Another Yaourt) - an AUR helper - is already installed on the system. If `yay` is not installed, the role `system-aur-helper` should handle its installation.
## Role Dependencies
- `system-aur-helper`: This dependency is essential for ensuring that `yay` is available on the system. If `yay` is not installed, this role will manage its installation.
## Role Variables
There are no specific variables that need to be defined by the user for this role. The role utilizes the `kewlfft.aur.aur` module with predefined parameters to manage AUR packages.
## Role Tasks
- **Upgrade AUR Packages**: The main task of this role is to upgrade the system using `yay`, focusing solely on AUR packages. This task does not require elevated privileges (become: false).
## Example Playbook
Here's an example of how to include the `update-yay` role in your playbook:
```yaml
- hosts: all
roles:
- role: update-yay
```
## Author Information
This role was created by Kevin Veen-Birkenbach.

View File

@ -0,0 +1,2 @@
dependencies:
- system-aur-helper

View File

@ -0,0 +1,6 @@
- name: upgrade the system using yay, only act on AUR packages.
become: false
kewlfft.aur.aur:
upgrade: yes
use: yay
aur_only: yes

View File

@ -17,4 +17,15 @@
- name: "Update Docker Images" - name: "Update Docker Images"
include_role: include_role:
name: update-docker name: update-docker
when: docker_compose_directory_stat.stat.exists when: docker_compose_directory_stat.stat.exists
- name: "Check if yay is installed"
command: which yay
ignore_errors: yes
register: yay_installed
changed_when: false
- name: "Update with yay"
include_role:
name: update-yay
when: yay_installed.rc == 0