mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2024-11-24 05:31:04 +01:00
Compare commits
6 Commits
5b6d2b8c1a
...
d63e933f31
Author | SHA1 | Date | |
---|---|---|---|
d63e933f31 | |||
9eef79727b | |||
4d291a674c | |||
524c8d1931 | |||
cd4d789b3f | |||
65472eb480 |
71
README.md
71
README.md
@ -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):
|
||||||
|
|
||||||
|
10
playbook.yml
10
playbook.yml
@ -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
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
- git
|
- git
|
||||||
- backups-provider
|
- backups-provider
|
||||||
- systemd_notifier
|
- systemd-notifier
|
||||||
- cleanup-failed-docker-backups
|
- cleanup-failed-docker-backups
|
@ -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
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
- nginx
|
- nginx
|
||||||
- systemd_notifier
|
- systemd-notifier
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
- python-pip
|
- python-pip
|
||||||
- systemd_notifier
|
- systemd-notifier
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
- systemd_notifier
|
- systemd-notifier
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
- git
|
- git
|
||||||
- systemd_notifier
|
- systemd-notifier
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
- nginx-docker-reverse-proxy
|
- nginx-docker-reverse-proxy
|
||||||
- systemd_notifier
|
- systemd-notifier
|
||||||
|
@ -9,4 +9,4 @@ galaxy_info:
|
|||||||
- all
|
- all
|
||||||
dependencies:
|
dependencies:
|
||||||
- system-aur-helper
|
- system-aur-helper
|
||||||
- systemd_notifier
|
- systemd-notifier
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
- systemd_notifier
|
- systemd-notifier
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
- systemd_notifier
|
- systemd-notifier
|
||||||
|
@ -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.
|
@ -1,2 +1,2 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
- systemd_notifier
|
- systemd-notifier
|
||||||
|
@ -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).
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
- systemd_notifier
|
- systemd-notifier
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
- systemd_notifier
|
- systemd-notifier
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
- python-pip
|
- python-pip
|
||||||
- systemd_notifier
|
- systemd-notifier
|
||||||
|
35
roles/pc-gnucash/README.md
Normal file
35
roles/pc-gnucash/README.md
Normal 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).
|
5
roles/pc-gnucash/tasks/main.yml
Normal file
5
roles/pc-gnucash/tasks/main.yml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
- name: Install GnuCash
|
||||||
|
community.general.pacman:
|
||||||
|
name:
|
||||||
|
- gnucash
|
||||||
|
state: present
|
@ -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
|
@ -5,5 +5,5 @@
|
|||||||
- texlive-lang
|
- texlive-lang
|
||||||
- texlive-langextra
|
- texlive-langextra
|
||||||
- texlive-fontsextra
|
- texlive-fontsextra
|
||||||
- texlive-most
|
- texlive
|
||||||
state: present
|
state: present
|
@ -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}}"
|
||||||
|
@ -17,10 +17,3 @@
|
|||||||
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
|
|
@ -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
|
||||||
|
|
4
roles/systemd-notifier-email/handlers/main.yml
Normal file
4
roles/systemd-notifier-email/handlers/main.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
- name: "restart systemd-notifier-email service"
|
||||||
|
systemd:
|
||||||
|
name: systemd-notifier-email.service
|
||||||
|
daemon_reload: yes
|
18
roles/systemd-notifier-email/tasks/main.yml
Normal file
18
roles/systemd-notifier-email/tasks/main.yml
Normal 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
|
@ -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
|
@ -1 +1 @@
|
|||||||
systemd_notifier_email_folder: "{{path_administrator_scripts}}systemd_notifier_email/"
|
systemd_notifier_email_folder: "{{path_administrator_scripts}}systemd-notifier-email/"
|
@ -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
|
||||||
|
|
4
roles/systemd-notifier-telegram/handlers/main.yml
Normal file
4
roles/systemd-notifier-telegram/handlers/main.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
- name: "restart systemd-notifier-telegram service"
|
||||||
|
systemd:
|
||||||
|
name: systemd-notifier-telegram.service
|
||||||
|
daemon_reload: yes
|
21
roles/systemd-notifier-telegram/tasks/main.yml
Normal file
21
roles/systemd-notifier-telegram/tasks/main.yml
Normal 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"
|
2
roles/systemd-notifier-telegram/vars/main.yml
Normal file
2
roles/systemd-notifier-telegram/vars/main.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
systemd_telegram_folder: "/opt/ansible-roles/systemd-notifier-telegram/"
|
||||||
|
systemd_telegram_script: "{{systemd_telegram_folder}}systemd-notifier-telegram.sh"
|
@ -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
|
||||||
|
|
4
roles/systemd-notifier/meta/main.yml
Normal file
4
roles/systemd-notifier/meta/main.yml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
---
|
||||||
|
dependencies:
|
||||||
|
- role: systemd-notifier-telegram
|
||||||
|
- role: systemd-notifier-email
|
@ -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
|
@ -1,4 +0,0 @@
|
|||||||
---
|
|
||||||
dependencies:
|
|
||||||
- role: systemd_notifier_telegram
|
|
||||||
- role: systemd_notifier_email
|
|
@ -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
|
|
@ -1,4 +0,0 @@
|
|||||||
- name: "restart systemd_notifier_email service"
|
|
||||||
systemd:
|
|
||||||
name: systemd_notifier_email.service
|
|
||||||
daemon_reload: yes
|
|
@ -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
|
|
@ -1,4 +0,0 @@
|
|||||||
- name: "restart systemd_notifier_telegram service"
|
|
||||||
systemd:
|
|
||||||
name: systemd_notifier_telegram.service
|
|
||||||
daemon_reload: yes
|
|
@ -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"
|
|
@ -1,2 +0,0 @@
|
|||||||
systemd_telegram_folder: "/opt/ansible-roles/systemd_notifier_telegram/"
|
|
||||||
systemd_telegram_script: "{{systemd_telegram_folder}}systemd_notifier_telegram.sh"
|
|
33
roles/update-yay/README.md
Normal file
33
roles/update-yay/README.md
Normal 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.
|
2
roles/update-yay/meta/main.yml
Normal file
2
roles/update-yay/meta/main.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
dependencies:
|
||||||
|
- system-aur-helper
|
6
roles/update-yay/tasks/main.yml
Normal file
6
roles/update-yay/tasks/main.yml
Normal 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
|
@ -18,3 +18,14 @@
|
|||||||
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
|
Loading…
Reference in New Issue
Block a user