]> git.phdru.name Git - ansible.git/blob - playbooks/debian/sa-merge-all.yml
Fix(sa-merge-all): Fix file name (`.` -> `@`)
[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: "cd ~/tmp && exec cat sa-learn.backup@* >sa-learn.backup"
28       when: inventory_hostname == 'localhost'
29
30     - block:
31       - name: Push combined SpamAssassin DB backup
32         synchronize:
33           src: "~/tmp/sa-learn.backup"
34           dest: "~/tmp/sa-learn.backup"
35       - name: Restore combined SpamAssassin DB
36         shell: "cd tmp && sa-learn --clear && sa-learn --restore sa-learn.backup && exec sa-learn --sync"
37
38       - name: Start SpamAssassin
39         become: true
40         service:
41           name: spamassassin
42           state: started
43       - name: Start exim
44         become: true
45         service:
46           name: exim4
47           state: started
48       when: inventory_hostname != 'localhost'
49
50     - name: Cleanup
51       shell: "cd ~/tmp && exec rm sa-learn.backup*"