1 Commits

Author SHA1 Message Date
e98bf3f3f2 update nginx variable 2019-10-01 14:01:28 +00:00
2 changed files with 84 additions and 111 deletions

View File

@@ -1,39 +1,25 @@
--- ---
# domain, webroot # domain, webroot
roundcube_domain: default wordpress_domain: example.com
roundcube_web_root: /roundcube wordpress_web_root: /
roundcube_version: 1.3.10
# 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 # container
roundcube_image: eumau/roundcubemail:{{ roundcube_version }} wordpress_image: wordpress
roundcube_container: roundcube wordpress_container: wordpress
roundcube_volume: roundcube wordpress_volume: wordpress
# mysql, mariadb, postgresql
roundcube_db_type: sqlite
roundcube_db_host: localhost
roundcube_db_port: "{{ '5432' if 'post' in roundcube_db_type else '3306' }}"
roundcube_db_user: roundcube
roundcube_db_password: password
roundcube_db_name:
roundcube{{ '.sqlite' if roundcube_db_type == 'sqlite' else '' }}
# data dir (inside container)
roundcube_data_dir: /var/www/html
# imap
roundcube_imap_host: "tls://{{ dovecot_container | default('localhost') }}"
roundcube_imap_port: "143"
# smtp
roundcube_smtp_host: "tls://{{ postfix_container | default('localhost') }}"
roundcube_smtp_port: "587"
# plugins
roundcube_plugins: []
# upload max filesize
roundcube_upload_max_filesize: 40M
# definido por rol docker # definido por rol docker
docker_network_name: dockernet docker_network_name: dockernet

View File

@@ -1,108 +1,95 @@
--- ---
# TODO: postgres support - name: create wordpress database
# - name: create roundcube database (pg)
# postgresql_db:
# state: present
# name: "{{ roundcube_db_name }}"
# login_host: "{{ postgresql_host }}"
# login_port: "{{ postgresql_port }}"
# login_user: "{{ postgresql_root_password }}"
# login_password: "{{ postgresql_root_password }}"
# - name: create roundcube db user (pg)
# postgresql_user:
# state: present
# name: "{{ roundcube_db_user }}"
# password: "{{ roundcube_db_password }}"
# priv: "{{ roundcube_db_name }}.*:ALL"
# login_host: "{{ postgresql_host }}"
# login_port: "{{ postgresql_port }}"
# login_user: root
# login_password: "{{ postgresql_root_password }}"
- name: create roundcube database
mysql_db: mysql_db:
state: present state: present
name: "{{ roundcube_db_name }}" name: "{{ wordpress_db_name }}"
login_host: "{{ mariadb_host }}" login_host: "{{ mariadb_host }}"
login_port: "{{ mariadb_port }}" login_port: "{{ mariadb_port }}"
login_user: root login_user: root
login_password: "{{ mariadb_root_password }}" login_password: "{{ mariadb_root_password }}"
when: roundcube_db_type in ('mariadb','mysql')
- name: create roundcube db user - name: create wordpress db user
mysql_user: mysql_user:
state: present state: present
name: "{{ roundcube_db_user }}" name: "{{ wordpress_db_user }}"
host: "%" host: "%"
password: "{{ roundcube_db_password }}" password: "{{ wordpress_db_password }}"
priv: "{{ roundcube_db_name }}.*:ALL" priv: "{{ wordpress_db_name }}.*:ALL"
login_host: "{{ mariadb_host }}" login_host: "{{ mariadb_host }}"
login_port: "{{ mariadb_port }}" login_port: "{{ mariadb_port }}"
login_user: root login_user: root
login_password: "{{ mariadb_root_password }}" login_password: "{{ mariadb_root_password }}"
when: roundcube_db_type in ('mariadb','mysql')
- name: start roundcube container - name: start wordpress container
docker_container: docker_container:
image: "{{ roundcube_image }}" image: "{{ wordpress_image }}"
name: "{{ roundcube_container }}" name: "{{ wordpress_container }}"
volumes: volumes:
- "{{ roundcube_volume }}:/var/www/html" - "{{ wordpress_volume }}:/var/www/html"
env: env:
ROUNDCUBEMAIL_DEFAULT_HOST: "{{ roundcube_imap_host }}" WORDPRESS_DB_HOST: "{{ mariadb_container }}"
ROUNDCUBEMAIL_DEFAULT_PORT: "{{ roundcube_imap_port }}" WORDPRESS_DB_USER: "{{ wordpress_db_user }}"
ROUNDCUBEMAIL_SMTP_SERVER: "{{ roundcube_smtp_host }}" WORDPRESS_DB_PASSWORD: "{{ wordpress_db_password }}"
ROUNDCUBEMAIL_SMTP_PORT: "{{ roundcube_smtp_port }}" WORDPRESS_DB_NAME: "{{ wordpress_db_name }}"
ROUNDCUBEMAIL_PLUGINS: "{{ roundcube_plugins | join (',') }}" WORDPRESS_TABLE_PREFIX: "{{ wordpress_table_prefix }}"
ROUNDCUBEMAIL_UPLOAD_MAX_FILESIZE: "{{ roundcube_upload_max_filesize }}" # (default to unique random SHA1s, but only if other environment
ROUNDCUBEMAIL_DB_TYPE: "{{ roundcube_db_type }}" # variable configuration is provided)
ROUNDCUBEMAIL_DB_HOST: "{{ roundcube_db_host }}" # WORDPRESS_AUTH_KEY:
ROUNDCUBEMAIL_DB_PORT: "{{ roundcube_db_port }}" # WORDPRESS_SECURE_AUTH_KEY:
ROUNDCUBEMAIL_DB_USER: "{{ roundcube_db_user }}" # WORDPRESS_LOGGED_IN_KEY:
ROUNDCUBEMAIL_DB_PASSWORD: "{{ roundcube_db_password }}" # WORDPRESS_NONCE_KEY:
ROUNDCUBEMAIL_DB_NAME: "{{ roundcube_db_name }}" # 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: networks:
- name: "{{ docker_network_name }}" - name: "{{ docker_network_name }}"
ports: ports:
- name: export nginx config - name: template nginx config
set_fact: copy:
nginx_config: >- content: |
{{ nginx_config | default({}) | combine({ server {
roundcube_domain: { listen 80; # para debug
"locations": { listen 443 ssl;
roundcube_web_root.rstrip('/')+'/': { server_name {{ wordpress_domain }};
"proxy_pass": "http://{}:9080/".format(roundcube_container)
}
}
}
}, recursive=True) }}
- name: inspect roundcube volume # root /var/www/html;
# index index.php index.html;
# access_log /dev/stdout;
# error_log /dev/stdout info;
location {{ wordpress_web_root }} {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://{{ wordpress_container }};
}
}
dest: "{{ nginx_mountpoint_config }}/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: docker_volume_info:
name: "{{ roundcube_volume }}" name: "{{ wordpress_volume }}"
register: volinfo register: volinfo
- name: export variables - name: export variables
set_fact: set_fact:
roundcube_volume: "{{ lookup('vars','roundcube_volume') }}" wordpress_volume: "{{ lookup('vars','wordpress_volume') }}"
roundcube_volume_mountpoint: "{{ volinfo.volume.Mountpoint }}" wordpress_volume_mountpoint: "{{ volinfo.volume.Mountpoint }}"
- name: allow self-signed mail server certs
blockinfile:
state: present
path: "{{ roundcube_volume_mountpoint }}/config/config.inc.php"
block: |
$config['imap_conn_options'] = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
),
);
$config['smtp_conn_options'] = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
),
);