29 lines
1.0 KiB
YAML
29 lines
1.0 KiB
YAML
- name: 'Build arguments for letsencrypt acme.sh driver for: {{ cert.key }}'
|
|
set_fact:
|
|
# NOTE(ianw): note the domains are passed in one string (between
|
|
# ") as it makes argument parsing a little easier in the driver.sh
|
|
acme_args: '"{% for domain in cert.value %}-d {{ domain.split(":")[0] }} {% endfor %}"'
|
|
|
|
- name: Run acme.sh driver for certificate issue
|
|
shell:
|
|
cmd: |
|
|
/opt/acme.sh/driver.sh issue {{ acme_args }}
|
|
args:
|
|
chdir: /opt/acme.sh/
|
|
register: acme_output
|
|
environment:
|
|
LETSENCRYPT_STAGING: '{{ "1" if letsencrypt_use_staging else "0" }}'
|
|
|
|
# NOTE(ianw): The output of the driver is
|
|
#
|
|
# challenge-domain:TXT-key
|
|
#
|
|
# We don't care about the challenge-domain part (we have set all
|
|
# _acme-challenge.hostname.o.o records as CNAMES to acme.opendev.org).
|
|
# Record the config key along with the TXT record; later we use it to
|
|
# check which config keys have been updated and need a refresh.
|
|
#
|
|
- set_fact:
|
|
acme_txt_required: '{{ acme_txt_required + [(cert.key, item.split(":")[1])] }}'
|
|
loop: '{{ acme_output.stdout_lines }}'
|