diff options
author | Christian Pointner <equinox@spreadspace.org> | 2023-01-20 01:32:18 +0100 |
---|---|---|
committer | Christian Pointner <equinox@spreadspace.org> | 2023-01-20 01:32:18 +0100 |
commit | d3a4cb89372814728d272eb6452ad782447d2923 (patch) | |
tree | ed4af40f319c2884bf8577b2a43aef16833dc0ef /roles/apps/bluespice/tasks | |
parent | add host ch-tarvos (diff) |
add tenative role for bluespice mdediawiki (unfinished)
Diffstat (limited to 'roles/apps/bluespice/tasks')
-rw-r--r-- | roles/apps/bluespice/tasks/main.yml | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/roles/apps/bluespice/tasks/main.yml b/roles/apps/bluespice/tasks/main.yml new file mode 100644 index 00000000..899d1e1d --- /dev/null +++ b/roles/apps/bluespice/tasks/main.yml @@ -0,0 +1,61 @@ +--- +- name: create zfs datasets + when: bluespice_zfs is defined + block: + - name: create zfs base dataset + zfs: + name: "{{ bluespice_zfs.pool }}/{{ bluespice_zfs.name }}" + state: present + extra_zfs_properties: "{{ bluespice_zfs.properties | dehumanize_zfs_properties | default(omit) }}" + + - name: create zfs volumes for instances + loop: "{{ bluespice_instances | dict2items }}" + loop_control: + label: "{{ item.key }} ({{ (item.value.zfs_properties | default({})).items() | map('join', '=') | join(', ') }})" + zfs: + name: "{{ bluespice_zfs.pool }}/{{ bluespice_zfs.name }}/{{ item.key }}" + state: present + extra_zfs_properties: "{{ item.value.zfs_properties | dehumanize_zfs_properties | default(omit) }}" + + - name: configure bluespice base bath + set_fact: + bluespice_base_path: "{{ (zfs_pools[bluespice_zfs.pool].mountpoint, bluespice_zfs.name) | path_join }}" + + +- name: create instance subdirectories + loop: "{{ bluespice_instances | list }}" + file: + path: "{{ bluespice_base_path }}/{{ item }}/data" + state: directory + + +- name: install pod manifest + loop: "{{ bluespice_instances | dict2items }}" + loop_control: + label: "{{ item.key }}" + vars: + kubernetes_standalone_pod: + name: "bluespice-{{ item.key }}" + spec: "{{ lookup('template', 'pod-spec.yml.j2') }}" + mode: "0600" + include_role: + name: kubernetes/standalone/pod + +- name: configure nginx vhost + loop: "{{ bluespice_instances | dict2items }}" + loop_control: + label: "{{ item.key }}" + vars: + nginx_vhost: + name: "bluespice-{{ item.key }}" + template: generic + acme: true + hostnames: + - "{{ item.value.hostname }}" + locations: + '/': + proxy_pass: "http://127.0.0.1:{{ item.value.port }}" + extra_directives: |- + client_max_body_size 0; + include_role: + name: nginx/vhost |