From 339a6bb449974e3f771af5817c962ff80934de9e Mon Sep 17 00:00:00 2001 From: CHAIR <95461636+RaneyDazed@users.noreply.github.com> Date: Thu, 27 Apr 2023 21:58:30 -0500 Subject: [PATCH] Wordpress: Multiple instance support. Closes #249 --- roles/wordpress/defaults/main.yml | 56 +++++++++++++++++-------------- roles/wordpress/tasks/main.yml | 32 ++++-------------- roles/wordpress/tasks/main2.yml | 20 ++++++----- 3 files changed, 48 insertions(+), 60 deletions(-) diff --git a/roles/wordpress/defaults/main.yml b/roles/wordpress/defaults/main.yml index b987dfcf1c..a6b24c63ac 100644 --- a/roles/wordpress/defaults/main.yml +++ b/roles/wordpress/defaults/main.yml @@ -11,7 +11,7 @@ # Basics ################################ -wordpress_name: wordpress +wordpress_instances: ["wordpress"] ################################ # Paths @@ -30,14 +30,15 @@ wordpress_paths_recursive: true wordpress_web_subdomain: "{{ wordpress_name }}" wordpress_web_domain: "{{ user.domain }}" wordpress_web_port: "80" -wordpress_web_url: "{{ 'https://' + wordpress_web_subdomain + '.' + wordpress_web_domain }}" +wordpress_web_url: "{{ 'https://' + lookup('vars', wordpress_name + '_web_subdomain', default=wordpress_web_subdomain) + + '.' + lookup('vars', wordpress_name + '_web_domain', default=wordpress_web_domain) }}" ################################ # DNS ################################ -wordpress_dns_record: "{{ wordpress_web_subdomain }}" -wordpress_dns_zone: "{{ wordpress_web_domain }}" +wordpress_dns_record: "{{ lookup('vars', wordpress_name + '_web_subdomain', default=wordpress_web_subdomain) }}" +wordpress_dns_zone: "{{ lookup('vars', wordpress_name + '_web_domain', default=wordpress_web_domain) }}" wordpress_dns_proxy: "{{ dns.proxied }}" ################################ @@ -61,58 +62,61 @@ wordpress_docker_container: "{{ wordpress_name }}" # Image wordpress_docker_image_pull: true +wordpress_docker_image_repo: "wordpress" wordpress_docker_image_tag: "latest" -wordpress_docker_image: "wordpress:{{ wordpress_docker_image_tag }}" +wordpress_docker_image: "{{ lookup('vars', wordpress_name + '_docker_image_repo', default=wordpress_docker_image_repo) + + ':' + lookup('vars', wordpress_name + '_docker_image_tag', default=wordpress_docker_image_tag) }}" + # Ports wordpress_docker_ports_defaults: [] wordpress_docker_ports_custom: [] -wordpress_docker_ports: "{{ wordpress_docker_ports_defaults - + wordpress_docker_ports_custom }}" +wordpress_docker_ports: "{{ lookup('vars', wordpress_name + '_docker_ports_defaults', default=wordpress_docker_ports_defaults) + + lookup('vars', wordpress_name + '_docker_ports_custom', default=wordpress_docker_ports_custom) }}" # Envs wordpress_docker_envs_default: TZ: "{{ tz }}" - WORDPRESS_DB_HOST: "{{ bookstack_name }}_mariadb:3306" + WORDPRESS_DB_HOST: "{{ wordpress_name }}_mariadb:3306" WORDPRESS_DB_USER: "{{ mariadb_docker_env_user }}" WORDPRESS_DB_PASSWORD: "{{ mariadb_docker_env_pass }}" WORDPRESS_DB_NAME: "{{ wordpress_name }}" wordpress_docker_envs_custom: {} -wordpress_docker_envs: "{{ wordpress_docker_envs_default - | combine(wordpress_docker_envs_custom) }}" +wordpress_docker_envs: "{{ lookup('vars', wordpress_name + '_docker_envs_default', default=wordpress_docker_envs_default) + | combine(lookup('vars', wordpress_name + '_docker_envs_custom', default=wordpress_docker_envs_custom)) }}" # Commands wordpress_docker_commands_default: [] wordpress_docker_commands_custom: [] -wordpress_docker_commands: "{{ wordpress_docker_commands_default - + wordpress_docker_commands_custom }}" +wordpress_docker_commands: "{{ lookup('vars', wordpress_name + '_docker_commands_default', default=wordpress_docker_commands_default) + + lookup('vars', wordpress_name + '_docker_commands_custom', default=wordpress_docker_commands_custom) }}" # Volumes wordpress_docker_volumes_default: - "{{ wordpress_paths_location }}:/var/www/html" wordpress_docker_volumes_custom: [] -wordpress_docker_volumes: "{{ wordpress_docker_volumes_default - + wordpress_docker_volumes_custom }}" +wordpress_docker_volumes: "{{ lookup('vars', wordpress_name + '_docker_volumes_default', default=wordpress_docker_volumes_default) + + lookup('vars', wordpress_name + '_docker_volumes_custom', default=wordpress_docker_volumes_custom) }}" # Devices wordpress_docker_devices_default: [] wordpress_docker_devices_custom: [] -wordpress_docker_devices: "{{ wordpress_docker_devices_default - + wordpress_docker_devices_custom }}" +wordpress_docker_devices: "{{ lookup('vars', wordpress_name + '_docker_devices_default', default=wordpress_docker_devices_default) + + lookup('vars', wordpress_name + '_docker_devices_custom', default=wordpress_docker_devices_custom) }}" # Hosts wordpress_docker_hosts_default: [] wordpress_docker_hosts_custom: [] wordpress_docker_hosts: "{{ docker_hosts_common - | combine(wordpress_docker_hosts_default) - | combine(wordpress_docker_hosts_custom) }}" + | combine(lookup('vars', wordpress_name + '_docker_hosts_default', default=wordpress_docker_hosts_default)) + | combine(lookup('vars', wordpress_name + '_docker_hosts_custom', default=wordpress_docker_hosts_custom)) }}" # Labels wordpress_docker_labels_default: {} wordpress_docker_labels_custom: {} wordpress_docker_labels: "{{ docker_labels_common - | combine(wordpress_docker_labels_default) - | combine(wordpress_docker_labels_custom) }}" + | combine(lookup('vars', wordpress_name + '_docker_labels_default', default=wordpress_docker_labels_default)) + | combine(lookup('vars', wordpress_name + '_docker_labels_custom', default=wordpress_docker_labels_custom)) }}" # Hostname wordpress_docker_hostname: "{{ wordpress_name }}" @@ -122,20 +126,20 @@ wordpress_docker_networks_alias: "{{ wordpress_name }}" wordpress_docker_networks_default: [] wordpress_docker_networks_custom: [] wordpress_docker_networks: "{{ docker_networks_common - + wordpress_docker_networks_default - + wordpress_docker_networks_custom }}" + + lookup('vars', wordpress_name + '_docker_networks_default', default=wordpress_docker_networks_default) + + lookup('vars', wordpress_name + '_docker_networks_custom', default=wordpress_docker_networks_custom) }}" # Capabilities wordpress_docker_capabilities_default: [] wordpress_docker_capabilities_custom: [] -wordpress_docker_capabilities: "{{ wordpress_docker_capabilities_default - + wordpress_docker_capabilities_custom }}" +wordpress_docker_capabilities: "{{ lookup('vars', wordpress_name + '_docker_capabilities_default', default=wordpress_docker_capabilities_default) + + lookup('vars', wordpress_name + '_docker_capabilities_custom', default=wordpress_docker_capabilities_custom) }}" # Security Opts wordpress_docker_security_opts_default: [] wordpress_docker_security_opts_custom: [] -wordpress_docker_security_opts: "{{ wordpress_docker_security_opts_default - + wordpress_docker_security_opts_custom }}" +wordpress_docker_security_opts: "{{ lookup('vars', wordpress_name + '_docker_security_opts_default', default=wordpress_docker_security_opts_default) + + lookup('vars', wordpress_name + '_docker_security_opts_custom', default=wordpress_docker_security_opts_custom) }}" # Restart Policy wordpress_docker_restart_policy: unless-stopped diff --git a/roles/wordpress/tasks/main.yml b/roles/wordpress/tasks/main.yml index ae437bdc65..5780de0ab9 100644 --- a/roles/wordpress/tasks/main.yml +++ b/roles/wordpress/tasks/main.yml @@ -7,30 +7,10 @@ # GNU General Public License v3.0 # ######################################################################### --- -- name: MariaDB Role - ansible.builtin.include_role: - name: mariadb +- name: "Execute Wordpress roles" + ansible.builtin.include_tasks: main2.yml vars: - mariadb_instances: ["{{ wordpress_name }}_mariadb"] - mariadb_docker_env_db: "{{ wordpress_name }}" - mariadb_paths_folder: "{{ wordpress_name }}" - mariadb_paths_location: "{{ server_appdata_path }}/{{ mariadb_paths_folder }}/mariadb" - -- name: Import Default MariaDB variables - ansible.builtin.include_vars: /srv/git/saltbox/roles/mariadb/defaults/main.yml - -- name: Add DNS record - ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" - vars: - dns_record: "{{ lookup('vars', role_name + '_dns_record') }}" - dns_zone: "{{ lookup('vars', role_name + '_dns_zone') }}" - dns_proxy: "{{ lookup('vars', role_name + '_dns_proxy') }}" - -- name: Remove existing Docker container - ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/remove_docker_container.yml" - -- name: Create directories - ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" - -- name: Create Docker container - ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml" + calibre_name: "{{ role }}" + with_items: "{{ wordpress_instances }}" + loop_control: + loop_var: role diff --git a/roles/wordpress/tasks/main2.yml b/roles/wordpress/tasks/main2.yml index 651bd792ea..ae437bdc65 100755 --- a/roles/wordpress/tasks/main2.yml +++ b/roles/wordpress/tasks/main2.yml @@ -7,6 +7,18 @@ # GNU General Public License v3.0 # ######################################################################### --- +- name: MariaDB Role + ansible.builtin.include_role: + name: mariadb + vars: + mariadb_instances: ["{{ wordpress_name }}_mariadb"] + mariadb_docker_env_db: "{{ wordpress_name }}" + mariadb_paths_folder: "{{ wordpress_name }}" + mariadb_paths_location: "{{ server_appdata_path }}/{{ mariadb_paths_folder }}/mariadb" + +- name: Import Default MariaDB variables + ansible.builtin.include_vars: /srv/git/saltbox/roles/mariadb/defaults/main.yml + - name: Add DNS record ansible.builtin.include_tasks: "{{ resources_tasks_path }}/dns/tasker.yml" vars: @@ -20,13 +32,5 @@ - name: Create directories ansible.builtin.include_tasks: "{{ resources_tasks_path }}/directories/create_directories.yml" -- name: MariaDB | Create wordpress database - community.mysql.mysql_db: - name: "{{ lookup('vars', wordpress_name + '_mariadb_name', default=wordpress_mariadb_name) }}" - login_host: "{{ lookup('vars', wordpress_name + '_mariadb_login_host', default=wordpress_mariadb_login_host) }}" - login_user: "{{ lookup('vars', wordpress_name + '_mariadb_login_user', default=wordpress_mariadb_login_user) }}" - login_password: "{{ lookup('vars', wordpress_name + '_mariadb_password', default=wordpress_mariadb_password) }}" - state: present - - name: Create Docker container ansible.builtin.include_tasks: "{{ resources_tasks_path }}/docker/create_docker_container.yml"