ansibleguy.infra_certs

Rola Ansible - Generator Certyfikatów

Rola Ansible do tworzenia certyfikatów do użycia na serwerze linuxowym.

Postaw mi kawę

Status testów Molecule Status testów YamlLint Status testów PyLint Status testów Ansible-Lint Ansible Galaxy

Logi Molecule: Krótkie, Pełne

Testowane na:

  • Debian 11
  • Debian 12

Instalacja

# najnowsza wersja
ansible-galaxy role install git+https://github.com/ansibleguy/infra_certs

# z galaxy
ansible-galaxy install ansibleguy.infra_certs

# lub do niestandardowej ścieżki ról
ansible-galaxy install ansibleguy.infra_certs --roles-path ./roles

# instalacja zależności
ansible-galaxy install -r requirements.yml

Użycie

Chcesz prostego interfejsu graficznego Ansible? Sprawdź moje Ansible WebUI

Uwagi

Tryby self-signed i minimal-ca stworzą tylko jeden certyfikat podczas każdego uruchomienia.

Powtórne uruchomienie może zaoszczędzić czas, używając tagu 'certs'.

Tryb LetsEncrypt utworzy/usunie wiele certyfikatów zgodnie z definicją.

Konfiguracja

Przykład konfiguracji LetsEncrypt:

certs:
  mode: 'le_certbot'
  path: '/etc/apache2/ssl'
  letsencrypt:
    certs:
      myNiceSite:
        domains: ['myRandomSite.net', 'ansibleguy.net']
        email: '[email protected]'
    service: 'apache'

Przykład konfiguracji Self-Signed:

certs:
  mode: 'selfsigned'  # lub 'snakeoil' (jeśli szybsze)
  # wybierz 'ca', jeśli używasz nazw dns
  #   niektóre przeglądarki nie pozwolą Ci się połączyć gdy używasz self-signed
  path: '/etc/nginx/ssl'
  group_key: 'nginx'
  owner_cert: 'nginx'
  cert:
    cn: 'Mój wspaniały certyfikat!'
    org: 'AnsibleGuy'
    country: 'AT'
    email: '[email protected]'
    domains: ['mySoGreat.site', 'ansibleguy.net']
    ips: ['192.168.44.2']
    pwd: !vault ...

Przykład konfiguracji minimal-CA:

certs:
  mode: 'ca'
  path: '/etc/ca/certs'
  mode_key: '0400'
  cert:
    name: 'nazwa_pliku'  # rozszerzenie zostanie dodane
    cn: 'Mój wspaniały certyfikat!'
    org: 'AnsibleGuy'
    country: 'AT'
    email: '[email protected]'
    domains: ['mySoGreat.site', 'ansibleguy.net']
  ca:
    path: '/etc/ca'
    cn: 'SUPER CertificateAuthority'
    org: 'AnsibleGuy'
    country: 'AT'
    email: '[email protected]'
    pwd: !vault ...

Używając minimal-CA możesz tworzyć wiele certyfikatów podpisanych przez CA, powtarzając rolę z zmienionymi ustawieniami 'cert'.

Możesz użyć 'ansible-vault', aby zaszyfrować swoje hasła:

ansible-vault encrypt_string

Wykonanie

Uruchom playbook:

ansible-playbook -K -D -i inventory/hosts.yml playbook.yml --ask-vault-pass

Dostępne są również przydatne tagi:

  • certs => ignoruj zadania ca; tylko generuj certy
  • selfsigned
  • config
  • certs

Aby debugować błędy, możesz ustawić zmienną 'debug' w czasie wykonania:

ansible-playbook -K -D -i inventory/hosts.yml playbook.yml -e debug=yes

Funkcjonalność

  • Instalacja pakietów

    • Zależności Ansible (minimalne)
    • Zależności kryptograficzne
  • Konfiguracja

    • Cztery Możliwe Tryby:

      • Generowanie self-signed certyfikatu
      • Użycie minimalnej jednostki certyfikacyjnej do tworzenia podpisanych certyfikatów
      • Konfiguracja LetsEncrypt-Certbot do generowania publicznie ważnych certyfikatów
        • Obsługuje Nginx i Apache
        • Host musi mieć ważny publiczny rekord DNS
        • Musi być publicznie dostępny na porcie 80/tcp
    • Domyślna konfiguracja:

      • Tryb => Self-Signed

Informacje

  • Uwaga: ta rola obecnie wspiera tylko systemy oparte na debianie.

  • Uwaga: Większość funkcjonalności roli może być używana według potrzeb.

    Aby zobaczyć dostępne opcje - zobacz domyślną konfigurację w głównej domyślnej konfiguracji!

  • Uwaga: Jeśli potrzebujesz masowo zarządzać certyfikatami - możesz sprawdzić rolę ansibleguy.infra_pki, która umożliwia utworzenie i zarządzanie pełną Public Key Infrastructure.

  • Uwaga: Nazwa pliku certyfikatu (zmienna name lub CommonName) zostanie zaktualizowana:

    • spacje zostaną przekształcone w podkreślenia
    • wszystkie znaki oprócz "0-9a-zA-Z." zostaną usunięte
    • rozszerzenie pliku (crt/chain.crt/key/csr) zostanie dodane
  • Ostrzeżenie: Nie każda ustawienie/zmienna, którą podasz, będzie sprawdzona pod kątem poprawności. Zła konfiguracja może złamać rolę!

  • Informacja: Aby odnowienie LetsEncrypt działało, musisz zezwolić na wychodzące połączenia do:

    80/tcp, 443/tcp+udp do acme-v02.api.letsencrypt.org, staging-v02.api.letsencrypt.org (tryb debugowania) oraz r3.o.lencr.org

O projekcie

Meat-role to generate/manage certificates for other roles

Zainstaluj
ansible-galaxy install ansibleguy.infra_certs
Licencja
other
Pobrania
7.6k
Właściciel
[email protected] | GPG: https://badges.ansibleguy.net/public.gpg