untested: added storage_mount role
This commit is contained in:
parent
9096eebd24
commit
20d5ecbeb3
97
inventory/host_vars/DebianMain.yml
Normal file
97
inventory/host_vars/DebianMain.yml
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
_speedup_bitwarden_hetzner_record: "{{ bitwarden_records_urmel_services['Hetzner'] }}"
|
||||||
|
_speedup_bitwarden_hetzner_fields: "{{ dict(_speedup_bitwarden_hetzner_record.fields|map(attribute='name')|zip(_speedup_bitwarden_hetzner_record.fields|map(attribute='value'))) }}"
|
||||||
|
|
||||||
|
_speedup_noreply_mail_record: "{{ bitwarden_records_urmel_services['Noreply Mail'] }}"
|
||||||
|
_speedup_noreply_mail_fields: "{{ dict(_speedup_noreply_mail_record.fields|map(attribute='name')|zip(_speedup_noreply_mail_record.fields|map(attribute='value'))) }}"
|
||||||
|
|
||||||
|
_speedup_nextcloud_record: "{{ bitwarden_records_urmel_services['Nextcloud'] }}"
|
||||||
|
_speedup_nextcloud_fields: "{{ dict(_speedup_nextcloud_record.fields|map(attribute='name')|zip(_speedup_nextcloud_record.fields|map(attribute='value'))) }}"
|
||||||
|
|
||||||
|
ddns_override:
|
||||||
|
domains:
|
||||||
|
- provider: "hetznercloud"
|
||||||
|
domain: "urmel.de"
|
||||||
|
ip_version: "ipv4"
|
||||||
|
token: "{{ _speedup_bitwarden_hetzner_fields.api_token }}"
|
||||||
|
- provider: "hetznercloud"
|
||||||
|
domain: "urmel.de"
|
||||||
|
ip_version: "ipv6"
|
||||||
|
token: "{{ _speedup_bitwarden_hetzner_fields.api_token }}"
|
||||||
|
- provider: "hetznercloud"
|
||||||
|
domain: "*.urmel.de"
|
||||||
|
ip_version: "ipv4"
|
||||||
|
token: "{{ _speedup_bitwarden_hetzner_fields.api_token }}"
|
||||||
|
- provider: "hetznercloud"
|
||||||
|
domain: "*.urmel.de"
|
||||||
|
ip_version: "ipv6"
|
||||||
|
token: "{{ _speedup_bitwarden_hetzner_fields.api_token }}"
|
||||||
|
|
||||||
|
traefik_override:
|
||||||
|
expose_additional_ports:
|
||||||
|
- 22
|
||||||
|
include_external_services:
|
||||||
|
homeassistant:
|
||||||
|
url: 172.24.2.4
|
||||||
|
|
||||||
|
|
||||||
|
main_domain: "urmel.de"
|
||||||
|
http_port: "80"
|
||||||
|
https_port: "443"
|
||||||
|
|
||||||
|
duckdns_api_token: "{{ (bitwarden_records_urmel_services['DuckDns'].fields | selectattr('name', '==', 'token') | first).value }}"
|
||||||
|
hetzner_api_token: "{{ _speedup_bitwarden_hetzner_fields.api_token }}"
|
||||||
|
basic_auth_password: "{{ (bitwarden_records_urmel_services['Traefik'].fields | selectattr('name', '==', 'auth_string') | first).value }}"
|
||||||
|
|
||||||
|
authentik_override:
|
||||||
|
url: "auth.urmel.de"
|
||||||
|
db_password: "{{ (bitwarden_records_urmel_services['Authentik'].fields | selectattr('name', '==', 'db_password') | first).value }}"
|
||||||
|
secret: "{{ (bitwarden_records_urmel_services['Authentik'].fields | selectattr('name', '==', 'secret') | first).value }}"
|
||||||
|
mail:
|
||||||
|
host: "{{ _speedup_noreply_mail_fields.smtp_host }}"
|
||||||
|
user: "{{ _speedup_noreply_mail_fields.address }}"
|
||||||
|
password: "{{ _speedup_noreply_mail_fields.password }}"
|
||||||
|
radius:
|
||||||
|
enabled: false
|
||||||
|
|
||||||
|
|
||||||
|
nextcloud_override:
|
||||||
|
url: "nextcloud.urmel.de"
|
||||||
|
data_path: "/mnt/nextcloud"
|
||||||
|
db_password: "{{ _speedup_nextcloud_fields.db_password }}"
|
||||||
|
secret: "{{ _speedup_nextcloud_fields.secret }}"
|
||||||
|
secret_salt: "{{ _speedup_nextcloud_fields.salt }}"
|
||||||
|
|
||||||
|
networkmount:
|
||||||
|
host: "217.100.0.2"
|
||||||
|
host_path: "/mnt/Main/nextcloudData"
|
||||||
|
args: "rw,noatime,tcp"
|
||||||
|
|
||||||
|
mail:
|
||||||
|
host: "{{ _speedup_noreply_mail_fields.smtp_host }}"
|
||||||
|
address: "{{ _speedup_noreply_mail_fields.address }}"
|
||||||
|
password: "{{ _speedup_noreply_mail_fields.password }}"
|
||||||
|
|
||||||
|
oidc:
|
||||||
|
issuer: "https://auth.urmel.de/application/o/nextcloud/.well-known/openid-configuration"
|
||||||
|
client_id: "{{ _speedup_nextcloud_fields.oidc_client_id }}"
|
||||||
|
client_secret: "{{ _speedup_nextcloud_fields.oidc_client_secret }}"
|
||||||
|
|
||||||
|
|
||||||
|
collabora:
|
||||||
|
url: "collabora.urmel.de"
|
||||||
|
password: "{{ _speedup_nextcloud_fields.collabora_password }}"
|
||||||
|
drawio:
|
||||||
|
url: "drawio.urmel.de"
|
||||||
|
|
||||||
|
vaultwarden_override:
|
||||||
|
url: "vaultwarden.urmel.de"
|
||||||
|
admin_token: "{{ (bitwarden_records_urmel_services['Vaultwarden'].fields | selectattr('name', '==', 'admin_token') | first).value }}"
|
||||||
|
oidc:
|
||||||
|
issuer: ""
|
||||||
|
client_id: "{{ (bitwarden_records_urmel_services['Vaultwarden'].fields | selectattr('name', '==', 'oidc_client_id') | first).value }}"
|
||||||
|
client_secret: "{{ (bitwarden_records_urmel_services['Vaultwarden'].fields | selectattr('name', '==', 'oidc_client_secret') | first).value }}"
|
||||||
|
|
||||||
|
mail:
|
||||||
|
host: "{{ _speedup_noreply_mail_fields.smtp_host }}"
|
||||||
|
user: "{{ _speedup_noreply_mail_fields.address }}"
|
||||||
|
password: "{{ _speedup_noreply_mail_fields.password }}"
|
||||||
@ -4,3 +4,5 @@ all:
|
|||||||
hosts:
|
hosts:
|
||||||
beDebianMain:
|
beDebianMain:
|
||||||
ansible_host: 192.168.250.2
|
ansible_host: 192.168.250.2
|
||||||
|
DebianMain:
|
||||||
|
ansible_host: 172.24.2.10
|
||||||
|
|||||||
@ -30,10 +30,7 @@
|
|||||||
daemon_reload: true
|
daemon_reload: true
|
||||||
name: docker
|
name: docker
|
||||||
|
|
||||||
|
- name: Add .bashrc
|
||||||
- name: Add shell alias
|
template:
|
||||||
ansible.builtin.lineinfile:
|
src: .bashrc.j2
|
||||||
path: "root/.bashrc"
|
dest: "/root/.bashrc"
|
||||||
line: "alias dc='docker compose'"
|
|
||||||
regexp: '^alias dc='
|
|
||||||
create: true
|
|
||||||
|
|||||||
2
roles/base_server/templates/.bashrc.j2
Normal file
2
roles/base_server/templates/.bashrc.j2
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
alias dc="docker compose"
|
||||||
1
roles/storage_mount/README.md
Normal file
1
roles/storage_mount/README.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
# storage_mount
|
||||||
11
roles/storage_mount/defaults/main.yml
Normal file
11
roles/storage_mount/defaults/main.yml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
path: /srv/{{ role_name }}
|
||||||
|
|
||||||
|
storage_mount_override: {}
|
||||||
|
storage_mount_defaults:
|
||||||
|
type: "nfs4"
|
||||||
|
host: ""
|
||||||
|
host_path: ""
|
||||||
|
args: ""
|
||||||
|
dest_path: ""
|
||||||
|
user: ""
|
||||||
|
password: ""
|
||||||
9
roles/storage_mount/handlers/main.yml
Normal file
9
roles/storage_mount/handlers/main.yml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
- name: restart container
|
||||||
|
community.docker.docker_compose_v2:
|
||||||
|
project_src: "{{ path }}"
|
||||||
|
project_name: "{{ role_name }}"
|
||||||
|
recreate: "always"
|
||||||
|
services: ["storage_mount"]
|
||||||
|
state: "restarted"
|
||||||
|
when: not _storage_mount_already_restarted
|
||||||
|
|
||||||
20
roles/storage_mount/meta/main.yml
Normal file
20
roles/storage_mount/meta/main.yml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
galaxy_info:
|
||||||
|
author: "Niklas Freese <niklas@urmel.de>"
|
||||||
|
description: storage_mount
|
||||||
|
company: "Urmel Services"
|
||||||
|
license: AGPL-3.0-or-later
|
||||||
|
min_ansible_version: 2.1
|
||||||
|
# If this a Container Enabled role, provide the minimum Ansible Container version.
|
||||||
|
# min_ansible_container_version:
|
||||||
|
|
||||||
|
galaxy_tags: []
|
||||||
|
# List tags for your role here, one per line. A tag is a keyword that describes
|
||||||
|
# and categorizes the role. Users find roles by searching for tags. Be sure to
|
||||||
|
# remove the '[]' above, if you add tags to this list.
|
||||||
|
#
|
||||||
|
# NOTE: A tag is limited to a single word comprised of alphanumeric characters.
|
||||||
|
# Maximum 20 tags per role.
|
||||||
|
|
||||||
|
# dependencies:
|
||||||
|
# - role: base
|
||||||
16
roles/storage_mount/tasks/main.yml
Normal file
16
roles/storage_mount/tasks/main.yml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
- name: "set local variables from overrides and defaults"
|
||||||
|
set_fact:
|
||||||
|
storage_mount: "{{ (storage_mount_defaults | combine(storage_mount_override, recursive=True)) if storage_mount_override else storage_mount_defaults }}"
|
||||||
|
|
||||||
|
- name: get final escaped name
|
||||||
|
command: "systemd-escape --suffix=mount --path {{ storage_mount.dest_path }}"
|
||||||
|
register: escaped_mount_path
|
||||||
|
|
||||||
|
- block:
|
||||||
|
- name: template nsf.service
|
||||||
|
template:
|
||||||
|
stc: nfs.service.j2
|
||||||
|
path: "/etc/systemd/system/{{ escaped_mount_path.stdout }}"
|
||||||
|
when:
|
||||||
|
- "'nfs' in storage_mount.type"
|
||||||
8
roles/storage_mount/templates/nfs.service.j2
Normal file
8
roles/storage_mount/templates/nfs.service.j2
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Mount {{ escaped_mount_path }} via NFS
|
||||||
|
|
||||||
|
[Mount]
|
||||||
|
What={{ storage_mount.host }}:{{ storage_mount.host_path }}
|
||||||
|
Where={{ escaped_mount_path }}
|
||||||
|
Type={{ storage_mount.type }}
|
||||||
|
Options={{ storage_mount.options }}
|
||||||
Loading…
x
Reference in New Issue
Block a user