craigpearson.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