Files
computer-playbook/roles/web-opt-rdr-www/tasks/main.yml
Kevin Veen-Birkenbach a0c2245bbd Refactor web-opt-rdr-www:
- Split Cloudflare edge redirect into _01 and _02 task files
- Wrap Cloudflare routines in a conditional block on DNS_PROVIDER
- Preserve origin vs edge flavor handling
Conversation: https://chatgpt.com/share/68c3609b-5624-800f-b5fa-69def6032dca
2025-09-12 01:52:13 +02:00

42 lines
1.4 KiB
YAML

- block:
- name: Include dependency 'sys-svc-webserver'
include_role:
name: sys-svc-webserver
when: run_once_sys_svc_webserver is not defined
- include_tasks: utils/run_once.yml
when: run_once_web_opt_rdr_www is not defined
- name: Include web-opt-rdr-domains role for www-to-bare redirects
include_role:
name: web-opt-rdr-domains
vars:
redirect_domain_mappings: "{{ REDIRECT_WWW_DOMAINS | map('regex_replace', '^www\\.(.+)$', '{ source: \"www.\\1\", target: \"\\1\" }') | map('from_yaml') | list }}"
when: REDIRECT_WWW_FLAVOR == 'origin'
- name: Cloudflare WWW Routines
when: DNS_PROVIDER == 'cloudflare'
block:
- name: Include DNS role to set redirects
include_role:
name: sys-dns-cloudflare-records
vars:
cloudflare_records: |
{%- set bare = REDIRECT_WWW_DOMAINS | map('regex_replace', '^www\\.(.+)$', '\\1') | list -%}
[
{%- for d in bare -%}
{
"type": "A",
"zone": "{{ d | to_zone }}",
"name": "{{ d }}",
"content": "{{ networks.internet.ip4 }}",
"proxied": {{ REDIRECT_WWW_FLAVOR == 'edge' }},
"ttl": 1
}{{ "," if not loop.last else "" }}
{%- endfor -%}
]
when: REDIRECT_WWW_FLAVOR == 'origin'
- name: Include Cloudflare edge redirect
include_tasks: _01_cloudflare_edge_redirect.yml
when: REDIRECT_WWW_FLAVOR == 'edge'