From 112d5e438f00207b2c088f7f89aa3871d42d0f19 Mon Sep 17 00:00:00 2001
From: Christian Elberfeld <elberfeld@web.de>
Date: Tue, 17 Oct 2017 23:53:22 +0200
Subject: [PATCH] =?UTF-8?q?docker=20f=C3=BCr=20wordpress=20umzug,=20aktuel?=
 =?UTF-8?q?l=20als=20www-test=20bereitgestellt?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 host_vars/webserver                           |  3 +-
 webserver/docker_wordpress/tasks/main.yml     | 39 +++++++++++++++++++
 .../templates/docker-compose.yml              | 30 ++++++++++++++
 .../docker_wordpress/templates/uploads.ini    |  6 +++
 webserver/main.yml                            |  1 +
 webserver/nginx/includes/www-test             | 12 ++++++
 webserver/nginx/tasks/main.yml                |  3 +-
 7 files changed, 92 insertions(+), 2 deletions(-)
 create mode 100644 webserver/docker_wordpress/tasks/main.yml
 create mode 100644 webserver/docker_wordpress/templates/docker-compose.yml
 create mode 100644 webserver/docker_wordpress/templates/uploads.ini
 create mode 100644 webserver/nginx/includes/www-test

diff --git a/host_vars/webserver b/host_vars/webserver
index c08961eb..66ba603e 100644
--- a/host_vars/webserver
+++ b/host_vars/webserver
@@ -40,7 +40,8 @@ webserver_domains:
   - "mattermost"
   - "pad"
   - "wiki"
-  
+  - "www-test"
+
 administratorenteam:
   - "void"
   - "dray"
diff --git a/webserver/docker_wordpress/tasks/main.yml b/webserver/docker_wordpress/tasks/main.yml
new file mode 100644
index 00000000..1def8133
--- /dev/null
+++ b/webserver/docker_wordpress/tasks/main.yml
@@ -0,0 +1,39 @@
+---
+- name: get secrets from server 1
+  slurp: src={{ item }}
+  with_items:
+    - /srv/wordpress/mysql_root_pass
+    - /srv/wordpress/mysql_user_pass
+  register: wordpress_secrets
+
+- name: get secrets from server 2
+  set_fact: 
+    mysql_root_pass: "{{ wordpress_secrets.results | selectattr('item', 'equalto', '/srv/wordpress/mysql_root_pass') | map(attribute='content') | list | first | b64decode | regex_replace('\\s', '') }}" 
+    mysql_user_pass: "{{ wordpress_secrets.results | selectattr('item', 'equalto', '/srv/wordpress/mysql_user_pass') | map(attribute='content') | list | first | b64decode | regex_replace('\\s', '') }}" 
+
+- name: create folder struct for wordpress
+  file: 
+    path: "{{ item }}"
+    state: "directory"
+    owner: www-data
+    group: www-data
+  with_items:
+    - "/srv/wordpress/"
+    - "/srv/wordpress/config"
+    - "/srv/wordpress/data/"
+    - "/srv/wordpress/db/"
+
+- name: create config files
+  template: src={{ item }} dest=/srv/wordpress/config/{{ item }}
+  with_items: 
+    - uploads.ini
+
+- name: create config file
+  template: src={{ item }} dest=/srv/wordpress/{{ item }}
+  with_items: 
+    - docker-compose.yml
+
+- name: start wordpress docker
+  docker_service:
+    project_src: /srv/wordpress/
+    state: present
diff --git a/webserver/docker_wordpress/templates/docker-compose.yml b/webserver/docker_wordpress/templates/docker-compose.yml
new file mode 100644
index 00000000..09b6703b
--- /dev/null
+++ b/webserver/docker_wordpress/templates/docker-compose.yml
@@ -0,0 +1,30 @@
+
+version: "3"
+
+services:
+
+  db: 
+
+    image: mariadb:10
+    restart: always
+    volumes:
+      - /srv/wordpress/db/:/var/lib/mysql
+    environment:
+      MYSQL_ROOT_PASSWORD: "{{ mysql_root_pass }}"
+      MYSQL_PASSWORD: "{{ mysql_user_pass }}"
+      MYSQL_DATABASE: wordpress
+      MYSQL_USER: wordpress
+
+  app:
+
+    image: wordpress:4.8.2-php7.1-apache
+    restart: always
+    volumes:
+      - /srv/wordpress/config/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
+      - /srv/wordpress/data:/var/www/html
+    ports:
+      - 127.0.0.1:42006:80
+    environment:
+      WORDPRESS_DB_HOST: db
+      WORDPRESS_DB_USER: wordpress
+      WORDPRESS_DB_PASSWORD: "{{ mysql_user_pass }}"
diff --git a/webserver/docker_wordpress/templates/uploads.ini b/webserver/docker_wordpress/templates/uploads.ini
new file mode 100644
index 00000000..c32c80ec
--- /dev/null
+++ b/webserver/docker_wordpress/templates/uploads.ini
@@ -0,0 +1,6 @@
+
+file_uploads = On
+memory_limit = 64M
+upload_max_filesize = 64M
+post_max_size = 64M
+max_execution_time = 600
diff --git a/webserver/main.yml b/webserver/main.yml
index 7514f84e..f53ada6f 100644
--- a/webserver/main.yml
+++ b/webserver/main.yml
@@ -14,4 +14,5 @@
     - { role: docker_matterbridge, tags: matterbridge }
     - { role: docker_warpinfra, tags: warpinfra }
     - { role: docker_warpinfratest, tags: warpinfratest }
+    - { role: docker_wordpress, tags: wordpress }
     
diff --git a/webserver/nginx/includes/www-test b/webserver/nginx/includes/www-test
new file mode 100644
index 00000000..c171375d
--- /dev/null
+++ b/webserver/nginx/includes/www-test
@@ -0,0 +1,12 @@
+
+	location /  {
+
+        	proxy_set_header        Host $host;
+        	proxy_set_header        X-Real-IP $remote_addr;
+	        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
+        	proxy_set_header        X-Forwarded-Proto $scheme;
+
+	        proxy_pass      http://127.0.0.1:42006/;
+        	proxy_redirect  off;
+
+    }
diff --git a/webserver/nginx/tasks/main.yml b/webserver/nginx/tasks/main.yml
index 8ac78368..abe3edee 100644
--- a/webserver/nginx/tasks/main.yml
+++ b/webserver/nginx/tasks/main.yml
@@ -70,7 +70,8 @@
 
 - name: Konfig-Datei default erstellen
   template: src=nginx-site dest=/etc/nginx/sites-enabled/{{ item }}.wapzone.ms
-  with_items: webserver_domains
+  with_items: 
+    - "{{webserver_domains}}"
   notify: restart nginx
 
 
-- 
GitLab