mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2024-11-24 13:41:03 +01:00
Compare commits
No commits in common. "d63e933f318167c8fa2c08a84abbdad6efbda000" and "5b6d2b8c1afd5fb4b5026894d3f49fe1a4382d55" have entirely different histories.
d63e933f31
...
5b6d2b8c1a
67
README.md
67
README.md
@ -73,7 +73,6 @@ 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-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-yay](./roles/update-yay/)**: Updates system packages using yay.
|
||||
|
||||
### Driver
|
||||
Deals with the installation and configuration of various hardware drivers, catering to a range of devices and needs.
|
||||
@ -100,37 +99,23 @@ Centers on VPN configurations, specifically for Wireguard, providing secure and
|
||||
|
||||
### 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.
|
||||
|
||||
#### 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 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
|
||||
### Development Environment
|
||||
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 Arduino](./roles/pc-developer-tools-arduino/)**: Setup for Arduino development.
|
||||
@ -138,12 +123,18 @@ 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 PHP](./roles/pc-developer-tools-php/)**: PHP 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.
|
||||
|
||||
### Server
|
||||
### 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/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.
|
||||
|
||||
#### Webserver
|
||||
## Server
|
||||
|
||||
### Webserver
|
||||
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.
|
||||
- **[Nginx](./roles/nginx/)**: Installs and configures Nginx web server.
|
||||
@ -155,7 +146,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.
|
||||
- **[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.
|
||||
- **[Docker](./roles/docker/)**: Basic Docker and Docker Compose setup.
|
||||
- **[Docker Akaunting](./roles/docker-akaunting/)**: Deployment of the Akaunting finance software.
|
||||
@ -180,14 +171,6 @@ Dedicated to Docker container setups and application management, offering a wide
|
||||
- **[Docker Wordpress](./roles/docker-wordpress/)**: Wordpress blog and website platform setup.
|
||||
- **[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
|
||||
**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,12 +235,6 @@
|
||||
roles:
|
||||
- pc-office
|
||||
|
||||
- name: personal computer for business
|
||||
hosts: business_personal_computer
|
||||
become: true
|
||||
roles:
|
||||
- pc-gnucash
|
||||
|
||||
- name: pc-designer-tools
|
||||
hosts: collection_designer
|
||||
become: true
|
||||
@ -271,11 +265,11 @@
|
||||
roles:
|
||||
- driver-intel
|
||||
|
||||
- name: pc-latex
|
||||
- name: latex
|
||||
hosts: latex
|
||||
become: true
|
||||
roles:
|
||||
- pc-latex
|
||||
- latex
|
||||
|
||||
- name: GNOME setup
|
||||
hosts: gnome
|
||||
|
@ -1,5 +1,5 @@
|
||||
dependencies:
|
||||
- git
|
||||
- backups-provider
|
||||
- systemd-notifier
|
||||
- systemd_notifier
|
||||
- cleanup-failed-docker-backups
|
@ -1,5 +1,5 @@
|
||||
dependencies:
|
||||
- git
|
||||
- systemd-notifier
|
||||
- systemd_notifier
|
||||
- cleanup-backups-timer
|
||||
- cleanup-failed-docker-backups
|
||||
|
@ -1,3 +1,3 @@
|
||||
dependencies:
|
||||
- nginx
|
||||
- systemd-notifier
|
||||
- systemd_notifier
|
||||
|
@ -1,3 +1,3 @@
|
||||
dependencies:
|
||||
- python-pip
|
||||
- systemd-notifier
|
||||
- systemd_notifier
|
||||
|
@ -1,2 +1,2 @@
|
||||
dependencies:
|
||||
- systemd-notifier
|
||||
- systemd_notifier
|
||||
|
@ -1,3 +1,3 @@
|
||||
dependencies:
|
||||
- git
|
||||
- systemd-notifier
|
||||
- systemd_notifier
|
||||
|
@ -1,3 +1,3 @@
|
||||
dependencies:
|
||||
- nginx-docker-reverse-proxy
|
||||
- systemd-notifier
|
||||
- systemd_notifier
|
||||
|
@ -9,4 +9,4 @@ galaxy_info:
|
||||
- all
|
||||
dependencies:
|
||||
- system-aur-helper
|
||||
- systemd-notifier
|
||||
- systemd_notifier
|
||||
|
@ -1,2 +1,2 @@
|
||||
dependencies:
|
||||
- systemd-notifier
|
||||
- systemd_notifier
|
||||
|
@ -1,2 +1,2 @@
|
||||
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.
|
||||
|
||||
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:
|
||||
- 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.
|
||||
|
||||
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
|
||||
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:
|
||||
- systemd-notifier
|
||||
- systemd_notifier
|
||||
|
@ -1,2 +1,2 @@
|
||||
dependencies:
|
||||
- systemd-notifier
|
||||
- systemd_notifier
|
||||
|
@ -1,3 +1,3 @@
|
||||
dependencies:
|
||||
- python-pip
|
||||
- systemd-notifier
|
||||
- systemd_notifier
|
||||
|
@ -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:
|
||||
|
||||
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-pc-latexextra`: Offers additional LaTeX packages.
|
||||
- `texlive-latexextra`: Offers additional LaTeX packages.
|
||||
- `texlive-lang`: Provides language support.
|
||||
- `texlive-langextra`: Includes extra language packs.
|
||||
- `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
|
||||
To execute this role:
|
||||
1. Ensure the `cymais` repository is cloned to your system.
|
||||
2. Navigate to the `roles/pc-latex` directory within the repository.
|
||||
2. Navigate to the `roles/latex` directory within the repository.
|
||||
3. Run the role using the appropriate Ansible commands.
|
||||
|
||||
## Customization
|
@ -5,5 +5,5 @@
|
||||
- texlive-lang
|
||||
- texlive-langextra
|
||||
- texlive-fontsextra
|
||||
- texlive
|
||||
- texlive-most
|
||||
state: present
|
@ -1,35 +0,0 @@
|
||||
# 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).
|
@ -1,5 +0,0 @@
|
||||
- name: Install GnuCash
|
||||
community.general.pacman:
|
||||
name:
|
||||
- gnucash
|
||||
state: present
|
@ -2,11 +2,11 @@
|
||||
community.general.pacman:
|
||||
name:
|
||||
- ttf-liberation
|
||||
- libreoffice-fresh
|
||||
- libreoffice-still
|
||||
state: present
|
||||
|
||||
- name: install libreoffice language packages
|
||||
community.general.pacman:
|
||||
name: "libreoffice-fresh-{{ item }}"
|
||||
name: "libreoffice-still-{{ item }}"
|
||||
state: present
|
||||
loop: "{{libreoffice_languages}}"
|
||||
|
@ -17,3 +17,10 @@
|
||||
line: 'aur_builder ALL=(ALL) NOPASSWD: /usr/bin/pacman'
|
||||
create: yes
|
||||
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,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"
|
@ -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,15 +1,15 @@
|
||||
# systemd-notifier Ansible Role
|
||||
# systemd_notifier Ansible Role
|
||||
|
||||
Author: Kevin Veen-Birkenbach (kevin@veen.world)
|
||||
|
||||
## 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:
|
||||
|
||||
- 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).
|
||||
|
||||
@ -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:
|
||||
|
||||
- `systemd-notifier-telegram`
|
||||
- `systemd-notifier-email`
|
||||
- `systemd_notifier_telegram`
|
||||
- `systemd_notifier_email`
|
||||
|
||||
## 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,17 +1,17 @@
|
||||
# systemd-notifier-email Ansible Role
|
||||
# systemd_notifier_email Ansible Role
|
||||
|
||||
Author: Kevin Veen-Birkenbach (kevin@veen.world)
|
||||
|
||||
## 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:
|
||||
|
||||
- Installation and configuration of an email sending service.
|
||||
- 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).
|
||||
|
||||
@ -30,7 +30,7 @@ The following variables can be customized in the role's `vars/main.yml` file:
|
||||
|
||||
## 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
|
||||
|
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]
|
||||
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
|
||||
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
|
||||
|
||||
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:
|
||||
|
||||
- Installation and configuration of a Telegram notifier service.
|
||||
- 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
|
||||
|
||||
@ -20,14 +20,14 @@ This role has the following requirements:
|
||||
|
||||
The following variables can be customized in the role's `vars/main.yml` file:
|
||||
|
||||
- `systemd_telegram_folder`: The path to the folder where Telegram-related scripts and configurations will be stored.
|
||||
- `systemd_telegram_script`: The full path to the systemd-telegram.sh script.
|
||||
- `systemd_notifier_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.
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
|
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,33 +0,0 @@
|
||||
# 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.
|
@ -1,2 +0,0 @@
|
||||
dependencies:
|
||||
- system-aur-helper
|
@ -1,6 +0,0 @@
|
||||
- name: upgrade the system using yay, only act on AUR packages.
|
||||
become: false
|
||||
kewlfft.aur.aur:
|
||||
upgrade: yes
|
||||
use: yay
|
||||
aur_only: yes
|
@ -18,14 +18,3 @@
|
||||
include_role:
|
||||
name: update-docker
|
||||
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