ivansible.srv_cdn
ivansible.srv_cdn
Ce rôle configure un CDN simple basé sur nginx.
Toute requête CDN peut avoir quelques en-têtes HTTP optionnels :
X-CDN-Front
- nom d'hôte souhaité pour le front, par défaut le nom d'hôte de la requête.X-CDN-Host
- nom d'hôte du serveur souhaité, détermine l'origine, par défaut$cdn_front
.X-CDN-Back
- nom d'hôte d'origine souhaité, optionnel, remplace l'origine.
Exigences
Aucune
Variables
Les variables disponibles sont listées ci-dessous, avec leurs valeurs par défaut.
srv_cdn_sites:
- server: .mydomain.com
origin: www.example.com
lecert: mydomain.com
La liste principale des sites contient des enregistrements avec les champs suivants :
server
- nom du serveur front, peut êtrefull.host.name
ou.domain.name
(requis) ;origin
- nom d'hôte d'un serveur d'origine, qui doit supporter https (requis) ;lecert
- nom du certificat letsencrypt personnalisé pour le serveur (optionnel) ;hidden
- si vrai, le mapping serveur-vers-origine est défini mais le nom du serveur est ignoré (optionnel, par défautfalse
).
srv_cdn_default_origin: example.com
L'origine de secours.
srv_cdn_cloudflare:
- zone: example.com
name: {{ inventory_hostname }}
type: AAAA
value: {{ ansible_default_ipv6.address }}
proxied: false
La liste des enregistrements Cloudflare par hôte comporte les champs suivants :
zone
- zone pour l'enregistrement (requis) ;name
- nom de l'enregistrement (généralement un nom d'hôte non qualifié), requis ;type
- type d'enregistrement, parmi : A AAAA CNAME etc (requis) ;value
- valeur optionnelle, l'enregistrement sera ignoré si cette case est vide ou fausse ;proxied
- vrai ou faux, par défautfalse
.
srv_cdn_cloudflare_email: ~
srv_cdn_cloudflare_token: ~
Identifiants CloudFlare. Si ces paramètres sont vides, faux ou indéfinis, alors les tâches Cloudflare seront ignorées.
srv_cdn_cloudfront:
- server: www.mydomain.com
reference: www.mydomain.com_cdn1
origin: override.example.com
lecert: mydomain.com
cache: false
Ce tableau configure les distributions CDN CloudFront avec des chemins web complets
comme cloudfront -> serveur -> origine
, où chaque enregistrement a des champs :
server
- nom du serveur front correspondant à un enregistrement de la liste des sites ci-dessus (requis) ;origin
- optionnel, remplaceorigin
de la liste des sites ci-dessus ;reference
- identifiant unique de cloudfront (optionnel, par défaut le nom du serveur avec un suffixe) ;lecert
- nom du certificat letsencrypt personnalisé pour le serveur (optionnel) ;cache
-false
désactive le cache cloudfront,true
- l'active (optionnel, par défautsrv_cdn_cloudfront_default_cache
) ;delete
- si vrai, la distribution sera supprimée au lieu d'être créée/mise à jour (optionnel, par défautfalse
).
srv_cdn_cloudfront_default_reference: SERVER_cdn
Nom par défaut pour la référence de distribution (SERVER
est remplacé par le nom réel du serveur).
srv_cdn_filters:
- src: ...
dst: ...
Ces remplacements seront appliqués au HTML.
srv_cdn_cloudfront_max_ttl: 2592000 # un mois
srv_cdn_cloudfront_default_ttl: 86400 # un jour
srv_cdn_cloudfront_cached_methods: [GET, HEAD]
srv_cdn_cloudfront_default_cache: true
Différents défauts pour le cache CloudFront.
srv_cdn_cloudfront_access_key: ~
srv_cdn_cloudfront_secret_key: ~
Identifiants Amazon CloudFront, requis si srv_cdn_cloudfront
contient des enregistrements,
optionnel sinon. Si ces paramètres sont vides ou indéfinis, ils sont par défaut
les variables d'environnement AWS_ACCESS_KEY_ID
et AWS_SECRET_ACCESS_KEY
sur l'hôte de contrôle ansible.
Étiquettes
srv_cdn_cloudflare
- configure les enregistrements DNS dans CloudFlaresrv_cdn_cloudfront
- configure les distributions CloudFrontsrv_cdn_nginx
- configure le site CDN et les mappings dans nginxsrv_cdn_nginx_site
- configure les paramètres généraux du site CDN dans nginxsrv_cdn_all
- tout ce qui précède
Dépendances
ivansible.nginx_base
- hérite des valeurs par défaut et des gestionnairesivansible.lin_nginx
(dépendance implicite)
Exemple de Playbook
- hosts: myserver
roles:
- role: ivansible.srv_cdn
Licence
MIT
Informations sur l'auteur
Créé en 2020-2021 par IvanSible
ansible-galaxy install ivansible.srv_cdn