Skip to content

Commit d46c5f3

Browse files
committed
Add support for state=absent
1 parent 8308f96 commit d46c5f3

File tree

3 files changed

+55
-29
lines changed

3 files changed

+55
-29
lines changed

tasks/install.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
- name: Create ENV file for {{ name }}_container.service
3+
template:
4+
src: env.j2
5+
dest: "{{ sysconf_dir }}/{{ name }}"
6+
owner: root
7+
group: root
8+
mode: '0600'
9+
when: env is defined
10+
11+
# use `command` instead of `docker_image` so we don't have to install docker-py
12+
- name: Pull image {{ image }}
13+
command: docker pull {{ image }}
14+
15+
# TODO: Add handler to restart service after new image has been pulled
16+
- name: Create unit {{ name }}_container.service
17+
template:
18+
src: unit.j2
19+
dest: /etc/systemd/system/{{ name }}_container.service
20+
owner: root
21+
group: root
22+
mode: '0644'
23+
24+
- name: Enable and start {{ name }}
25+
systemd:
26+
name: '{{ name }}_container.service'
27+
daemon_reload: true
28+
enabled: "{{ enabled }}"
29+
masked: "{{ masked }}"
30+
state: "{{ state }}"

tasks/main.yml

Lines changed: 4 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,7 @@
33
include_vars: "{{ ansible_os_family }}.yml"
44
tags: always
55

6-
- name: create ENV file for {{ name }}_container.service
7-
template:
8-
src: env.j2
9-
dest: "{{ sysconf_dir }}/{{ name }}"
10-
owner: root
11-
group: root
12-
mode: '0600'
13-
when: env is defined
14-
15-
# use `command` instead of `docker_image` so we don't have to install docker-py
16-
- name: pull image {{ image }}
17-
command: docker pull {{ image }}
18-
19-
# TODO: Add handler to restart service after new image has been pulled
20-
- name: create unit {{ name }}_container.service
21-
template:
22-
src: unit.j2
23-
dest: /etc/systemd/system/{{ name }}_container.service
24-
owner: root
25-
group: root
26-
mode: '0644'
27-
28-
- name: enable and start {{ name }}
29-
systemd:
30-
name: '{{ name }}_container.service'
31-
daemon_reload: true
32-
enabled: "{{ enabled }}"
33-
masked: "{{ masked }}"
34-
state: "{{ state }}"
6+
- include: install.yml
7+
when: state != "absent"
8+
- include: uninstall.yml
9+
when: state == "absent"

tasks/uninstall.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
---
2+
- name: Remove ENV file for {{ name }}_container.service
3+
file:
4+
path: "{{ sysconf_dir }}/{{ name }}"
5+
state: absent
6+
7+
- name: Disable and stop {{ name }}
8+
systemd:
9+
name: '{{ name }}_container.service'
10+
enabled: False
11+
state: stopped
12+
13+
- name: Remove unit {{ name }}_container.service
14+
file:
15+
path: /etc/systemd/system/{{ name }}_container.service
16+
state: absent
17+
18+
- name: Reload systemd units
19+
command: systemctl daemon-reload
20+
changed_when: False
21+

0 commit comments

Comments
 (0)