nginx

Роль Nginx для Ansible

========= Сборка

Роль Ansible для установки Nginx на операционных системах семейства Debian/Red Hat.

Требования


Нет

Переменные


Эта роль использует три типа переменных. Первые две зависят от типа установки. Третьи - общие переменные, не зависящие от выбора типа установки.

Общие переменные

  • install_from - Тип установки Nginx. [source | repo]. По умолчанию: repo
  • nginx_http_add - Список дополнительных параметров, которые будут добавлены в секцию http конфигурационного файла Nginx. По умолчанию: []
  • nginx_stream_add - Список дополнительных параметров, которые будут добавлены в секцию stream конфигурационного файла Nginx. По умолчанию: []
  • ssl_cert_path - Каталог для SSL сертификатов, используемых Nginx. По умолчанию: \etc\nginx\ssl

Веб-сервер

  • nginx_virtual_servers - Список виртуальных серверов. По умолчанию: []
    • listen - Указывает IP-адрес и порт (или путь и сокет Unix), на которых сервер принимает запросы.
    • server_name - Список имен виртуального сервера.
    • locations - Список locations
      • location - Конфигурация в зависимости от URI запроса.
      • params - Устанавливает параметры для location. Например proxy_pass, return, rewrite и т.д.

Balancing TCP и UDP

  • tcp_udp_nlb - Список словарей (upstreams) бэкэнд-серверов для балансировки нагрузки TCP и UDP с полями
    • name - Имя upstream.
    • listen - Порт для прослушивания входящего трафика на nginx proxy.
    • servers - Список бэкэнд-серверов.
  • stub_status - Если true, роль будет настраивать инструмент мониторинга Nginx с помощью ngx_http_stub_status_module. По умолчанию: false
  • stub_status_settings - Словарь настроек stub_status с полями
    • listen - Устанавливает адрес и порт для IP, или путь для сокета UNIX, на котором сервер будет принимать запросы. По умолчанию: 127.0.0.1:80
    • server_name - Устанавливает имена виртуального сервера. По умолчанию: 127.0.0.1
    • location - Устанавливает конфигурацию в зависимости от URI запроса. По умолчанию: /nginx_status

SSL

  • proxy_ssl - Включает протокол SSL/TLS для соединений с проксируемым сервером.
  • proxy_ssl_certificate - Указывает файл с сертификатом в формате PEM, используемым для аутентификации к проксируемому HTTPS-серверу.
  • proxy_ssl_certificate_key - Указывает файл с секретным ключом в формате PEM, используемым для аутентификации к проксируемому HTTPS-серверу.
  • proxy_ssl_ciphers - Указывает разрешенные шифры для соединений с проксируемым сервером. Шифры указываются в формате, понимаемом библиотекой OpenSSL.
  • ssl_certificate - Указывает файл с секретным ключом в формате PEM для данного виртуального сервера.
  • ssl_certificate_key - Указывает файл с секретным ключом в формате PEM, используемым для аутентификации к проксируемому серверу.

Переменные для установки из репозитория

Переменные для установки из исходников

  • nginx_with_modules - Список нестандартных модулей Nginx. Список модулей здесь. По умолчанию: []

Пример Playbook

---
- name: Установка приложения Nginx
  hosts: all
  remote_user: vagrant
  become: true
  roles:
    - artem_shestakov.nginx
  vars:
    - install_from: source
    - nginx_with_modules:
        - --with-file-aio 
        - --with-ipv6 
        - --with-http_ssl_module
        - --with-http_v2_module 
        - --with-http_realip_module 
        - --with-http_addition_module 
        - --with-http_xslt_module=dynamic  
        - --with-http_image_filter_module=dynamic
        - --with-http_sub_module 
        - --with-http_dav_module 
        - --with-http_flv_module 
        - --with-http_mp4_module 
        - --with-http_gunzip_module 
        - --with-http_gzip_static_module 
        - --with-http_random_index_module 
        - --with-http_secure_link_module 
        - --with-http_degradation_module 
        - --with-http_slice_module 
        - --with-http_stub_status_module 
        - --with-http_perl_module=dynamic 
        - --with-http_auth_request_module 
        - --with-mail=dynamic 
        - --with-mail_ssl_module  
        - --with-stream=dynamic
        - --with-stream_ssl_module 
        - --with-debug
    - tcp_udp_nlb:
        - name: example
          listen: 
            - 192.168.1.1:443
            - 192.168.1.2:443
          servers:
            - 10.79.1.196:443
        - name: example2
          listen: 
            - 10002
          servers:
            - 10.79.1.203:5601

Копирование сертификатов на сервер Nginx

  1. Поместите свои сертификаты в каталог.
  2. Установите переменные.
  • copy_ssl_certs - true, если нужно скопировать ваши сертификаты с локальной машины на удаленный сервер Nginx.
  • user_certs_path - список каталогов с вашими SSL сертификатами, которые нужно скопировать на Nginx. По умолчанию: ['./files/ssl/*']

Лицензия

BSD, MIT

Информация об авторе

Артем Шестаков (artem.s.shestakov@gmail.com)

О проекте

Ansible role to install Nginx on Debian/Red Hat OS family.

Установить
ansible-galaxy install artem-shestakov/ansible_nginx
Лицензия
Unknown
Загрузки
210
Владелец