ivansible.srv_cdn

ivansible.srv_cdn

Github 测试状态 Ansible Galaxy

此角色用于配置简单的基于 nginx 的 CDN。

任何 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 有记录,则为必需; 否则为可选。如果这些设置为空或未定义,则默认使用 Ansible 控制器主机上的环境变量 AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY

标签

  • srv_cdn_cloudflare - 配置 CloudFlare 中的 DNS 记录
  • srv_cdn_cloudfront - 配置 CloudFront 分发
  • srv_cdn_nginx - 配置 nginx 中的 CDN 站点和映射
  • srv_cdn_nginx_site - 配置 nginx 中的常见 CDN 站点设置
  • srv_cdn_all - 以上所有

依赖关系

  • ivansible.nginx_base - 继承默认值和处理程序
  • ivansible.lin_nginx (隐式依赖)

示例剧本

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

许可

MIT

作者信息

IvanSible 创建于 2020-2021 年

关于项目

simple nginx-based CDN

安装
ansible-galaxy install ivansible.srv_cdn
许可证
Unknown
下载
149
拥有者
ivandeex ansible roles, molecule tests: https://galaxy.ansible.com/ivansible/