mirror of
				https://github.com/kevinveenbirkenbach/computer-playbook.git
				synced 2025-11-04 04:08:15 +00:00 
			
		
		
		
	- Switch certbot flag from MODE_TEST → MODE_DUMMY in dedicated certs - Add sys-svc-dns defaults for CLOUDFLARE_NAMESERVERS - Introduce 02_nameservers.yml for NS cleanup + enforce, adjust task ordering (apex now 03_apex.yml) - Enforce quoting for Bluesky and Mailu TXT records - Add cleanup of MX/TXT/DMARC/DKIM in Mailu role - Normalize no_log handling in Nextcloud plugin - Simplify async conditionals in Collabora role Conversation: https://chatgpt.com/share/68cd20d8-9ba8-800f-b070-f7294f072c40
		
			
				
	
	
		
			48 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
- name: enable {{ plugin_key }} nextcloud plugin
 | 
						|
  command: "{{ NEXTCLOUD_DOCKER_EXEC_OCC }} app:enable {{ plugin_key }}"
 | 
						|
  register: enable_result
 | 
						|
  changed_when: enable_result.rc == 0 and ("already enabled" not in enable_result.stdout)
 | 
						|
 | 
						|
- name: Check if {{ plugin_vars_path }} exists
 | 
						|
  stat:
 | 
						|
    path: "{{ plugin_vars_path }}"
 | 
						|
  delegate_to: localhost
 | 
						|
  become: false
 | 
						|
  register: plugin_vars_file
 | 
						|
 | 
						|
- name: "Load {{ plugin_key }} configuration variables"
 | 
						|
  include_vars:
 | 
						|
    file: "{{ plugin_vars_path }}"
 | 
						|
  when: plugin_vars_file.stat.exists
 | 
						|
 | 
						|
- name: "Set plugin configuration (batched shell, no async)"
 | 
						|
  ansible.builtin.shell: |
 | 
						|
    set -euo pipefail
 | 
						|
    {% for item in (plugin_configuration | default([])) %}
 | 
						|
    {{ NEXTCLOUD_DOCKER_EXEC_OCC }} \
 | 
						|
      config:app:set {{ item.appid }} {{ item.configkey }} \
 | 
						|
      --value '{{ ( (item.configvalue | to_json) if (item.configvalue is mapping) else (item.configvalue | string) ) 
 | 
						|
            | regex_replace("'", "'" ~ '"' ~ "'" ~ '"' ~ "'") }}'
 | 
						|
    {% endfor %}
 | 
						|
  args:
 | 
						|
    executable: /bin/bash
 | 
						|
  when: plugin_vars_file.stat.exists
 | 
						|
  register: config_set_shell
 | 
						|
  changed_when: >
 | 
						|
    not ASYNC_ENABLED and
 | 
						|
    (config_set_shell.stdout | default('')) is search(' set to ')
 | 
						|
  failed_when: not ASYNC_ENABLED and config_set_shell.rc != 0
 | 
						|
  async: "{{ ASYNC_TIME if ASYNC_ENABLED | bool else omit }}"
 | 
						|
  poll:  "{{ ASYNC_POLL if ASYNC_ENABLED | bool else omit }}"
 | 
						|
  no_log: "{{ MASK_CREDENTIALS_IN_LOGS | bool }}"
 | 
						|
 | 
						|
- name: Check if {{ plugin_task_path }} exists
 | 
						|
  stat:
 | 
						|
    path: "{{ plugin_task_path }}"
 | 
						|
  delegate_to: localhost
 | 
						|
  become: false
 | 
						|
  register: plugin_tasks_file
 | 
						|
 | 
						|
- name: "include {{ plugin_task_path }}"
 | 
						|
  include_tasks: "{{ plugin_task_path }}"
 | 
						|
  when: plugin_tasks_file.stat.exists |