nginx_docker
Nginx-docker для Ansible
Используйте Ansible для развертывания проектов Docker на Nginx с поддержкой или без поддержки https. Эта роль не важна, на каком языке вы написали ваше приложение. Она создана для использования с инструментами непрерывной интеграции и непрерывного развертывания.
Особенности
- Создаёт или использует предварительно собранный образ Docker
- Не требует Docker реестра
- Настраивает https через nginx_project
- Автоматически заменяет старые версии через project_name
Предварительные требования
- Целевой пользователь с правами на конфигурацию nginx
- Целевой пользователь с правами на запуск docker
Установка
ansible-galaxy install practical-ansible.nginx_docker
Пример playbook
Вот самый стандартный playbook
---
- name: Развертывание в тестовый контейнер Docker
hosts: all
roles:
- role: practical-ansible.nginx_docker
vars:
admin_email: '[email protected]'
image_local: 'test_app.tar'
project_port: '3000'
project_name: 'my-app'
project_version: '0.1.0'
server_names: 'localhost,www.localhost'
use_ssl: true
env:
print_this: 'Тестирование развертывания: X Æ A-12'
Вы можете найти больше примеров в директории tests.
Пример CI
Существуют еще несколько примеров конфигурации.
Справочное руководство
Используйте это, чтобы избежать синдрома выгорания при развертывании вашего приложения, упакованного в Docker, на nginx.
Оглавление
Переменные по умолчанию
client_max_body_size
Максимальный размер загружаемого файла для Nginx. Значение, определяемое документацией nginx
Значение по умолчанию
client_max_body_size: 1M
env
Словарь переменных окружения, которые будут переданы в контейнер Docker.
Значение по умолчанию
env:
nginx_docker: yes
Пример использования
env:
PORT: 80
SECRET_TOKEN: xa2z3ik6
image_local
Путь к извлечённому образу Docker. Если пусто, роль попытается собрать образ на локальном хосте перед загрузкой на удалённый. Ожидает, что Dockerfile будет находиться в той же директории, что и playbook.
Значение по умолчанию
image_local: ''
Пример использования
image: './dist/my-app.tar'
image_name
Имя образа, который будет загружен из репозитория Docker.
Значение по умолчанию
image_name: ''
Пример использования
image: 'requarks/wiki'
network_name
Имя сети Docker, используемой этим контейнером. Роль создаст её при необходимости.
Значение по умолчанию
network_name: practical-ansible
Пример использования
network_name: 'totally-separated-network'
project_port
Внутренний номер порта контейнера. Роль свяжет этот порт из Docker с прокси nginx.
Значение по умолчанию
project_port: 80
Пример использования
project_port: 3000
Зависимости
- {'role': 'practical-ansible.nginx_project'}
Лицензия
MIT
Автор
Павел Жак
Deploy your Docker project to Nginx with minimal config
ansible-galaxy install practical-ansible/nginx-docker