]> git.phdru.name Git - ansible.git/blob - playbooks/debian/sa-merge-all.yml
Feat(sa-merge-all): Use `sa-merge-all.py` to merge dumps; use `chdir`
[ansible.git] / playbooks / debian / sa-merge-all.yml
1 - name: Merge SpamAssassin databases
2   hosts: "{{ hosts | default('all') }}"
3   gather_facts: false
4   tasks:
5     - block:
6       - name: Stop exim
7         become: true
8         service:
9           name: exim4
10           state: stopped
11       - name: Stop SpamAssassin
12         become: true
13         service:
14           name: spamassassin
15           state: stopped
16
17       - name: Backup SpamAssassin DB
18         shell: "sa-learn --sync && exec sa-learn --backup >~/tmp/sa-learn.backup@{{ inventory_hostname }}"
19       - name: Fetch SpamAssassin DB backup
20         synchronize:
21           src: "~/tmp/sa-learn.backup@{{ inventory_hostname }}"
22           dest: "~/tmp/sa-learn.backup@{{ inventory_hostname }}"
23           mode: pull
24       when: inventory_hostname != 'localhost'
25
26     - name: Combine SpamAssassin DB backups
27       shell: "exec {{ playbook_dir }}/sa-merge-all.py -o sa-learn.backup sa-learn.backup@*"
28       args:
29         chdir: "~/tmp"
30       when: inventory_hostname == 'localhost'
31
32     - block:
33       - name: Push combined SpamAssassin DB backup
34         synchronize:
35           src: "~/tmp/sa-learn.backup"
36           dest: "~/tmp/sa-learn.backup"
37       - name: Restore combined SpamAssassin DB
38         shell: "sa-learn --clear && sa-learn --restore sa-learn.backup && exec sa-learn --sync"
39         args:
40           chdir: "~/tmp"
41
42       - name: Start SpamAssassin
43         become: true
44         service:
45           name: spamassassin
46           state: started
47       - name: Start exim
48         become: true
49         service:
50           name: exim4
51           state: started
52       when: inventory_hostname != 'localhost'
53
54     - name: Cleanup
55       shell: "exec rm sa-learn.backup*"
56       args:
57         chdir: "~/tmp"