Skip to content

Commit

Permalink
Wordpress: Multiple instance support. Closes #249
Browse files Browse the repository at this point in the history
  • Loading branch information
RaneyDazed authored and owine committed Apr 30, 2023
1 parent 6bdf377 commit 339a6bb
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 60 deletions.
56 changes: 30 additions & 26 deletions roles/wordpress/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
# Basics
################################

wordpress_name: wordpress
wordpress_instances: ["wordpress"]

################################
# Paths
Expand All @@ -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 }}"

################################
Expand All @@ -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 }}"
Expand All @@ -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
Expand Down
32 changes: 6 additions & 26 deletions roles/wordpress/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
20 changes: 12 additions & 8 deletions roles/wordpress/tasks/main2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand All @@ -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"

0 comments on commit 339a6bb

Please sign in to comment.