tasks:
- block:
- name: Stop exim
- become: true
- service:
- name: exim4
- state: stopped
+ include_tasks: ~phd/admin/ansible/playbooks/tasks/service/service.yaml
+ vars:
+ service: exim4
+ command: stop
- name: Stop SpamAssassin
- become: true
- service:
- name: spamd
- state: stopped
+ include_tasks: ~phd/admin/ansible/playbooks/tasks/service/service.yaml
+ vars:
+ service: spamd
+ command: stop
- name: Backup SpamAssassin DB
shell: "sa-learn --sync && exec sa-learn --backup >~/tmp/sa-learn.backup@{{ inventory_hostname }}"
chdir: "~/tmp"
- name: Start SpamAssassin
- become: true
- service:
- name: spamd
- state: started
+ include_tasks: ~phd/admin/ansible/playbooks/tasks/service/service.yaml
+ vars:
+ service: spamd
+ command: start
- name: Start exim
- become: true
- service:
- name: exim4
- state: started
+ include_tasks: ~phd/admin/ansible/playbooks/tasks/service/service.yaml
+ vars:
+ service: exim4
+ command: start
when: inventory_hostname != 'localhost'
- name: Cleanup
- name: Reload apache
- become: true
- service:
- name: apache2
- state: reloaded
+ include_tasks: ~phd/admin/ansible/playbooks/tasks/service/service.yaml
+ vars:
+ service: apache2
+ command: reload
line: "domain {{ domain }}"
- name: Reload BIND
- become: true
- service:
- name: named
- state: reloaded
+ include_tasks: ~phd/admin/ansible/playbooks/tasks/service/service.yaml
+ vars:
+ service: named
+ command: reload
when: not domain_exists.stat.exists
- name: Reload apache
- become: true
- service:
- name: apache2
- state: reloaded
+ include_tasks: ~phd/admin/ansible/playbooks/tasks/service/service.yaml
+ vars:
+ service: apache2
+ command: reload
- name: Restart apache
- become: true
- service:
- name: apache2
- state: restarted
+ include_tasks: ~phd/admin/ansible/playbooks/tasks/service/service.yaml
+ vars:
+ service: apache2
+ command: restart
- name: Restart spamd
- become: true
- service:
- name: spamd
- state: reloaded
+ include_tasks: ~phd/admin/ansible/playbooks/tasks/service/service.yaml
+ vars:
+ service: spamd
+ command: reload
- name: Restart firewall
- become: true
- service:
- name: nftables.sh
- state: started
+ include_tasks: ~phd/admin/ansible/playbooks/tasks/service/service.yaml
+ vars:
+ service: nftables.sh
+ command: start
mode: 'u=rw,go='
- name: Reload BIND
- become: true
- service:
- name: named
- state: reloaded
+ include_tasks: ~phd/admin/ansible/playbooks/tasks/service/service.yaml
+ vars:
+ service: named
+ command: reload
- name: Configure resolver
become: true
- name: Reload OpenVPN
- become: true
- service:
- name: openvpn
- state: reloaded
+ include_tasks: ~phd/admin/ansible/playbooks/tasks/service/service.yaml
+ vars:
+ service: openvpn
+ command: reload
notify: Restart firewall
- name: Disable firewalld
- become: true
- service:
- name: firewalld.service
- state: stopped
- enabled: no
+ include_tasks: ~phd/admin/ansible/playbooks/tasks/service/service.yaml
+ vars:
+ service: firewalld.service
+ command: stop
- name: Enable fail2ban
- become: true
- service:
- name: fail2ban
- state: started
- enabled: yes
+ include_tasks: ~phd/admin/ansible/playbooks/tasks/service/service.yaml
+ vars:
+ service: fail2ban
+ command: start
- name: Enable nftables-service
- become: true
- service:
- name: nftables
- state: started
- enabled: yes
+ include_tasks: ~phd/admin/ansible/playbooks/tasks/service/service.yaml
+ vars:
+ service: nftables
+ command: start
- name: Configure firewall
become: true
- name: Reload sshd
- become: true
- service:
- name: "ssh{{ ansible_facts.os_family == 'RedHat' and 'd' or '' }}"
- state: reloaded
+ include_tasks: ~phd/admin/ansible/playbooks/tasks/service/service.yaml
+ vars:
+ service: "ssh{{ ansible_facts.os_family == 'RedHat' and 'd' or '' }}"
+ command: reload
--- /dev/null
+Task to start/stop/reload/restart services with fallbacks.
+
+Try `systemctl start/stop/reload/restart $service`, then
+try `service $service start/stop/reload/restart`, then
+try `/etc/init.d/$service start/stop/reload/restart`.
+
+The `$service` and `$command` must be passed to the task
+in variables `service` and `command`.
--- /dev/null
+#! /bin/sh
+
+command="$1"
+service="$2"
+
+systemctl $command $service ||
+service $service $command ||
+exec invoke-rc.d $service $command
--- /dev/null
+- name: Manage a service
+ become: true
+ shell: "exec ~phd/admin/ansible/playbooks/tasks/service/service {{ command }} {{ service }}"