ansible-taler-exchange

Ansible playbook to deploy a production Taler Exchange
Log | Files | Refs | Submodules | README | LICENSE

commit a71c8e4a9e17c24fe0e12679deec7647a0cdda09
parent a727cb56c83343c9fa0683749a23895c81707031
Author: Florian Dold <florian@dold.me>
Date:   Thu, 22 May 2025 00:49:17 +0200

ToS is TOPS-specific, restart exchange at end of role

Diffstat:
Mroles/exchange/tasks/main.yml | 66++++--------------------------------------------------------------
Mroles/exchange_tops/tasks/main.yml | 60++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 64 insertions(+), 62 deletions(-)

diff --git a/roles/exchange/tasks/main.yml b/roles/exchange/tasks/main.yml @@ -103,69 +103,11 @@ ansible.builtin.include_role: name: "exchange_{{ DEPLOYMENT_KIND }}" -- name: Check if we have terms of service in English - stat: - path: "/usr/share/taler-exchange/terms/{{ EXCHANGE_TERMS_ETAG }}.en.rst" - register: have_terms_en - -- name: Build terms of service (EN) - ansible.builtin.command: - cmd: taler-terms-generator -i {{ EXCHANGE_TERMS_ETAG }} -l en - when: have_terms_en.stat.exists - -- name: Check if we have privacy policy in English - stat: - path: "/usr/share/taler-exchange/terms/{{ EXCHANGE_PP_ETAG }}.en.rst" - register: have_pp_en - -- name: Build privacy policy (EN) - ansible.builtin.command: - cmd: taler-terms-generator -i {{ EXCHANGE_PP_ETAG }} -l en - when: have_pp_en.stat.exists - -- name: Check if we have terms of service in French - stat: - path: "/usr/share/taler-exchange/terms/{{ EXCHANGE_TERMS_ETAG }}.fr.rst" - register: have_terms_fr - -- name: Build terms of service (FR) - ansible.builtin.command: - cmd: taler-terms-generator -i {{ EXCHANGE_TERMS_ETAG }} -l fr - when: have_terms_fr.stat.exists - -- name: Check if we have privacy policy in French - stat: - path: "/usr/share/taler-exchange/terms/{{ EXCHANGE_PP_ETAG }}.fr.rst" - register: have_pp_fr - -- name: Build privacy policy (FR) - ansible.builtin.command: - cmd: taler-terms-generator -i {{ EXCHANGE_PP_ETAG }} -l fr - when: have_pp_fr.stat.exists - -- name: Check if we have terms of service in German - stat: - path: "/usr/share/taler-exchange/terms/{{ EXCHANGE_TERMS_ETAG }}.de.rst" - register: have_terms_de - -- name: Build terms of service (DE) - ansible.builtin.command: - cmd: taler-terms-generator -i {{ EXCHANGE_TERMS_ETAG }} -l de - when: have_terms_de.stat.exists - -- name: Check if we have privacy policy in German - stat: - path: "/usr/share/taler-exchange/terms/{{ EXCHANGE_PP_ETAG }}.de.rst" - register: have_pp_de - -- name: Build privacy policy (DE) - ansible.builtin.command: - cmd: taler-terms-generator -i {{ EXCHANGE_PP_ETAG }} -l de - when: have_pp_de.stat.exists - -- name: Ensure taler-exchange service is enabled and started +# FIXME: Implement this as handler, so it's only +# done when necessary. +- name: Ensure taler-exchange service is enabled and restarted service: daemon_reload: true name: taler-exchange.target - state: started + state: restarted enabled: true diff --git a/roles/exchange_tops/tasks/main.yml b/roles/exchange_tops/tasks/main.yml @@ -38,3 +38,63 @@ owner: root group: root mode: "0644" + +- name: Check if we have terms of service in English + stat: + path: "/usr/share/taler-exchange/terms/{{ EXCHANGE_TERMS_ETAG }}.en.rst" + register: have_terms_en + +- name: Build terms of service (EN) + ansible.builtin.command: + cmd: taler-terms-generator -i {{ EXCHANGE_TERMS_ETAG }} -l en + when: have_terms_en.stat.exists + +- name: Check if we have privacy policy in English + stat: + path: "/usr/share/taler-exchange/terms/{{ EXCHANGE_PP_ETAG }}.en.rst" + register: have_pp_en + +- name: Build privacy policy (EN) + ansible.builtin.command: + cmd: taler-terms-generator -i {{ EXCHANGE_PP_ETAG }} -l en + when: have_pp_en.stat.exists + +- name: Check if we have terms of service in French + stat: + path: "/usr/share/taler-exchange/terms/{{ EXCHANGE_TERMS_ETAG }}.fr.rst" + register: have_terms_fr + +- name: Build terms of service (FR) + ansible.builtin.command: + cmd: taler-terms-generator -i {{ EXCHANGE_TERMS_ETAG }} -l fr + when: have_terms_fr.stat.exists + +- name: Check if we have privacy policy in French + stat: + path: "/usr/share/taler-exchange/terms/{{ EXCHANGE_PP_ETAG }}.fr.rst" + register: have_pp_fr + +- name: Build privacy policy (FR) + ansible.builtin.command: + cmd: taler-terms-generator -i {{ EXCHANGE_PP_ETAG }} -l fr + when: have_pp_fr.stat.exists + +- name: Check if we have terms of service in German + stat: + path: "/usr/share/taler-exchange/terms/{{ EXCHANGE_TERMS_ETAG }}.de.rst" + register: have_terms_de + +- name: Build terms of service (DE) + ansible.builtin.command: + cmd: taler-terms-generator -i {{ EXCHANGE_TERMS_ETAG }} -l de + when: have_terms_de.stat.exists + +- name: Check if we have privacy policy in German + stat: + path: "/usr/share/taler-exchange/terms/{{ EXCHANGE_PP_ETAG }}.de.rst" + register: have_pp_de + +- name: Build privacy policy (DE) + ansible.builtin.command: + cmd: taler-terms-generator -i {{ EXCHANGE_PP_ETAG }} -l de + when: have_pp_de.stat.exists