ivansible.srv_cdn
ivansible.srv_cdn
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ślniefalse
).
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ślniefalse
.
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, nadpisujeorigin
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 tosrv_cdn_cloudfront_default_cache
);delete
- jeśli prawda, dystrybucja zostanie usunięta zamiast utworzenia/aktualizacji (opcjonalne, domyślniefalse
).
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 CloudFlaresrv_cdn_cloudfront
- konfiguruje dystrybucje CloudFrontsrv_cdn_nginx
- konfiguruje witrynę CDN i mapowania w nginxsrv_cdn_nginx_site
- konfiguruje wspólne ustawienia witryny CDN w nginxsrv_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
ansible-galaxy install ivansible.srv_cdn