ivansible.srv_cdn

ivansible.srv_cdn

Statut des tests Github Ansible Galaxy

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 être full.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éfaut false).
    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éfaut false.
    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, remplace origin 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éfaut srv_cdn_cloudfront_default_cache) ;
  • delete - si vrai, la distribution sera supprimée au lieu d'être créée/mise à jour (optionnel, par défaut false).
    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 CloudFlare
  • srv_cdn_cloudfront - configure les distributions CloudFront
  • srv_cdn_nginx - configure le site CDN et les mappings dans nginx
  • srv_cdn_nginx_site - configure les paramètres généraux du site CDN dans nginx
  • srv_cdn_all - tout ce qui précède

Dépendances

  • ivansible.nginx_base - hérite des valeurs par défaut et des gestionnaires
  • ivansible.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

À propos du projet

simple nginx-based CDN

Installer
ansible-galaxy install ivansible.srv_cdn
Licence
Unknown
Téléchargements
149
Propriétaire
ivandeex ansible roles, molecule tests: https://galaxy.ansible.com/ivansible/