From e6f31d527b1515fff83e69581c94704d31d5e0d0 Mon Sep 17 00:00:00 2001 From: Mauro Torrez Date: Wed, 28 Aug 2019 00:24:31 -0300 Subject: [PATCH] config inicial --- defaults/main.yml | 37 +++++++++++------- tasks/main.yml | 95 +++++++++++++++++++++++++++++++++++++---------- 2 files changed, 98 insertions(+), 34 deletions(-) diff --git a/defaults/main.yml b/defaults/main.yml index 84a07a9..a89b67c 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,20 +1,29 @@ --- +# domain, webroot +wordpress_domain: example.com +wordpress_web_root: / + +# database +wordpress_db_host: localhost +wordpress_db_user: wordpress +wordpress_db_password: password +wordpress_db_name: wordpress +wordpress_table_prefix: wp + +# debug: cualquier valor distinto de "" es si +wordpress_debug: "" + +# configuracion extra - va literal al config.php +wordpress_config_extra: "" + # container -mariadb_image: mariadb -mariadb_container: mariadb -mariadb_volume: mariadb +wordpress_image: wordpress:pfp7.3-fpm +wordpress_container: wordpress +wordpress_volume: wordpress -# clave del usuario root (CAMBIAR) -mariadb_root_password: password - -# base de datos y usuario (opcionales) -# mariadb_database: db -# mariadb_user: db_user -# mariadb_password: db_pass - -# binding del puerto mariadb -mariadb_bind_host: 127.0.0.1 -mariadb_bind_port: 3306 +# binding del puerto wordpress +wordpress_bind_host: 127.0.0.1 +wordpress_bind_port: 8001 # definido por rol docker docker_network_name: dockernet diff --git a/tasks/main.yml b/tasks/main.yml index b1ad829..8e4b9c9 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,33 +1,88 @@ --- -- name: start mariadb container +- name: create wordpress database + mysql_db: + state: present + name: "{{ wordpress_db_name }}" + login_host: "{{ mariadb_host }}" + login_port: "{{ mariadb_port }}" + login_user: "{{ mariadb_user }}" + login_password: "{{ mariadb_password }}" + +- name: create wordpress db user + mysql_db: + state: present + name: "{{ wordpress_db_user }}" + password: "{{ wordpress_db_password }}" + priv: "{{ wordpress_db_name }}.*:ALL" + login_host: "{{ mariadb_host }}" + login_port: "{{ mariadb_port }}" + login_user: "{{ mariadb_user }}" + login_password: "{{ mariadb_password }}" + +- name: start wordpress container docker_container: - image: "{{ mariadb_image }}" - name: "{{ mariadb_container }}" + image: "{{ wordpress_image }}" + name: "{{ wordpress_container }}" volumes: - - "{{ mariadb_volume }}:/var/lib/mysql" + - "{{ wordpress_volume }}:/var/www/html" env: - MYSQL_ROOT_PASSWORD: "{{ mariadb_root_password }}" - MYSQL_DATABASE: "{{ mariadb_database | default(omit) }}" - MYSQL_USER: "{{ mariadb_user | default(omit) }}" - MYSQL_PASSWORD: "{{ mariadb_password | default(omit) }}" + WORDPRESS_DB_HOST: "{{ mariadb_container }}" + WORDPRESS_DB_USER: "{{ wordpress_db_user }}" + WORDPRESS_DB_PASSWORD: "{{ wordpress_db_password }}" + WORDPRESS_DB_NAME: "{{ wordpress_db_name }}" + WORDPRESS_TABLE_PREFIX: "{{ wordpress_table_ prefix }}" + # (default to unique random SHA1s, but only if other environment + # variable configuration is provided) + # WORDPRESS_AUTH_KEY: + # WORDPRESS_SECURE_AUTH_KEY: + # WORDPRESS_LOGGED_IN_KEY: + # WORDPRESS_NONCE_KEY: + # WORDPRESS_AUTH_SALT: + # WORDPRESS_SECURE_AUTH_SALT: + # WORDPRESS_LOGGED_IN_SALT: + # WORDPRESS_NONCE_SALT: + # (defaults to disabled, non-empty value will enable WP_DEBUG in + # wp-config.php) + WORDPRESS_DEBUG: "{{ wordpress_debug }}" + # (defaults to nothing, non-empty value will be embedded verbatim + # inside wp-config.php -- especially useful for applying extra + # configuration values this image does not provide by default such + # as WP_ALLOW_MULTISITE; see docker-library/wordpress#142 for more + # details) + WORDPRESS_CONFIG_EXTRA: "{{ wordpress_config_extra }}" networks: - name: "{{ docker_network_name }}" ports: - - "{{ mariadb_bind_host }}:{{ mariadb_bind_port }}:3306" + - "{% if wordpress_bind_port is not none %}\ + {{ wordpress_bind_host+':' if not wordpress_bind_host is none else '' }}\ + {{ wordpress_bind_port }}:80{% endif %}" -- name: inspect mariadb volume +- name: template nginx config + copy: + content: | + server { + listen 443 ssl; + server_name {{ wordpress_domain }}; + location {{ wordpress_web_root }} { + proxy_set_header Host $http_host; + proxy_pass http://{{ wordpress_container }}; + } + } + dest: "{{ nginx_config_mountpoint }}/wordpress.conf" + register: ngconf + +- name: restart frontend + docker_container: + name: "{{ nginx_container }}" + restart: yes + when: ngconf is changed + +- name: inspect wordpress volume docker_volume_info: - name: "{{ mariadb_volume }}" + name: "{{ wordpress_volume }}" register: volinfo - name: export variables set_fact: - mariadb_container: "{{ lookup('vars','mariadb_container') }}" - mariadb_volume: "{{ lookup('vars','mariadb_volume') }}" - mariadb_volume_mountpoint: "{{ volinfo.volume.Mountpoint }}" - mariadb_root_password: "{{ lookup('vars','mariadb_root_password') }}" - mariadb_database: "{{ lookup('vars','mariadb_database',default=omit) }}" - mariadb_user: "{{ lookup('vars','mariadb_user',default=omit) }}" - mariadb_password: "{{ lookup('vars','mariadb_password',default=omit) }}" - mariadb_host: localhost - mariadb_port: "{{ lookup('vars','mariadb_bind_port') }}" + wordpress_volume: "{{ lookup('vars','wordpress_volume') }}" + wordpress_volume_mountpoint: "{{ volinfo.volume.Mountpoint }}"