jaywink.letsencrypt

Statut de la construction
Ansible Galaxy
Licence

Ansible LetsEncrypt

Un rôle pour automatiser les certificats LetsEncrypt.

Stabilité : bêta.

Version d'Ansible requise : 2.x

Que fait-il ?

Ce rôle va récupérer le client Certbot officiel, l'installer et délivrer ou renouveler un certificat pour le domaine de votre choix.

Fonctionnalités :

  • Testé sur Ubuntu 14.04 et Debian 8, 9
  • Un domaine par inclusion de rôle seulement
  • Fonctionne uniquement en mode certonly

Les Pull Requests sont les bienvenues pour ajouter plus de fonctionnalités.

Installation

Vous pouvez installer le rôle directement depuis Galaxy comme suit :

ansible-galaxy install jaywink.letsencrypt

Détails

Emplacement et version du client Certbot

Ubuntu 14.04, Debian 8
  • Le client sera installé dans /opt/certbot en tant que root
  • Chaque exécution récupérera le code du client Certbot depuis une version de publication vérifiée. Vous pouvez définir une version spécifique de Certbot en utilisant la variable letsencrypt_certbot_version.
Debian 9
  • Le client sera installé via APT à l'emplacement standard de la plateforme selon la dernière version dans les dépôts.

Choses à savoir

  • Une liste des services à arrêter avant et (re) démarrer après l'obtention d'un nouveau certificat peut être configurée en utilisant la variable letsencrypt_pause_services.

  • Le mode certonly est utilisé, ce qui signifie qu'il n'y a pas d'installation automatique du serveur web.

  • Après la délivrance du certificat, vous pouvez le trouver dans /etc/letsencrypt/live/<nom de domaine>

    • Astuce, utilisez ceci dans votre configuration Apache2, par exemple, dans votre rôle principal. Assurez-vous simplement de ne pas essayer de démarrer Apache2 avec le virtualhost actif sans que le rôle LetsEncrypt soit d'abord exécuté !

      SSLCertificateFile /etc/letsencrypt/live/{{ letsencrypt_domain }}/cert.pem
      SSLCertificateKeyFile /etc/letsencrypt/live/{{ letsencrypt_domain }}/privkey.pem
      SSLCertificateChainFile /etc/letsencrypt/live/{{ letsencrypt_domain }}/chain.pem
      
  • Remarque ! Si ce rôle échoue lors de la demande de certificat, vous avez peut-être arrêté des services - faites attention !

  • Si le certificat a déjà été demandé auparavant, ce rôle tentera automatiquement de le renouveler, si possible. Désactivez cette fonctionnalité en définissant letsencrypt_force_renew sur false. Aucun renouvellement ne sera tenté dans ce cas si le certificat n'est pas à renouveler.

  • Un sous-domaine www. sera automatiquement demandé avec le certificat.

    • Pour désactiver ce comportement, définissez letsencrypt_request_www sur false dans vos variables.

Exigences

Testé avec les systèmes suivants :

  • Ubuntu 14.04 et Debian 8, 9
  • Apache2 et Nginx
  • Ansible 2.x

Variables de rôle

Obligatoires

  • letsencrypt_domain - Domaine pour lequel le certificat est requis.
  • letsencrypt_email - Votre adresse email en tant que propriétaire du certificat.

Optionnelles

  • letsencrypt_certbot_args - Arguments supplémentaires de ligne de commande à passer à Certbot - seront combinés avec letsencrypt_certbot_default_args. Consultez la documentation de Certbot pour les arguments que vous pouvez passer.
  • letsencrypt_certbot_default_args - Veuillez consulter defaults/main.yml pour voir les arguments par défaut. Vous pourriez aussi ajouter pour remplacer tous les arguments de Certbot, par exemple pour utiliser un autre plugin, définissez-les avec cette variable.
  • letsencrypt_certbot_verbose - Faire en sorte que Certbot affiche les informations dans la console (par défaut true).
  • letsencrypt_certbot_version - Définir une version spécifique de Certbot, par exemple un tag ou une branche git. Notez que la version la plus ancienne de Certbot que nous supportons est 0.6.0. N'a pas d'effet sur Debian 9.
  • letsencrypt_force_renew - Si l'on doit toujours tenter le renouvellement, par défaut true.
  • letsencrypt_pause_services - Liste des services à arrêter/démarrer lors de l'appel à Certbot.
  • letsencrypt_request_www - Demande www. automatiquement (par défaut true).

Exemple de Playbook

Ce rôle fonctionne mieux lorsqu'il est inclus juste avant votre rôle principal, par exemple. Ou il peut être utilisé dans un playbook individuel, comme ci-dessous.

Ce rôle doit devenir root sur l'hôte cible.

---
- hosts: myhost
  become: yes
  become_user: root
  roles:
    - role: ansible-letsencrypt
      letsencrypt_email: email@example.com
      letsencrypt_domain: example.com
      letsencrypt_pause_services:
        - apache2

Licence

MIT

Informations sur l'auteur

Jason Robinson (@jaywink) - mail@jasonrobinson.me - https://jasonrobinson.me - https://twitter.com/jaywink

Un grand merci à Stefan Grönke (@gronke) pour son travail sur l'expansion de ce rôle.

Voir CONTRIBUTORS pour une liste complète des contributeurs.

À propos du projet

A role to automate LetsEncrypt certificates.

Installer
ansible-galaxy install jaywink.letsencrypt
Licence
Unknown
Téléchargements
6.1k
Propriétaire
Pythonista and Djangonaut. Federated social web hacker. Author of Socialhome. Extinction Rebel.