add wordpress role with lots of bells and whistles
This commit is contained in:
@@ -7,3 +7,6 @@ To add a new role:
|
|||||||
1. usually meta/main.yml with depend on container
|
1. usually meta/main.yml with depend on container
|
||||||
1. README.md
|
1. README.md
|
||||||
1. Add docs to docs/
|
1. Add docs to docs/
|
||||||
|
|
||||||
|
The following roles have default versions which should probably be overridden:
|
||||||
|
- wordpress: `wordpress_tag`
|
||||||
|
|||||||
21
docs/wordpress.md
Normal file
21
docs/wordpress.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Required variables
|
||||||
|
These variables are required. Example values included.
|
||||||
|
|
||||||
|
```
|
||||||
|
ports:
|
||||||
|
wordpress_http: 8080
|
||||||
|
|
||||||
|
docker_vhost_domains:
|
||||||
|
wordpress:
|
||||||
|
- wordpress.domain.tld
|
||||||
|
|
||||||
|
database_passwords:
|
||||||
|
wordpress: secret
|
||||||
|
```
|
||||||
|
|
||||||
|
# Optional variables
|
||||||
|
These variables have default values listed below
|
||||||
|
|
||||||
|
```
|
||||||
|
wordpress_tag: php8.1
|
||||||
|
```
|
||||||
1
roles/wordpress/README.md
Normal file
1
roles/wordpress/README.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
Installs wordpress in docker and configures cron
|
||||||
14
roles/wordpress/defaults/main.yml
Normal file
14
roles/wordpress/defaults/main.yml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
wordpress_tag: php8.1
|
||||||
|
|
||||||
|
dockerfile: {}
|
||||||
|
docker_additional_services: []
|
||||||
|
|
||||||
|
docker_host_user: false
|
||||||
|
wordpress_symlinks: false
|
||||||
|
|
||||||
|
wordpress_docker_volumes:
|
||||||
|
- name: html
|
||||||
|
path: /var/www/html
|
||||||
|
|
||||||
35
roles/wordpress/tasks/main.yml
Normal file
35
roles/wordpress/tasks/main.yml
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
- name: Add memcached php extension to container
|
||||||
|
set_fact:
|
||||||
|
dockerfile: "{{ dockerfile | combine({'run': ['apt-get update && apt-get install -y libmemcached-dev zlib1g-dev && pecl install memcached-3.2.0 && docker-php-ext-enable memcached']}, list_merge='append') }}"
|
||||||
|
when: "'memcached' in docker_additional_services"
|
||||||
|
|
||||||
|
- name: Add pdo_mysql php extension to container
|
||||||
|
set_fact:
|
||||||
|
dockerfile: "{{ dockerfile | combine({'run': ['docker-php-ext-install -j$(nproc) pdo_mysql']}, list_merge='append') }}"
|
||||||
|
when: "'pdo_mysql' in wordpress_php_extensions"
|
||||||
|
|
||||||
|
- name: Include additional volume vars
|
||||||
|
include_vars: "{{ item }}_volume.yml"
|
||||||
|
loop: "{{ wordpress_additional_volumes | default([]) }}"
|
||||||
|
|
||||||
|
- name: Wordpress container setup
|
||||||
|
include_role:
|
||||||
|
name: container
|
||||||
|
vars:
|
||||||
|
docker_service: wordpress
|
||||||
|
docker_image: wordpress:{{ wordpress_tag }}
|
||||||
|
docker_image_http_port: 80
|
||||||
|
docker_database: mariadb
|
||||||
|
docker_volumes: "{{ wordpress_docker_volumes + wordpress_www_volume + wordpress_log_volume }}"
|
||||||
|
docker_volume_type: bind
|
||||||
|
docker_env:
|
||||||
|
WORDPRESS_DB_HOST: "{{ docker_service_name }}_db"
|
||||||
|
WORDPRESS_DB_NAME: "{{ docker_service_name }}"
|
||||||
|
WORDPRESS_DB_USER: "{{ docker_service_name }}"
|
||||||
|
WORDPRESS_DB_PASSWORD: "{{ database_passwords[docker_service_name] }}"
|
||||||
|
WORDPRESS_CONFIG_EXTRA: |
|
||||||
|
define('WP_SITEURL', 'https://{{ docker_vhost_domains[docker_service_name][0] }}');
|
||||||
|
define('WP_HOME', 'https://{{ docker_vhost_domains[docker_service_name][0] }}');
|
||||||
|
|
||||||
6
roles/wordpress/vars/log_volume.yml
Normal file
6
roles/wordpress/vars/log_volume.yml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
wordpress_log_volume:
|
||||||
|
- name: logs
|
||||||
|
path: /var/log/apache2
|
||||||
|
|
||||||
6
roles/wordpress/vars/www_volume.yml
Normal file
6
roles/wordpress/vars/www_volume.yml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
wordpress_www_volume:
|
||||||
|
- name: www
|
||||||
|
path: /var/www
|
||||||
|
|
||||||
Reference in New Issue
Block a user