trellis_ca_certificates
Trellis CA сертификаты
Роль Trellis Ansible для добавления пользовательских CA сертификатов в доверенное хранилище OpenSSL. Идеально подходит для использования с управляемыми базами данных Digital Ocean, которые требуют соединений SSL/TLS для MySQL.
Требования
- Trellis
- Ubuntu 18.04
Установка
Добавить в требования
# trellis/galaxy.yml
- name: trellis-ca-certificates
src: craigpearson.trellis_ca_certificates
Включить в плейбукProvision
Чтобы добавить эту функциональность на своих стендах/производственных серверах, включите эту роль в trellis/server.yml
# trellis/server.yml
...
- name: Сервер WordPress - Установка LEMP стека с PHP 7.3 и MariaDB MySQL
hosts: web:&{{ env }}
become: yes
roles:
- { role: common, tags: [common] }
...
- { role: sshd, tags: [sshd] }
- { role: trellis-ca-certificates, tags: [ca-certificates] } # Рекомендуемая точка включения
- { role: mariadb, tags: [mariadb] }
Если вам требуется эта функциональность на вашем сервере разработки, вы также должны добавить это в trellis/dev.yml
Установить сертификаты для включения
В производственной среде мы добавим в trellis/group_vars/production/main.yml
# trellis/group_vars/production/main.yml
trellis_ca_certificates_trusted:
# Локальный источник: trellis/certs/production/example-certificate.crt
# Удаленная цель: /usr/local/share/ca-certificates/database.crt
- name: database
src: example-certificate.crt
Включить .crt файлы
По умолчанию эта роль ищет ваши сертификаты в trellis/certs
, например:
trellis/
├── bin/
├── certs/ # → Папка с исходными сертификатами
│ ├── development/ # → Сертификаты для разработки
│ ├── staging/ # → Сертификаты для стенда
│ └── production/ # → Сертификаты для продакшн
│ └── example-certificate.crt
└── deploy-hooks/
Теперь все, что осталось сделать - это настроить
Переменные роли
Настроить пользовательские сертификаты
Единственная переменная, необходимая для конфигурации, это список доверенных источников сертификатов. Это должно быть размещено в trellis/group_vars/{{ env }}/main.yml
, где {{ env }}
это development, staging, или production.
Примечание: Ваш исходный сертификат переименовывается и помещается в место назначения, указанное в name
, пример:
# Это пример возможных значений, по умолчанию это []
trellis_ca_certificates_trusted:
# Локальный источник: trellis/certs/{{ env }}/example-certificate.crt
# Удаленная цель: /usr/local/share/ca-certificates/database.crt
- name: database
src: example-certificate.crt
# Локальный источник: trellis/certs/{{ env }}/db-master.crt
# Удаленная цель: /usr/local/share/ca-certificates/database/master.crt
- name: database/master
src: db-master.crt
# Локальный источник: trellis/certs/{{ env }}/db-slave.crt
# Удаленная цель: /usr/local/share/ca-certificates/database/slave.crt
- name: database/slave
src: db-slave.crt
Директория источника
Чтобы сохранить ваши файлы сертификатов в папке, отличной от trellis/certs/{{ env }}
:
# По умолчанию trellis/certs/env - где env это development, staging или production
trellis_ca_certificates_local_dir: custom-local-directory/{{ env }}
Директория назначения на удаленном сервере
Если только вы не настроили ваш удаленный OpenSSL для поиска сертификатов в другой директории, вам не нужно менять это
# По умолчанию доверенное хранилище OpenSSL на 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