mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-08-29 15:06:26 +02:00
Shorted generic- to gen-
This commit is contained in:
32
roles/gen-certbot/README.md
Normal file
32
roles/gen-certbot/README.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# Certbot
|
||||
|
||||
## 🔥 Description
|
||||
|
||||
This Ansible role automates the installation and configuration of [Certbot](https://certbot.eff.org/), a free and open-source tool for automating the deployment of [Let's Encrypt](https://letsencrypt.org/) certificates. It also handles the setup of DNS plugins for ACME challenges.
|
||||
|
||||
## 📖 Overview
|
||||
|
||||
Optimized for Archlinux, this role ensures secure SSL/TLS certificate generation with minimal manual intervention. It supports both `webroot` and `DNS-01` validation methods, providing flexibility based on your infrastructure needs.
|
||||
|
||||
### Key Features
|
||||
- **Automatic Installation:** Installs `certbot` and the necessary DNS plugin via pacman.
|
||||
- **Dynamic DNS Plugin Support:** Automatically installs the correct `certbot-dns-<provider>` package based on your selected challenge method.
|
||||
- **Credential Management:** Creates secure credential files for DNS API tokens when using DNS-01 validation.
|
||||
- **Idempotent Execution:** Tasks are intelligently executed only once per playbook run.
|
||||
|
||||
## 🎯 Purpose
|
||||
|
||||
The Certbot role provides a ready-to-use, automated solution for SSL/TLS management in your infrastructure. Whether you're managing traditional servers or containerized environments, this role ensures your certificates are always in place and valid.
|
||||
|
||||
## 🚀 Features
|
||||
|
||||
- **Certbot Installation:** Ensures the latest version of Certbot is installed.
|
||||
- **DNS Plugin Installation:** Installs a matching plugin based on your configured ACME challenge method.
|
||||
- **Credential Directory Management:** Creates a secured `/etc/certbot` directory with proper permissions.
|
||||
- **API Token File Setup:** Manages API token files securely for DNS challenge authentication.
|
||||
|
||||
## 🔗 Learn More
|
||||
|
||||
- [Certbot Official Website](https://certbot.eff.org/)
|
||||
- [Let's Encrypt](https://letsencrypt.org/)
|
||||
- [ACME Challenge Types (Wikipedia)](https://en.wikipedia.org/wiki/Automated_Certificate_Management_Environment)
|
28
roles/gen-certbot/meta/main.yml
Normal file
28
roles/gen-certbot/meta/main.yml
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
galaxy_info:
|
||||
author: "Kevin Veen-Birkenbach"
|
||||
description: "Automates the installation and configuration of Certbot for SSL/TLS certificate management"
|
||||
license: "CyMaIS NonCommercial License (CNCL)"
|
||||
license_url: "https://s.veen.world/cncl"
|
||||
company: |
|
||||
Kevin Veen-Birkenbach
|
||||
Consulting & Coaching Solutions
|
||||
https://www.veen.world
|
||||
min_ansible_version: "2.9"
|
||||
platforms:
|
||||
- name: Archlinux
|
||||
versions:
|
||||
- rolling
|
||||
galaxy_tags:
|
||||
- certbot
|
||||
- ssl
|
||||
- tls
|
||||
- https
|
||||
- encryption
|
||||
- letsencrypt
|
||||
- acme
|
||||
- automation
|
||||
repository: "https://s.veen.world/cymais"
|
||||
issue_tracker_url: "https://s.veen.world/cymaisissues"
|
||||
documentation: "https://s.veen.world/cymais"
|
||||
dependencies: []
|
41
roles/gen-certbot/tasks/main.yml
Normal file
41
roles/gen-certbot/tasks/main.yml
Normal file
@@ -0,0 +1,41 @@
|
||||
- name: install certbot
|
||||
pacman:
|
||||
name: certbot
|
||||
state: present
|
||||
when: run_once_certbot is not defined
|
||||
|
||||
- name: install certbot DNS plugin
|
||||
pacman:
|
||||
name: "certbot-dns-{{ certbot_acme_challenge_method }}"
|
||||
state: present
|
||||
when:
|
||||
- run_once_certbot is not defined
|
||||
- certbot_acme_challenge_method != 'webroot'
|
||||
|
||||
- name: Ensure /etc/certbot directory exists
|
||||
file:
|
||||
path: "{{ certbot_credentials_dir }}"
|
||||
state: directory
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0755'
|
||||
when:
|
||||
- run_once_certbot is not defined
|
||||
- certbot_acme_challenge_method != 'webroot'
|
||||
|
||||
- name: Install plugin credentials file
|
||||
copy:
|
||||
dest: "{{ certbot_credentials_file }}"
|
||||
content: |
|
||||
dns_{{ certbot_acme_challenge_method }}_api_token = {{ certbot_dns_api_token }}
|
||||
owner: root
|
||||
group: root
|
||||
mode: '0600'
|
||||
when:
|
||||
- run_once_certbot is not defined
|
||||
- certbot_acme_challenge_method != 'webroot'
|
||||
|
||||
- name: run the certbot role once
|
||||
set_fact:
|
||||
run_once_certbot: true
|
||||
when: run_once_certbot is not defined
|
Reference in New Issue
Block a user