srv_cdn

ivansible.srv_cdn

Статус теста на Github Ansible Galaxy

Эта роль настраивает простой CDN на основе nginx.

Любой запрос CDN может иметь несколько необязательных HTTP заголовков:

  • X-CDN-Front - желаемое имя фронтального хоста, по умолчанию используется имя хоста из запроса.
  • X-CDN-Host - желаемое имя сервера, определяет источник, по умолчанию $cdn_front.
  • X-CDN-Back - желаемое имя хоста источника, необязательный заголовок, переопределяет источник.

Требования

Нет

Переменные

Доступные переменные перечислены ниже, вместе с их значениями по умолчанию.

    srv_cdn_sites:
      - server: .mydomain.com
        origin: www.example.com
        lecert: mydomain.com

Основной список сайтов содержит записи со следующими полями:

  • server - имя фронтального сервера, может быть full.host.name или .domain.name (обязательно);
  • origin - имя хоста сервера-источника, который должен поддерживать https (обязательно);
  • lecert - имя пользовательского сертификата letsencrypt для сервера (необязательно);
  • hidden - если true, сопоставление сервер-источник определено, но имя сервера пропускается (необязательно, по умолчанию false).
    srv_cdn_default_origin: example.com

Резервный источник.

    srv_cdn_cloudflare:
      - zone: example.com
        name: {{ inventory_hostname }}
        type: AAAA
        value: {{ ansible_default_ipv6.address }}
        proxied: false

Список записей Cloudflare для каждого хоста имеет следующие поля:

  • zone - зона для записи (обязательно);
  • name - имя записи (обычно неквалифицированное имя хоста), обязательно;
  • type - тип записи, один из: A AAAA CNAME и т.д. (обязательно);
  • value - необязательное значение, запись будет пропущена, если это пусто или имеет ложное значение;
  • proxied - true или false, по умолчанию false.
    srv_cdn_cloudflare_email: ~
    srv_cdn_cloudflare_token: ~

Учетные данные CloudFlare. Если эти настройки пусты, ложны или неопределены, то задачи Cloudflare будут пропущены.

    srv_cdn_cloudfront:
      - server: www.mydomain.com
        reference: www.mydomain.com_cdn1
        origin: override.example.com
        lecert: mydomain.com
        cache: false

Этот массив настраивает распределения CloudFront CDN с полными веб-адресами такими как cloudfront -> server -> origin, где каждая запись имеет поля:

  • server - имя фронтального сервера, соответствующее записи из списка сайтов выше (обязательно);
  • origin - необязательный, переопределяет origin из списка сайтов выше;
  • reference - уникальный идентификатор cloudfront (необязательно, по умолчанию соответствует имени сервера с суффиксом);
  • lecert - имя пользовательского сертификата letsencrypt для сервера (необязательно);
  • cache - false отключает кэширование cloudfront, true - включает его (необязательно, по умолчанию srv_cdn_cloudfront_default_cache);
  • delete - если true, распределение будет удалено вместо создания/обновления (необязательно, по умолчанию false).
    srv_cdn_cloudfront_default_reference: SERVER_cdn

Имя по умолчанию для ссылки на распределение (SERVER заменяется на фактическое имя сервера).

    srv_cdn_filters:
      - src: ...
        dst: ...

Эти замены будут применены к HTML.

srv_cdn_cloudfront_max_ttl: 2592000    # один месяц
srv_cdn_cloudfront_default_ttl: 86400  # один день
srv_cdn_cloudfront_cached_methods: [GET, HEAD]
srv_cdn_cloudfront_default_cache: true

Разные настройки по умолчанию для кэширования CloudFront.

srv_cdn_cloudfront_access_key: ~
srv_cdn_cloudfront_secret_key: ~

Учетные данные Amazon CloudFront, обязательные если в srv_cdn_cloudfront есть записи, другие - необязательные. Если эти настройки пусты или неопределены, по умолчанию используются переменные среды AWS_ACCESS_KEY_ID и AWS_SECRET_ACCESS_KEY на хосте контроллера ansible.

Теги

  • srv_cdn_cloudflare - настраивает DNS записи в CloudFlare
  • srv_cdn_cloudfront - настраивает распределения CloudFront
  • srv_cdn_nginx - настраивает сайты CDN и сопоставления в nginx
  • srv_cdn_nginx_site - настраивает общие настройки сайта CDN в nginx
  • srv_cdn_all - все вышеперечисленные

Зависимости

  • ivansible.nginx_base - наследует настройки по умолчанию и обработчики
  • ivansible.lin_nginx (неявная зависимость)

Пример Playbook

- hosts: myserver
  roles:
     - role: ivansible.srv_cdn

Лицензия

MIT

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

Создан в 2020-2021 году IvanSible

О проекте

simple nginx-based CDN

Установить
ansible-galaxy install ivansible/srv-cdn
Лицензия
Unknown
Загрузки
130
Владелец
ivandeex ansible roles, molecule tests: https://galaxy.ansible.com/ivansible/