feat(conduwuit): add ansible role
This commit is contained in:
34
roles/conduwuit/tasks/check.yml
Normal file
34
roles/conduwuit/tasks/check.yml
Normal file
@@ -0,0 +1,34 @@
|
||||
---
|
||||
- name: Ensure 'conduwuit_state' is valid
|
||||
ansible.builtin.fail:
|
||||
msg: >-2
|
||||
State '{{ conduwuit_state }}' is not known,
|
||||
supported states are {{ conduwuit_states | join(', ') }}
|
||||
when: conduwuit_state not in conduwuit_states
|
||||
|
||||
- name: Ensure 'conduwuit_deployment_method' is supported
|
||||
ansible.builtin.fail:
|
||||
msg: >-2
|
||||
Deployment method '{{ conduwuit_deployment_method }}'
|
||||
is unknown! Supported methods are:
|
||||
{{ conduwuit_deployment_methods | join(', ') }}
|
||||
when: conduwuit_deployment_method not in conduwuit_deployment_methods
|
||||
|
||||
- name: Ensure required variables are given
|
||||
ansible.builtin.fail:
|
||||
msg: "Required variable '{{ item }}' is undefined!"
|
||||
loop: "{{ conduwuit_required_variables }}"
|
||||
when: >-2
|
||||
item not in hostvars[inventory_hostname]
|
||||
or hostvars[inventory_hostname][item] | length == 0
|
||||
|
||||
- name: Ensure conditionally required variables are given
|
||||
ansible.builtin.fail:
|
||||
msg: "Required variable '{{ item.name }}' is undefined!"
|
||||
loop: "{{ conduwuit_conditionally_required_variables }}"
|
||||
loop_control:
|
||||
label: "{{ item.name }}"
|
||||
when: >-2
|
||||
item.when
|
||||
and (item.name not in hostvars[inventory_hostname]
|
||||
or hostvars[inventory_hostname][item.name] | length == 0)
|
26
roles/conduwuit/tasks/deploy-docker.yml
Normal file
26
roles/conduwuit/tasks/deploy-docker.yml
Normal file
@@ -0,0 +1,26 @@
|
||||
---
|
||||
- name: Ensure container image '{{ conduwuit_container_image }}' is {{ conduwuit_state }}
|
||||
community.docker.docker_image:
|
||||
name: "{{ conduwuit_container_image }}"
|
||||
state: "{{ conduwuit_state }}"
|
||||
source: "{{ conduwuit_container_image_source }}"
|
||||
force_source: "{{ conduwuit_container_image_force_source }}"
|
||||
|
||||
- name: Ensure container '{{ conduwuit_container_name }}' is {{ conduwuit_container_state }}
|
||||
community.docker.docker_container:
|
||||
name: "{{ conduwuit_container_name }}"
|
||||
image: "{{ conduwuit_container_image }}"
|
||||
env: "{{ conduwuit_container_env | default(omit) }}"
|
||||
user: "{{ conduwuit_container_user }}"
|
||||
ports: "{{ conduwuit_container_ports | default(omit, true) }}"
|
||||
labels: "{{ conduwuit_container_labels | default(omit, true) }}"
|
||||
volumes: "{{ conduwuit_container_all_volumes }}"
|
||||
ulimits: "{{ conduwuit_container_ulimits | default(omit, true) }}"
|
||||
networks: "{{ conduwuit_container_networks | default(omit, true) }}"
|
||||
dns_servers: "{{ conduwuit_container_dns_servers | default(omit, true) }}"
|
||||
etc_hosts: "{{ conduwuit_container_etc_hosts | default(omit, true) }}"
|
||||
memory: "{{ conduwuit_container_memory | default(omit, true) }}"
|
||||
memory_reservation: "{{ conduwuit_container_memory_reversation | default(omit, true) }}"
|
||||
memory_swap: "{{ conduwuit_container_memory_swap | default(omit, true) }}"
|
||||
restart_policy: "{{ conduwuit_container_restart_policy }}"
|
||||
state: "{{ conduwuit_container_state }}"
|
41
roles/conduwuit/tasks/main.yml
Normal file
41
roles/conduwuit/tasks/main.yml
Normal file
@@ -0,0 +1,41 @@
|
||||
---
|
||||
- name: Check preconditions
|
||||
ansible.builtin.include_tasks:
|
||||
file: check.yml
|
||||
|
||||
- name: Ensure conduwuit user '{{ conduwuit_user }}' is {{ conduwuit_state }}
|
||||
ansible.builtin.user:
|
||||
name: "{{ conduwuit_user }}"
|
||||
state: "{{ conduwuit_state }}"
|
||||
system: "{{ conduwuit_user_system | default(true) }}"
|
||||
create_home: "{{ conduwuit_user_create_home | default(false) }}"
|
||||
register: conduwuit_user_info
|
||||
|
||||
- name: Ensure config directory exists
|
||||
ansible.builtin.file:
|
||||
path: "{{ conduwuit_config_file | dirname }}"
|
||||
state: "{{ (conduwuit_state == 'present') | state('directory', 'absent') }}"
|
||||
owner: "{{ conduwuit_run_uid }}"
|
||||
group: "{{ conduwuit_run_gid }}"
|
||||
mode: "0750"
|
||||
|
||||
- name: Template config file '{{ conduwuit_config_file }}'
|
||||
ansible.builtin.template:
|
||||
src: "conduwuit.toml.j2"
|
||||
dest: "{{ conduwuit_config_file }}"
|
||||
owner: "{{ conduwuit_run_uid }}"
|
||||
group: "{{ conduwuit_run_gid }}"
|
||||
mode: "0640"
|
||||
when: conduwuit_state == 'present'
|
||||
|
||||
- name: Ensure data directory '{{ conduwuit_data_path }}' is {{ conduwuit_state }}
|
||||
ansible.builtin.file:
|
||||
path: "{{ conduwuit_data_path }}"
|
||||
state: "{{ (conduwuit_state == 'present') | ternary('directory', 'absent') }}"
|
||||
owner: "{{ conduwuit_run_uid }}"
|
||||
group: "{{ conduwuit_run_gid }}"
|
||||
mode: "0750"
|
||||
|
||||
- name: Ensure deployment using {{ conduwuit_deployment_method }} runs
|
||||
ansible.builtin.include_tasks:
|
||||
file: "deploy-{{ conduwuit_deployment_method }}"
|
Reference in New Issue
Block a user