- add ansible playbooks and roles for deploying taler exchange and merchant
- configure PostgreSQL, GNU Taler repositories, and services
🔧 chore(config): provide example env and gitignore for sensitive files
- create .env-example with placeholders for sensitive info
- add .gitignore entries for .env and common editor files
69 lines
2.3 KiB
YAML
69 lines
2.3 KiB
YAML
---
|
|
- name: Install GNU Taler merchant packages
|
|
ansible.builtin.apt:
|
|
name:
|
|
- taler-merchant
|
|
- taler-merchant-httpd
|
|
- taler-merchant-db
|
|
state: present
|
|
|
|
- name: Ensure merchant runtime paths exist
|
|
ansible.builtin.file:
|
|
path: "{{ item.path }}"
|
|
state: directory
|
|
owner: "{{ item.owner }}"
|
|
group: "{{ item.group }}"
|
|
mode: "{{ item.mode }}"
|
|
loop:
|
|
- { path: /etc/taler, owner: root, group: root, mode: "0755" }
|
|
- { path: /etc/taler/merchant.d, owner: root, group: root, mode: "0750" }
|
|
- { path: /run/taler, owner: taler-merchant, group: taler-merchant, mode: "0770" }
|
|
|
|
- name: Deploy merchant configuration
|
|
ansible.builtin.template:
|
|
src: merchant.conf.j2
|
|
dest: /etc/taler/merchant.conf
|
|
owner: root
|
|
group: taler-merchant
|
|
mode: "0640"
|
|
notify:
|
|
- Restart taler-merchant-backend
|
|
|
|
- name: Initialize merchant database
|
|
ansible.builtin.command:
|
|
cmd: taler-merchant-dbinit
|
|
register: merchant_dbinit
|
|
changed_when: "'already initialized' not in merchant_dbinit.stdout"
|
|
failed_when: merchant_dbinit.rc not in [0]
|
|
become: true
|
|
become_user: taler-merchant
|
|
|
|
- name: Ensure taler-merchant-backend service enabled
|
|
ansible.builtin.service:
|
|
name: taler-merchant-backend
|
|
state: started
|
|
enabled: true
|
|
|
|
- name: Validate merchant configuration currency
|
|
ansible.builtin.command:
|
|
cmd: taler-config -c /etc/taler/merchant.conf -s merchant-exchange-{{ taler_config.currency | lower }} -o CURRENCY
|
|
register: merchant_config_currency
|
|
changed_when: false
|
|
|
|
- name: Assert merchant currency matches exchange currency
|
|
ansible.builtin.assert:
|
|
that:
|
|
- merchant_config_currency.stdout.strip() == taler_config.currency
|
|
fail_msg: "Merchant currency mismatch. Expected {{ taler_config.currency }}."
|
|
|
|
- name: Validate merchant exchange base URL
|
|
ansible.builtin.command:
|
|
cmd: taler-config -c /etc/taler/merchant.conf -s merchant-exchange-{{ taler_config.currency | lower }} -o EXCHANGE_BASE_URLS
|
|
register: merchant_exchange_urls
|
|
changed_when: false
|
|
|
|
- name: Assert merchant exchange URL matches configuration
|
|
ansible.builtin.assert:
|
|
that:
|
|
- merchant_exchange_urls.stdout.strip().split()[0] == "https://{{ taler_config.exchange_host }}/"
|
|
fail_msg: "Merchant exchange URL mismatch. Expected https://{{ taler_config.exchange_host }}/."
|