ivansible.srv_cdn

ivansible.srv_cdn

Status testów na Githubie Ansible Galaxy

Ten skrypt konfiguruje prosty system CDN oparty na nginx.

Każde żądanie CDN może zawierać kilka opcjonalnych nagłówków HTTP:

  • X-CDN-Front - pożądana nazwa hosta frontowego, domyślnie to nazwa hosta z żądania.
  • X-CDN-Host - pożądana nazwa hosta serwera, określa źródło, domyślnie to $cdn_front.
  • X-CDN-Back - pożądana nazwa hosta źródłowego, opcjonalna, nadpisuje źródło.

Wymagania

Brak

Zmienne

Dostępne zmienne są wymienione poniżej, wraz z wartościami domyślnymi.

    srv_cdn_sites:
      - server: .mojadomena.com
        origin: www.przyklad.com
        lecert: mojadomena.com

Główna lista witryn zawiera rekordy z następującymi polami:

  • server - nazwa serwera frontowego, może być full.host.name lub .domain.name (wymagane);
  • origin - nazwa hosta serwera źródłowego, który musi obsługiwać https (wymagane);
  • lecert - nazwa niestandardowego certyfikatu letsencrypt dla serwera (opcjonalne);
  • hidden - jeśli prawda, mapowanie serwera do źródła jest zdefiniowane, ale nazwa serwera jest pomijana (opcjonalne, domyślnie false).
    srv_cdn_default_origin: przyklad.com

Domyślne źródło.

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

Lista rekordów cloudflare dla każdego hosta zawiera następujące pola:

  • zone - strefa dla rekordu (wymagane);
  • name - nazwa rekordu (zazwyczaj niekwalifikowana nazwa hosta), wymagane;
  • type - typ rekordu, jeden z: A AAAA CNAME itp. (wymagane);
  • value - opcjonalna wartość, rekord zostanie pominięty, jeśli jest pusty lub fałszywy;
  • proxied - true lub false, domyślnie false.
    srv_cdn_cloudflare_email: ~
    srv_cdn_cloudflare_token: ~

Dane logowania do CloudFlare. Jeśli te ustawienia są puste, fałszywe lub nieokreślone, zadania cloudflare będą pominięte.

    srv_cdn_cloudfront:
      - server: www.mojadomena.com
        reference: www.mojadomena.com_cdn1
        origin: override.przyklad.com
        lecert: mojadomena.com
        cache: false

Ta tablica konfiguruje dystrybucje CDN CloudFront z pełnymi ścieżkami internetowymi takimi jak cloudfront -> serwer -> źródło, gdzie każdy rekord ma pola:

  • server - nazwa serwera frontowego odpowiadająca rekordowi z listy witryn powyżej (wymagane);
  • origin - opcjonalnie, nadpisuje origin z listy witryn powyżej;
  • reference - unikalny identyfikator CloudFront (opcjonalne, domyślnie nazwa serwera z sufiksem);
  • lecert - nazwa niestandardowego certyfikatu letsencrypt dla serwera (opcjonalne);
  • cache - false wyłącza buforowanie w CloudFront, true - włącza je (opcjonalne, domyślnie to srv_cdn_cloudfront_default_cache);
  • delete - jeśli prawda, dystrybucja zostanie usunięta zamiast utworzenia/aktualizacji (opcjonalne, domyślnie false).
    srv_cdn_cloudfront_default_reference: SERVER_cdn

Domyślna nazwa dla referencji dystrybucji (SERVER jest zastępowane rzeczywistą nazwą serwera).

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

Te zamiany będą stosowane do HTML.

srv_cdn_cloudfront_max_ttl: 2592000    # jeden miesiąc
srv_cdn_cloudfront_default_ttl: 86400  # jeden dzień
srv_cdn_cloudfront_cached_methods: [GET, HEAD]
srv_cdn_cloudfront_default_cache: true

Różne domyślne wartości dla buforowania w CloudFront.

srv_cdn_cloudfront_access_key: ~
srv_cdn_cloudfront_secret_key: ~

Dane logowania do Amazon CloudFront, wymagane, jeśli srv_cdn_cloudfront ma rekordy, opcjonalne w przeciwnym razie. Jeśli te ustawienia są puste lub nieokreślone, domyślnie mają wartość zmiennych środowiskowych AWS_ACCESS_KEY_ID i AWS_SECRET_ACCESS_KEY na hoście kontrolera ansible.

Tagowanie

  • srv_cdn_cloudflare - konfiguruje rekordy DNS w CloudFlare
  • srv_cdn_cloudfront - konfiguruje dystrybucje CloudFront
  • srv_cdn_nginx - konfiguruje witrynę CDN i mapowania w nginx
  • srv_cdn_nginx_site - konfiguruje wspólne ustawienia witryny CDN w nginx
  • srv_cdn_all - wszystkie powyższe

Zależności

  • ivansible.nginx_base - dziedziczy domyślne ustawienia i obsługę
  • ivansible.lin_nginx (ukryta zależność)

Przykładowy skrypt

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

Licencja

MIT

Informacje o autorze

Stworzone w latach 2020-2021 przez IvanSible

O projekcie

simple nginx-based CDN

Zainstaluj
ansible-galaxy install ivansible.srv_cdn
Licencja
Unknown
Pobrania
149
Właściciel
ivandeex ansible roles, molecule tests: https://galaxy.ansible.com/ivansible/