Compare commits
44 Commits
transcaffe
...
0.1.14
Author | SHA1 | Date | |
---|---|---|---|
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
|
@ -1,13 +1,14 @@
|
|||||||
namespace: finallycoffee
|
namespace: finallycoffee
|
||||||
name: services
|
name: services
|
||||||
version: 0.1.10
|
version: "0.1.14"
|
||||||
readme: README.md
|
readme: README.md
|
||||||
authors:
|
authors:
|
||||||
- transcaffeine <transcaffeine@finally.coffee>
|
- transcaffeine <transcaffeine@finally.coffee>
|
||||||
description: Various ansible roles useful for automating infrastructure
|
description: Various ansible roles useful for automating infrastructure
|
||||||
dependencies:
|
dependencies:
|
||||||
"community.crypto": "^2.0.0"
|
"community.crypto": "^2.22.0"
|
||||||
"community.docker": "^3.0.0"
|
"community.docker": "^4.0.0"
|
||||||
|
"containers.podman": "^1.16.0"
|
||||||
license_file: LICENSE.md
|
license_file: LICENSE.md
|
||||||
build_ignore:
|
build_ignore:
|
||||||
- '*.tar.gz'
|
- '*.tar.gz'
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
---
|
---
|
||||||
authelia_version: "4.38.18"
|
authelia_version: "4.39.1"
|
||||||
authelia_user: authelia
|
authelia_user: authelia
|
||||||
authelia_base_dir: /opt/authelia
|
authelia_base_dir: /opt/authelia
|
||||||
authelia_domain: authelia.example.org
|
authelia_domain: authelia.example.org
|
||||||
|
authelia_state: present
|
||||||
|
authelia_deployment_method: docker
|
||||||
|
|
||||||
authelia_config_dir: "{{ authelia_base_dir }}/config"
|
authelia_config_dir: "{{ authelia_base_dir }}/config"
|
||||||
authelia_config_file: "{{ authelia_config_dir }}/config.yaml"
|
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:
|
ansible.builtin.user:
|
||||||
name: "{{ authelia_user }}"
|
name: "{{ authelia_user }}"
|
||||||
state: present
|
state: "{{ authelia_state }}"
|
||||||
system: true
|
system: true
|
||||||
|
create_home: false
|
||||||
register: authelia_user_info
|
register: authelia_user_info
|
||||||
|
|
||||||
- name: Ensure host directories are created with correct permissions
|
- name: Ensure host directories are {{ authelia_state }}
|
||||||
ansible.builtin.file:
|
ansible.builtin.file:
|
||||||
path: "{{ item.path }}"
|
path: "{{ item.path }}"
|
||||||
state: directory
|
state: "{{ (authelia_state == 'present') | ternary('directory', 'absent') }}"
|
||||||
owner: "{{ item.owner | default(authelia_user) }}"
|
owner: "{{ item.owner | default(authelia_user) }}"
|
||||||
group: "{{ item.group | default(authelia_user) }}"
|
group: "{{ item.group | default(authelia_user) }}"
|
||||||
mode: "{{ item.mode | default('0750') }}"
|
mode: "{{ item.mode | default('0750') }}"
|
||||||
@ -25,7 +39,7 @@
|
|||||||
- path: "{{ authelia_asset_dir }}"
|
- path: "{{ authelia_asset_dir }}"
|
||||||
mode: "0750"
|
mode: "0750"
|
||||||
|
|
||||||
- name: Ensure config file is generated
|
- name: Ensure config file is {{ authelia_state }}
|
||||||
ansible.builtin.copy:
|
ansible.builtin.copy:
|
||||||
content: "{{ authelia_config | to_nice_yaml(indent=2, width=10000) }}"
|
content: "{{ authelia_config | to_nice_yaml(indent=2, width=10000) }}"
|
||||||
dest: "{{ authelia_config_file }}"
|
dest: "{{ authelia_config_file }}"
|
||||||
@ -33,61 +47,8 @@
|
|||||||
group: "{{ authelia_run_group }}"
|
group: "{{ authelia_run_group }}"
|
||||||
mode: "0640"
|
mode: "0640"
|
||||||
notify: restart-authelia
|
notify: restart-authelia
|
||||||
|
when: authelia_state == 'present'
|
||||||
|
|
||||||
- name: Ensure sqlite database file exists before mounting it
|
- name: Deploy authelia using {{ authelia_deployment_method }}
|
||||||
ansible.builtin.file:
|
ansible.builtin.include_tasks:
|
||||||
path: "{{ authelia_sqlite_storage_file }}"
|
file: "deploy-{{ authelia_deployment_method }}.yml"
|
||||||
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
|
|
||||||
|
@ -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_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 }}"
|
authelia_run_group: "{{ (authelia_user_info.group) if authelia_user_info is defined else authelia_user }}"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
ghost_domain: ~
|
ghost_domain: ~
|
||||||
ghost_version: "5.105.0"
|
ghost_version: "5.113.1"
|
||||||
ghost_user: ghost
|
ghost_user: ghost
|
||||||
ghost_user_group: ghost
|
ghost_user_group: ghost
|
||||||
ghost_base_path: /opt/ghost
|
ghost_base_path: /opt/ghost
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
gitea_version: "1.23.1"
|
gitea_version: "1.23.6"
|
||||||
gitea_user: git
|
gitea_user: git
|
||||||
gitea_run_user: "{{ gitea_user }}"
|
gitea_run_user: "{{ gitea_user }}"
|
||||||
gitea_base_path: "/opt/gitea"
|
gitea_base_path: "/opt/gitea"
|
||||||
@ -32,6 +32,7 @@ gitea_container_extra_labels: {}
|
|||||||
gitea_container_extra_ports: []
|
gitea_container_extra_ports: []
|
||||||
gitea_container_extra_volumes: []
|
gitea_container_extra_volumes: []
|
||||||
gitea_container_state: started
|
gitea_container_state: started
|
||||||
|
gitea_container_user: ~
|
||||||
|
|
||||||
# container defaults
|
# container defaults
|
||||||
gitea_container_base_volumes:
|
gitea_container_base_volumes:
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
- name: Ensure gitea user '{{ gitea_user }}' is present
|
- name: Ensure gitea user '{{ gitea_user }}' is present
|
||||||
ansible.builtin.user:
|
ansible.builtin.user:
|
||||||
name: "{{ gitea_user }}"
|
name: "{{ gitea_user }}"
|
||||||
@ -75,6 +74,7 @@
|
|||||||
published_ports: "{{ gitea_container_ports }}"
|
published_ports: "{{ gitea_container_ports }}"
|
||||||
restart_policy: "{{ gitea_container_restart_policy }}"
|
restart_policy: "{{ gitea_container_restart_policy }}"
|
||||||
state: "{{ gitea_container_state }}"
|
state: "{{ gitea_container_state }}"
|
||||||
|
user: "{{ gitea_container_user | default(omit, true) }}"
|
||||||
|
|
||||||
- name: Ensure given configuration is set in the config file
|
- name: Ensure given configuration is set in the config file
|
||||||
ansible.builtin.ini_file:
|
ansible.builtin.ini_file:
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
hedgedoc_user: hedgedoc
|
hedgedoc_user: hedgedoc
|
||||||
hedgedoc_version: "1.10.0"
|
hedgedoc_version: "1.10.2"
|
||||||
|
|
||||||
hedgedoc_state: present
|
hedgedoc_state: present
|
||||||
hedgedoc_deployment_method: docker
|
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_user: jellyfin
|
||||||
jellyfin_version: "10.10.3"
|
jellyfin_version: "10.10.6"
|
||||||
jellyfin_state: present
|
jellyfin_state: present
|
||||||
|
jellyfin_deployment_method: docker
|
||||||
|
|
||||||
jellyfin_base_path: /opt/jellyfin
|
jellyfin_base_path: /opt/jellyfin
|
||||||
jellyfin_config_path: "{{ jellyfin_base_path }}/config"
|
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(', ') }}.
|
states are {{ jellyfin_states | join(', ') }}.
|
||||||
when: jellyfin_state not in jellyfin_states
|
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 }}
|
- name: Ensure jellyfin user '{{ jellyfin_user }}' is {{ jellyfin_state }}
|
||||||
ansible.builtin.user:
|
ansible.builtin.user:
|
||||||
name: "{{ jellyfin_user }}"
|
name: "{{ jellyfin_user }}"
|
||||||
@ -23,25 +30,6 @@
|
|||||||
mode: "{{ item.mode }}"
|
mode: "{{ item.mode }}"
|
||||||
loop: "{{ jellyfin_host_directories }}"
|
loop: "{{ jellyfin_host_directories }}"
|
||||||
|
|
||||||
- name: Ensure container image '{{ jellyfin_container_image_ref }}' is {{ jellyfin_state }}
|
- name: Ensure jellyfin is deployed using {{ jellyfin_deployment_method }}
|
||||||
community.docker.docker_image:
|
ansible.builtin.include_tasks:
|
||||||
name: "{{ jellyfin_container_image_ref }}"
|
file: "deploy-{{ jellyfin_deployment_method }}.yml"
|
||||||
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 }}"
|
|
||||||
|
@ -2,6 +2,9 @@
|
|||||||
jellyfin_states:
|
jellyfin_states:
|
||||||
- present
|
- present
|
||||||
- absent
|
- absent
|
||||||
|
jellyfin_deployment_methods:
|
||||||
|
- docker
|
||||||
|
- podman
|
||||||
|
|
||||||
jellyfin_container_base_volumes:
|
jellyfin_container_base_volumes:
|
||||||
- "{{ jellyfin_config_path }}:/config:z"
|
- "{{ jellyfin_config_path }}:/config:z"
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
keycloak_version: 26.0.7
|
keycloak_version: "26.1.4"
|
||||||
keycloak_container_name: keycloak
|
keycloak_container_name: keycloak
|
||||||
|
|
||||||
keycloak_container_image_upstream_registry: quay.io
|
keycloak_container_image_upstream_registry: quay.io
|
||||||
|
@ -10,7 +10,9 @@ ENV KC_DB=$DB_VENDOR
|
|||||||
|
|
||||||
WORKDIR {{ keycloak_container_working_directory }}
|
WORKDIR {{ keycloak_container_working_directory }}
|
||||||
|
|
||||||
|
{% if keycloak_container_image_add_local_providers | default(true) %}
|
||||||
ADD ./providers/* providers/
|
ADD ./providers/* providers/
|
||||||
|
{% endif %}
|
||||||
# Workaround to set correct mode on jar files
|
# Workaround to set correct mode on jar files
|
||||||
USER root
|
USER root
|
||||||
RUN chmod -R 0770 providers/*
|
RUN chmod -R 0770 providers/*
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
snipe_it_user: snipeit
|
snipe_it_user: snipeit
|
||||||
snipe_it_version: "7.1.15"
|
snipe_it_version: "8.0.4"
|
||||||
snipe_it_domain: ~
|
snipe_it_domain: ~
|
||||||
snipe_it_state: present
|
snipe_it_state: present
|
||||||
snipe_it_deployment_method: docker
|
snipe_it_deployment_method: docker
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
vaultwarden_user: vaultwarden
|
vaultwarden_user: vaultwarden
|
||||||
vaultwarden_version: "1.32.7"
|
vaultwarden_version: "1.33.2"
|
||||||
|
|
||||||
vaultwarden_config_file: "/etc/vaultwarden/config.json"
|
vaultwarden_config_file: "/etc/vaultwarden/config.json"
|
||||||
vaultwarden_config_directory: "{{ vaultwarden_config_file | dirname }}"
|
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
|
- absent
|
||||||
vaultwarden_deployment_methods:
|
vaultwarden_deployment_methods:
|
||||||
- docker
|
- docker
|
||||||
|
- podman
|
||||||
vaultwarden_required_variables:
|
vaultwarden_required_variables:
|
||||||
- vaultwarden_config_domain
|
- vaultwarden_config_domain
|
||||||
vaultwarden_conditionally_required_variables:
|
vaultwarden_conditionally_required_variables:
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
vouch_proxy_user: vouch-proxy
|
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_base_path: /opt/vouch-proxy
|
||||||
vouch_proxy_config_path: "{{ vouch_proxy_base_path }}/config"
|
vouch_proxy_config_path: "{{ vouch_proxy_base_path }}/config"
|
||||||
vouch_proxy_config_file: "{{ vouch_proxy_config_path }}/config.yaml"
|
vouch_proxy_config_file: "{{ vouch_proxy_config_path }}/config.yaml"
|
||||||
|
Reference in New Issue
Block a user