craigpearson.trellis_ca_certificates
Certyfikaty CA Trellis
Rola Ansible Trellis do dodawania własnych certyfikatów CA do zaufanego repozytorium OpenSSL. Idealna do używania z Zarządzanymi Bazami Danych Digital Ocean, które wymagają połączeń SSL/TLS dla MySQL.
Wymagania
- Trellis
- Ubuntu 18.04
Instalacja
Dodaj do wymagań
# trellis/galaxy.yml
- name: trellis-ca-certificates
src: craigpearson.trellis_ca_certificates
Dołącz do skryptu provisioning
Aby dodać tę funkcjonalność na serwerach staging/produkcji, włącz tę rolę w trellis/server.yml
# trellis/server.yml
...
- name: Serwer WordPress - Instalacja stosu LEMP z PHP 7.3 i MariaDB MySQL
hosts: web:&{{ env }}
become: yes
roles:
- { role: common, tags: [common] }
...
- { role: sshd, tags: [sshd] }
- { role: trellis-ca-certificates, tags: [ca-certificates] } # Zalecane miejsce dołączenia
- { role: mariadb, tags: [mariadb] }
Jeśli potrzebujesz tej funkcjonalności na serwerze deweloperskim, dodaj to także do trellis/dev.yml
.
Ustaw certyfikaty do włączenia
W produkcji dodaj do trellis/group_vars/production/main.yml
# trellis/group_vars/production/main.yml
trellis_ca_certificates_trusted:
# Lokalna ścieżka: trellis/certs/production/example-certificate.crt
# Zdalny cel: /usr/local/share/ca-certificates/database.crt
- name: database
src: example-certificate.crt
Dołącz pliki .crt
Domyślnie ta rola przeszukuje folder trellis/certs
w poszukiwaniu certyfikatów, przykład:
trellis/
├── bin/
├── certs/ # → Folder źródłowy certyfikatów
│ ├── development/ # → Certyfikaty deweloperskie
│ ├── staging/ # → Certyfikaty stagingowe
│ └── production/ # → Certyfikaty produkcyjne
│ └── example-certificate.crt
└── deploy-hooks/
Teraz wystarczy przeprowadzić provisioning.
Zmienne roli
Konfiguracja własnych certyfikatów
Jedyną zmienną potrzebną do konfiguracji jest lista zaufanych źródeł certyfikatów. Powinna być umieszczona w trellis/group_vars/{{ env }}/main.yml
, gdzie {{ env }}
to development, staging lub production.
Uwaga: Twój certyfikat źródłowy jest przemianowywany i umieszczany w docelowej lokalizacji zgodnie z określoną w name
, przykład:
# Przykład możliwych wartości, domyślnie wartość to []
trellis_ca_certificates_trusted:
# Lokalna źródło: trellis/certs/{{ env }}/example-certificate.crt
# Zdalny cel: /usr/local/share/ca-certificates/database.crt
- name: database
src: example-certificate.crt
# Lokalna źródło: trellis/certs/{{ env }}/db-master.crt
# Zdalny cel: /usr/local/share/ca-certificates/database/master.crt
- name: database/master
- src: db-master.crt
# Lokalna źródło: trellis/certs/{{ env }}/db-slave.crt
# Zdalny cel: /usr/local/share/ca-certificates/database/slave.crt
- name: database/slave
- src: db-slave.crt
Katalog źródłowy
Aby przechowywać pliki certyfikatów w folderze innym niż trellis/certs/{{ env }}
:
# Domyślnie trellis/certs/env - gdzie env to development, staging lub production
trellis_ca_certificates_local_dir: custom-local-directory/{{ env }}
Zdalny katalog docelowy
Chyba że skonfigurowałeś swój zdalny OpenSSL do szukania certyfikatów w innym katalogu, nie powinieneś tego zmieniać.
# Domyślnie zaufane repozytorium OpenSSL na Ubuntu 18.04
trellis_ca_certificates_remote_dir: /usr/local/share/ca-certificates
Trellis role which allows you to add custom CA Certificates to the OpenSSL's trusted store.
ansible-galaxy install craigpearson.trellis_ca_certificates