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によって作成されました。
