ivansible.srv_cdn
ivansible.srv_cdn
このロールは、シンプルな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 -> server -> origin
のような完全なウェブパスを持つCloudFront CDNディストリビューションを設定します。
各レコードには以下のフィールドがあります:
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 # 1か月
srv_cdn_cloudfront_default_ttl: 86400 # 1日
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
にレコードがある場合は必須、それ以外はオプション。これらの設定が空または未定義の場合、環境変数AWS_ACCESS_KEY_ID
とAWS_SECRET_ACCESS_KEY
がAnsibleコントローラホストにデフォルトとして設定されます。
タグ
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
著者情報
2020-2021年にIvanSibleによって作成されました。