Compare commits
61 Commits
Author | SHA1 | Date | |
---|---|---|---|
800ebbae77
|
|||
6faba56371
|
|||
05aec0581b
|
|||
fbe33c06cf
|
|||
0e405cef07
|
|||
42782b58a4
|
|||
ee410b29a8
|
|||
1f7c4635a4
|
|||
7995eba69b
|
|||
c766e2ef46
|
|||
8e667d113a
|
|||
c8d49760b1
|
|||
c28cba452c
|
|||
ed5118ea95
|
|||
4d43f3c425
|
|||
3c789f2736
|
|||
62b99afa95
|
|||
213cff7da7
|
|||
6ce6c3ce41
|
|||
70fa36ff98
|
|||
a4d56624e5
|
|||
fc79dc4bc1
|
|||
94404387cc
|
|||
6a420416db
|
|||
fac73c1a6a
|
|||
307025181b
|
|||
f7594fed77
|
|||
c72e87dfd5
|
|||
82fc10fd5f
|
|||
05145b3b21
|
|||
1e234bf68b
|
|||
6516780e16
|
|||
06df5b790e
|
|||
9bfd87f256
|
|||
20a4cf4da4
|
|||
60ce6ca758
|
|||
a1039eaa45
|
|||
01ff782b14
|
|||
bc61a40771
|
|||
94ddaf98f0
|
|||
23f5f560b6
|
|||
a8f74baa53
|
|||
836183ad55
|
|||
0deea90113
|
|||
a5108c1bb6
|
|||
a278d5a438
|
|||
6ff3590514
|
|||
801b4b2cbf
|
|||
5ea018e04c
|
|||
842492c30d
|
|||
249f2e8926
|
|||
0f75b2a4aa
|
|||
d934993817
|
|||
4c65b70f97
|
|||
fe5ebb9531
|
|||
2d5b6a9357
|
|||
563e261ef3
|
|||
51a466a150
|
|||
7b9fed4a11
|
|||
25be7155e0
|
|||
950d017889
|
@ -1,13 +1,14 @@
|
||||
namespace: finallycoffee
|
||||
name: services
|
||||
version: 0.1.10
|
||||
version: "0.1.15"
|
||||
readme: README.md
|
||||
authors:
|
||||
- transcaffeine <transcaffeine@finally.coffee>
|
||||
description: Various ansible roles useful for automating infrastructure
|
||||
dependencies:
|
||||
"community.crypto": "^2.0.0"
|
||||
"community.docker": "^3.0.0"
|
||||
"community.crypto": "^2.22.0"
|
||||
"community.docker": "^4.0.0"
|
||||
"containers.podman": "^1.16.0"
|
||||
license_file: LICENSE.md
|
||||
build_ignore:
|
||||
- '*.tar.gz'
|
||||
|
@ -1,8 +1,10 @@
|
||||
---
|
||||
authelia_version: "4.38.16"
|
||||
authelia_version: "4.39.1"
|
||||
authelia_user: authelia
|
||||
authelia_base_dir: /opt/authelia
|
||||
authelia_domain: authelia.example.org
|
||||
authelia_state: present
|
||||
authelia_deployment_method: docker
|
||||
|
||||
authelia_config_dir: "{{ authelia_base_dir }}/config"
|
||||
authelia_config_file: "{{ authelia_config_dir }}/config.yaml"
|
||||
|
61
roles/authelia/tasks/deploy-docker.yml
Normal file
61
roles/authelia/tasks/deploy-docker.yml
Normal file
@ -0,0 +1,61 @@
|
||||
---
|
||||
- name: Ensure container mounts are present
|
||||
when: authelia_state == 'present'
|
||||
block:
|
||||
- name: Ensure sqlite database file exists before mounting it
|
||||
ansible.builtin.file:
|
||||
path: "{{ authelia_sqlite_storage_file }}"
|
||||
state: touch
|
||||
owner: "{{ authelia_run_user }}"
|
||||
group: "{{ authelia_run_group }}"
|
||||
mode: "0640"
|
||||
access_time: preserve
|
||||
modification_time: preserve
|
||||
when: authelia_config_storage_local_path | default(false, true)
|
||||
|
||||
- name: Ensure user database exists before mounting it
|
||||
ansible.builtin.file:
|
||||
path: "{{ authelia_user_storage_file }}"
|
||||
state: touch
|
||||
owner: "{{ authelia_run_user }}"
|
||||
group: "{{ authelia_run_group }}"
|
||||
mode: "0640"
|
||||
access_time: preserve
|
||||
modification_time: preserve
|
||||
when: authelia_config_authentication_backend_file_path | default(false, true)
|
||||
|
||||
- name: Ensure notification reports file exists before mounting it
|
||||
ansible.builtin.file:
|
||||
path: "{{ authelia_notification_storage_file }}"
|
||||
state: touch
|
||||
owner: "{{ authelia_run_user }}"
|
||||
group: "{{ authelia_run_group }}"
|
||||
mode: "0640"
|
||||
access_time: preserve
|
||||
modification_time: preserve
|
||||
when: authelia_config_notifier_filesystem_filename | default(false, true)
|
||||
|
||||
- name: Ensure authelia container image is {{ authelia_state }}
|
||||
community.docker.docker_image:
|
||||
name: "{{ authelia_container_image_ref }}"
|
||||
state: "{{ authelia_state }}"
|
||||
source: pull
|
||||
force_source: "{{ authelia_container_image_force_pull }}"
|
||||
register: authelia_container_image_info
|
||||
|
||||
- name: Ensure authelia container is {{ authelia_container_state }}
|
||||
community.docker.docker_container:
|
||||
name: "{{ authelia_container_name }}"
|
||||
image: "{{ authelia_container_image_ref }}"
|
||||
env: "{{ authelia_container_env }}"
|
||||
user: "{{ authelia_run_user }}:{{ authelia_run_group }}"
|
||||
ports: "{{ authelia_container_ports | default(omit, true) }}"
|
||||
labels: "{{ authelia_container_labels }}"
|
||||
volumes: "{{ authelia_container_volumes }}"
|
||||
networks: "{{ authelia_container_networks | default(omit, true) }}"
|
||||
etc_hosts: "{{ authelia_container_etc_hosts | default(omit, true) }}"
|
||||
purge_networks: "{{ authelia_container_purge_networks | default(omit, true)}}"
|
||||
restart_policy: "{{ authelia_container_restart_policy }}"
|
||||
recreate: "{{ authelia_container_recreate | default(omit, true) }}"
|
||||
state: "{{ authelia_container_state }}"
|
||||
register: authelia_container_info
|
@ -1,16 +1,30 @@
|
||||
---
|
||||
- name: Check for valid state
|
||||
ansible.builtin.fail:
|
||||
msg: >-2
|
||||
Unsupported state '{{ authelia_state }}'.
|
||||
Supported states are {{ authelia_states | join(', ') }}.
|
||||
when: authelia_state not in authelia_states
|
||||
|
||||
- name: Ensure user {{ authelia_user }} exists
|
||||
- name: Check for valid authelia deployment method
|
||||
ansible.builtin.fail:
|
||||
msg: >-2
|
||||
Unsupported deployment method '{{ authelia_deployment_method }}'.
|
||||
Supported states are {{ authelia_deployment_methods | join(', ') }}.
|
||||
when: authelia_deployment_method not in authelia_deployment_methods
|
||||
|
||||
- name: Ensure user {{ authelia_user }} is {{ authelia_state }}
|
||||
ansible.builtin.user:
|
||||
name: "{{ authelia_user }}"
|
||||
state: present
|
||||
state: "{{ authelia_state }}"
|
||||
system: true
|
||||
create_home: false
|
||||
register: authelia_user_info
|
||||
|
||||
- name: Ensure host directories are created with correct permissions
|
||||
- name: Ensure host directories are {{ authelia_state }}
|
||||
ansible.builtin.file:
|
||||
path: "{{ item.path }}"
|
||||
state: directory
|
||||
state: "{{ (authelia_state == 'present') | ternary('directory', 'absent') }}"
|
||||
owner: "{{ item.owner | default(authelia_user) }}"
|
||||
group: "{{ item.group | default(authelia_user) }}"
|
||||
mode: "{{ item.mode | default('0750') }}"
|
||||
@ -25,7 +39,7 @@
|
||||
- path: "{{ authelia_asset_dir }}"
|
||||
mode: "0750"
|
||||
|
||||
- name: Ensure config file is generated
|
||||
- name: Ensure config file is {{ authelia_state }}
|
||||
ansible.builtin.copy:
|
||||
content: "{{ authelia_config | to_nice_yaml(indent=2, width=10000) }}"
|
||||
dest: "{{ authelia_config_file }}"
|
||||
@ -33,61 +47,8 @@
|
||||
group: "{{ authelia_run_group }}"
|
||||
mode: "0640"
|
||||
notify: restart-authelia
|
||||
when: authelia_state == 'present'
|
||||
|
||||
- name: Ensure sqlite database file exists before mounting it
|
||||
ansible.builtin.file:
|
||||
path: "{{ authelia_sqlite_storage_file }}"
|
||||
state: touch
|
||||
owner: "{{ authelia_run_user }}"
|
||||
group: "{{ authelia_run_group }}"
|
||||
mode: "0640"
|
||||
access_time: preserve
|
||||
modification_time: preserve
|
||||
when: authelia_config_storage_local_path | default(false, true)
|
||||
|
||||
- name: Ensure user database exists before mounting it
|
||||
ansible.builtin.file:
|
||||
path: "{{ authelia_user_storage_file }}"
|
||||
state: touch
|
||||
owner: "{{ authelia_run_user }}"
|
||||
group: "{{ authelia_run_group }}"
|
||||
mode: "0640"
|
||||
access_time: preserve
|
||||
modification_time: preserve
|
||||
when: authelia_config_authentication_backend_file_path | default(false, true)
|
||||
|
||||
- name: Ensure notification reports file exists before mounting it
|
||||
ansible.builtin.file:
|
||||
path: "{{ authelia_notification_storage_file }}"
|
||||
state: touch
|
||||
owner: "{{ authelia_run_user }}"
|
||||
group: "{{ authelia_run_group }}"
|
||||
mode: "0640"
|
||||
access_time: preserve
|
||||
modification_time: preserve
|
||||
when: authelia_config_notifier_filesystem_filename | default(false, true)
|
||||
|
||||
- name: Ensure authelia container image is present
|
||||
community.docker.docker_image:
|
||||
name: "{{ authelia_container_image_ref }}"
|
||||
state: present
|
||||
source: pull
|
||||
force_source: "{{ authelia_container_image_force_pull }}"
|
||||
register: authelia_container_image_info
|
||||
|
||||
- name: Ensure authelia container is running
|
||||
community.docker.docker_container:
|
||||
name: "{{ authelia_container_name }}"
|
||||
image: "{{ authelia_container_image_ref }}"
|
||||
env: "{{ authelia_container_env }}"
|
||||
user: "{{ authelia_run_user }}:{{ authelia_run_group }}"
|
||||
ports: "{{ authelia_container_ports | default(omit, true) }}"
|
||||
labels: "{{ authelia_container_labels }}"
|
||||
volumes: "{{ authelia_container_volumes }}"
|
||||
networks: "{{ authelia_container_networks | default(omit, true) }}"
|
||||
etc_hosts: "{{ authelia_container_etc_hosts | default(omit, true) }}"
|
||||
purge_networks: "{{ authelia_container_purge_networks | default(omit, true)}}"
|
||||
restart_policy: "{{ authelia_container_restart_policy }}"
|
||||
recreate: "{{ authelia_container_recreate | default(omit, true) }}"
|
||||
state: "{{ authelia_container_state }}"
|
||||
register: authelia_container_info
|
||||
- name: Deploy authelia using {{ authelia_deployment_method }}
|
||||
ansible.builtin.include_tasks:
|
||||
file: "deploy-{{ authelia_deployment_method }}.yml"
|
||||
|
@ -1,4 +1,9 @@
|
||||
---
|
||||
authelia_states:
|
||||
- "present"
|
||||
- "absent"
|
||||
authelia_deployment_methods:
|
||||
- "docker"
|
||||
|
||||
authelia_run_user: "{{ (authelia_user_info.uid) if authelia_user_info is defined else authelia_user }}"
|
||||
authelia_run_group: "{{ (authelia_user_info.group) if authelia_user_info is defined else authelia_user }}"
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
ghost_domain: ~
|
||||
ghost_version: "5.103.0"
|
||||
ghost_version: "5.117.0"
|
||||
ghost_user: ghost
|
||||
ghost_user_group: ghost
|
||||
ghost_base_path: /opt/ghost
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
gitea_version: "1.22.4"
|
||||
gitea_version: "1.23.7"
|
||||
gitea_user: git
|
||||
gitea_run_user: "{{ gitea_user }}"
|
||||
gitea_base_path: "/opt/gitea"
|
||||
@ -32,6 +32,7 @@ gitea_container_extra_labels: {}
|
||||
gitea_container_extra_ports: []
|
||||
gitea_container_extra_volumes: []
|
||||
gitea_container_state: started
|
||||
gitea_container_user: ~
|
||||
|
||||
# container defaults
|
||||
gitea_container_base_volumes:
|
||||
|
@ -1,5 +1,4 @@
|
||||
---
|
||||
|
||||
- name: Ensure gitea user '{{ gitea_user }}' is present
|
||||
ansible.builtin.user:
|
||||
name: "{{ gitea_user }}"
|
||||
@ -75,6 +74,7 @@
|
||||
published_ports: "{{ gitea_container_ports }}"
|
||||
restart_policy: "{{ gitea_container_restart_policy }}"
|
||||
state: "{{ gitea_container_state }}"
|
||||
user: "{{ gitea_container_user | default(omit, true) }}"
|
||||
|
||||
- name: Ensure given configuration is set in the config file
|
||||
ansible.builtin.ini_file:
|
||||
|
@ -53,5 +53,5 @@ hedgedoc_container_all_labels: >-2
|
||||
{{ hedgedoc_container_base_labels | default({}, true)
|
||||
| combine(hedgedoc_container_labels | default({}, true)) }}
|
||||
hedgedoc_container_restart_policy: >-2
|
||||
{{ (hedgedoc_deployment_method === 'docker')
|
||||
{{ (hedgedoc_deployment_method == 'docker')
|
||||
| ternary('unless-stopped', 'on-failure') }}
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
hedgedoc_user: hedgedoc
|
||||
hedgedoc_version: "1.10.0"
|
||||
hedgedoc_version: "1.10.3"
|
||||
|
||||
hedgedoc_state: present
|
||||
hedgedoc_deployment_method: docker
|
||||
|
31
roles/hedgedoc/tasks/deploy-podman.yml
Normal file
31
roles/hedgedoc/tasks/deploy-podman.yml
Normal file
@ -0,0 +1,31 @@
|
||||
---
|
||||
- name: Ensure container image '{{ hedgedoc_container_image }}' is {{ hedgedoc_state }}
|
||||
containers.podman.podman_image:
|
||||
name: "{{ hedgedoc_container_image }}"
|
||||
state: "{{ hedgedoc_state }}"
|
||||
pull: "{{ (hedgedoc_container_image_source == 'pull') | bool }}"
|
||||
force: >-2
|
||||
{{ hedgedoc_container_force_source | default(
|
||||
hedgedoc_container_image_tag | default(false, true), true) }}
|
||||
register: hedgedoc_container_image_info
|
||||
until: hedgedoc_container_image_info is success
|
||||
retries: 5
|
||||
delay: 3
|
||||
|
||||
- name: Ensure container '{{ hedgedoc_container_name }}' is {{ hedgedoc_container_state }}
|
||||
containers.podman.podman_container:
|
||||
name: "{{ hedgedoc_container_name }}"
|
||||
image: "{{ hedgedoc_container_image }}"
|
||||
env: "{{ hedgedoc_container_env | default(omit, true) }}"
|
||||
user: "{{ hedgedoc_container_user | default(omit, true) }}"
|
||||
ports: "{{ hedgedoc_container_ports | default(omit, true) }}"
|
||||
labels: "{{ hedgedoc_container_all_labels }}"
|
||||
volumes: "{{ hedgedoc_container_all_volumes }}"
|
||||
etc_hosts: "{{ hedgedoc_container_etc_hosts | default(omit, true) }}"
|
||||
dns_servers: >-2
|
||||
{{ hedgedoc_container_dns_servers | default(omit, true) }}
|
||||
network_mode: >-2
|
||||
{{ hedgedoc_container_network_mode | default(omit, true) }}
|
||||
restart_policy: >-2
|
||||
{{ hedgedoc_container_restart_policy | default(omit, true) }}
|
||||
state: "{{ hedgedoc_container_state }}"
|
@ -1,7 +1,8 @@
|
||||
---
|
||||
jellyfin_user: jellyfin
|
||||
jellyfin_version: "10.10.3"
|
||||
jellyfin_version: "10.10.7"
|
||||
jellyfin_state: present
|
||||
jellyfin_deployment_method: docker
|
||||
|
||||
jellyfin_base_path: /opt/jellyfin
|
||||
jellyfin_config_path: "{{ jellyfin_base_path }}/config"
|
||||
|
25
roles/jellyfin/tasks/deploy-docker.yml
Normal file
25
roles/jellyfin/tasks/deploy-docker.yml
Normal file
@ -0,0 +1,25 @@
|
||||
---
|
||||
- name: Ensure container image '{{ jellyfin_container_image_ref }}' is {{ jellyfin_state }}
|
||||
community.docker.docker_image:
|
||||
name: "{{ jellyfin_container_image_ref }}"
|
||||
state: "{{ jellyfin_state }}"
|
||||
source: "{{ jellyfin_container_image_source }}"
|
||||
force_source: "{{ jellyfin_container_image_tag | default(false, true) }}"
|
||||
register: jellyfin_container_image_pull_result
|
||||
until: jellyfin_container_image_pull_result is succeeded
|
||||
retries: 5
|
||||
delay: 3
|
||||
|
||||
- name: Ensure container '{{ jellyfin_container_name }}' is {{ jellyfin_container_state }}
|
||||
community.docker.docker_container:
|
||||
name: "{{ jellyfin_container_name }}"
|
||||
image: "{{ jellyfin_container_image_ref }}"
|
||||
user: "{{ jellyfin_uid }}:{{ jellyfin_gid }}"
|
||||
labels: "{{ jellyfin_container_labels }}"
|
||||
volumes: "{{ jellyfin_container_volumes }}"
|
||||
ports: "{{ jellyfin_container_ports | default(omit, true) }}"
|
||||
networks: "{{ jellyfin_container_networks | default(omit, true) }}"
|
||||
network_mode: "{{ jellyfin_container_network_mode }}"
|
||||
etc_hosts: "{{ jellyfin_container_etc_hosts | default(omit, true) }}"
|
||||
restart_policy: "{{ jellyfin_container_restart_policy }}"
|
||||
state: "{{ jellyfin_container_state }}"
|
22
roles/jellyfin/tasks/deploy-podman.yml
Normal file
22
roles/jellyfin/tasks/deploy-podman.yml
Normal file
@ -0,0 +1,22 @@
|
||||
---
|
||||
- name: Ensure container image '{{ jellyfin_container_image_ref }}' is {{ jellyfin_state }}
|
||||
containers.podman.podman_image:
|
||||
name: "{{ jellyfin_container_image_ref }}"
|
||||
state: "{{ jellyfin_state }}"
|
||||
pull: "{{ (jellyfin_container_image_source == 'pull') | bool }}"
|
||||
force: "{{ jellyfin_container_image_tag | default(false, true) }}"
|
||||
register: jellyfin_container_image_pull_result
|
||||
until: jellyfin_container_image_pull_result is succeeded
|
||||
retries: 5
|
||||
delay: 3
|
||||
|
||||
- name: Ensure container '{{ jellyfin_container_name }}' is {{ jellyfin_container_state }}
|
||||
containers.podman.podman_container:
|
||||
name: "{{ jellyfin_container_name }}"
|
||||
image: "{{ jellyfin_container_image_ref }}"
|
||||
user: "{{ jellyfin_uid }}:{{ jellyfin_gid }}"
|
||||
labels: "{{ jellyfin_container_labels }}"
|
||||
volumes: "{{ jellyfin_container_volumes }}"
|
||||
network: "{{ jellyfin_container_networks | default(omit, True) }}"
|
||||
restart_policy: "{{ jellyfin_container_restart_policy }}"
|
||||
state: "{{ jellyfin_container_state }}"
|
@ -6,6 +6,13 @@
|
||||
states are {{ jellyfin_states | join(', ') }}.
|
||||
when: jellyfin_state not in jellyfin_states
|
||||
|
||||
- name: Check if deployment method is valid
|
||||
ansible.builtin.fail:
|
||||
msg: >-2
|
||||
Unsupported state '{{ jellyfin_deployment_method }}'. Supported
|
||||
states are {{ jellyfin_deployment_methods | join(', ') }}.
|
||||
when: jellyfin_deployment_method not in jellyfin_deployment_methods
|
||||
|
||||
- name: Ensure jellyfin user '{{ jellyfin_user }}' is {{ jellyfin_state }}
|
||||
ansible.builtin.user:
|
||||
name: "{{ jellyfin_user }}"
|
||||
@ -23,25 +30,6 @@
|
||||
mode: "{{ item.mode }}"
|
||||
loop: "{{ jellyfin_host_directories }}"
|
||||
|
||||
- name: Ensure container image '{{ jellyfin_container_image_ref }}' is {{ jellyfin_state }}
|
||||
community.docker.docker_image:
|
||||
name: "{{ jellyfin_container_image_ref }}"
|
||||
state: "{{ jellyfin_state }}"
|
||||
source: "{{ jellyfin_container_image_source }}"
|
||||
force_source: "{{ jellyfin_container_image_tag | default(false, true) }}"
|
||||
register: jellyfin_container_image_pull_result
|
||||
until: jellyfin_container_image_pull_result is succeeded
|
||||
retries: 5
|
||||
delay: 3
|
||||
|
||||
- name: Ensure container '{{ jellyfin_container_name }}' is {{ jellyfin_container_state }}
|
||||
community.docker.docker_container:
|
||||
name: "{{ jellyfin_container_name }}"
|
||||
image: "{{ jellyfin_container_image_ref }}"
|
||||
user: "{{ jellyfin_uid }}:{{ jellyfin_gid }}"
|
||||
labels: "{{ jellyfin_container_labels }}"
|
||||
volumes: "{{ jellyfin_container_volumes }}"
|
||||
networks: "{{ jellyfin_container_networks | default(omit, True) }}"
|
||||
network_mode: "{{ jellyfin_container_network_mode }}"
|
||||
restart_policy: "{{ jellyfin_container_restart_policy }}"
|
||||
state: "{{ jellyfin_container_state }}"
|
||||
- name: Ensure jellyfin is deployed using {{ jellyfin_deployment_method }}
|
||||
ansible.builtin.include_tasks:
|
||||
file: "deploy-{{ jellyfin_deployment_method }}.yml"
|
||||
|
@ -2,6 +2,9 @@
|
||||
jellyfin_states:
|
||||
- present
|
||||
- absent
|
||||
jellyfin_deployment_methods:
|
||||
- docker
|
||||
- podman
|
||||
|
||||
jellyfin_container_base_volumes:
|
||||
- "{{ jellyfin_config_path }}:/config:z"
|
||||
|
@ -1,5 +1,5 @@
|
||||
---
|
||||
keycloak_version: 26.0.7
|
||||
keycloak_version: "26.2.1"
|
||||
keycloak_container_name: keycloak
|
||||
|
||||
keycloak_container_image_upstream_registry: quay.io
|
||||
|
@ -10,7 +10,9 @@ ENV KC_DB=$DB_VENDOR
|
||||
|
||||
WORKDIR {{ keycloak_container_working_directory }}
|
||||
|
||||
{% if keycloak_container_image_add_local_providers | default(true) %}
|
||||
ADD ./providers/* providers/
|
||||
{% endif %}
|
||||
# Workaround to set correct mode on jar files
|
||||
USER root
|
||||
RUN chmod -R 0770 providers/*
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
snipe_it_user: snipeit
|
||||
snipe_it_version: "7.1.15"
|
||||
snipe_it_version: "8.0.4"
|
||||
snipe_it_domain: ~
|
||||
snipe_it_state: present
|
||||
snipe_it_deployment_method: docker
|
||||
|
@ -1,6 +1,6 @@
|
||||
---
|
||||
vaultwarden_user: vaultwarden
|
||||
vaultwarden_version: "1.32.5"
|
||||
vaultwarden_version: "1.33.2"
|
||||
|
||||
vaultwarden_config_file: "/etc/vaultwarden/config.json"
|
||||
vaultwarden_config_directory: "{{ vaultwarden_config_file | dirname }}"
|
||||
|
22
roles/vaultwarden/tasks/deploy-podman.yml
Normal file
22
roles/vaultwarden/tasks/deploy-podman.yml
Normal file
@ -0,0 +1,22 @@
|
||||
---
|
||||
- name: Ensure container image '{{ vaultwarden_container_image }}' is {{ vaultwarden_state }}
|
||||
containers.podman.podman_image:
|
||||
name: "{{ vaultwarden_container_image }}"
|
||||
state: "{{ vaultwarden_state }}"
|
||||
pull: "{{ (vaultwarden_container_image_source == 'pull') | bool }}"
|
||||
force: "{{ vaultwarden_container_image_force_source }}"
|
||||
|
||||
- name: Ensure container '{{ vaultwarden_container_name }}' is {{ vaultwarden_container_state }}
|
||||
containers.podman.podman_container:
|
||||
name: "{{ vaultwarden_container_name }}"
|
||||
image: "{{ vaultwarden_container_image }}"
|
||||
env: "{{ vaultwarden_container_env | default(omit, true) }}"
|
||||
user: "{{ vaultwarden_container_user | default(omit, true) }}"
|
||||
ports: "{{ vaultwarden_container_ports | default(omit, true) }}"
|
||||
labels: "{{ vaultwarden_container_labels | default(omit, true) }}"
|
||||
volumes: "{{ vaultwarden_container_volumes }}"
|
||||
network: "{{ vaultwarden_container_networks | default(omit, true) }}"
|
||||
etc_hosts: "{{ vaultwarden_container_etc_hosts | default(omit, true) }}"
|
||||
dns_servers: "{{ vaultwarden_container_dns_servers | default(omit, true) }}"
|
||||
restart_policy: "{{ vaultwarden_container_restart_policy | default(omit, true) }}"
|
||||
state: "{{ vaultwarden_container_state | default(omit, true) }}"
|
@ -4,6 +4,7 @@ vaultwarden_states:
|
||||
- absent
|
||||
vaultwarden_deployment_methods:
|
||||
- docker
|
||||
- podman
|
||||
vaultwarden_required_variables:
|
||||
- vaultwarden_config_domain
|
||||
vaultwarden_conditionally_required_variables:
|
||||
|
@ -1,7 +1,6 @@
|
||||
---
|
||||
|
||||
vouch_proxy_user: vouch-proxy
|
||||
vouch_proxy_version: 0.40.0
|
||||
vouch_proxy_version: "0.41.0"
|
||||
vouch_proxy_base_path: /opt/vouch-proxy
|
||||
vouch_proxy_config_path: "{{ vouch_proxy_base_path }}/config"
|
||||
vouch_proxy_config_file: "{{ vouch_proxy_config_path }}/config.yaml"
|
||||
|
Reference in New Issue
Block a user