1 Commits

Author SHA1 Message Date
Mauro Torrez
f46332a83f agrego dep 2019-08-28 00:31:25 -03:00
2 changed files with 35 additions and 124 deletions

View File

@@ -1,39 +1,20 @@
--- ---
# domain, webroot
roundcube_domain: default
roundcube_web_root: /roundcube
roundcube_version: 1.3.10
# container # container
roundcube_image: eumau/roundcubemail:{{ roundcube_version }} mariadb_image: mariadb
roundcube_container: roundcube mariadb_container: mariadb
roundcube_volume: roundcube mariadb_volume: mariadb
# mysql, mariadb, postgresql # clave del usuario root (CAMBIAR)
roundcube_db_type: sqlite mariadb_root_password: password
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) # base de datos y usuario (opcionales)
roundcube_data_dir: /var/www/html # mariadb_database: db
# mariadb_user: db_user
# mariadb_password: db_pass
# imap # binding del puerto mariadb
roundcube_imap_host: "tls://{{ dovecot_container | default('localhost') }}" mariadb_bind_host: 127.0.0.1
roundcube_imap_port: "143" mariadb_bind_port: 3306
# 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,38 @@
--- ---
# TODO: postgres support - name: install deps
# - name: create roundcube database (pg) pip:
# postgresql_db: name: PyMySQL
# 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:
state: present state: present
name: "{{ roundcube_db_name }}"
login_host: "{{ mariadb_host }}"
login_port: "{{ mariadb_port }}"
login_user: root
login_password: "{{ mariadb_root_password }}"
when: roundcube_db_type in ('mariadb','mysql')
- name: create roundcube db user - name: start mariadb container
mysql_user:
state: present
name: "{{ roundcube_db_user }}"
host: "%"
password: "{{ roundcube_db_password }}"
priv: "{{ roundcube_db_name }}.*:ALL"
login_host: "{{ mariadb_host }}"
login_port: "{{ mariadb_port }}"
login_user: root
login_password: "{{ mariadb_root_password }}"
when: roundcube_db_type in ('mariadb','mysql')
- name: start roundcube container
docker_container: docker_container:
image: "{{ roundcube_image }}" image: "{{ mariadb_image }}"
name: "{{ roundcube_container }}" name: "{{ mariadb_container }}"
volumes: volumes:
- "{{ roundcube_volume }}:/var/www/html" - "{{ mariadb_volume }}:/var/lib/mysql"
env: env:
ROUNDCUBEMAIL_DEFAULT_HOST: "{{ roundcube_imap_host }}" MYSQL_ROOT_PASSWORD: "{{ mariadb_root_password }}"
ROUNDCUBEMAIL_DEFAULT_PORT: "{{ roundcube_imap_port }}" MYSQL_DATABASE: "{{ mariadb_database | default(omit) }}"
ROUNDCUBEMAIL_SMTP_SERVER: "{{ roundcube_smtp_host }}" MYSQL_USER: "{{ mariadb_user | default(omit) }}"
ROUNDCUBEMAIL_SMTP_PORT: "{{ roundcube_smtp_port }}" MYSQL_PASSWORD: "{{ mariadb_password | default(omit) }}"
ROUNDCUBEMAIL_PLUGINS: "{{ roundcube_plugins | join (',') }}"
ROUNDCUBEMAIL_UPLOAD_MAX_FILESIZE: "{{ roundcube_upload_max_filesize }}"
ROUNDCUBEMAIL_DB_TYPE: "{{ roundcube_db_type }}"
ROUNDCUBEMAIL_DB_HOST: "{{ roundcube_db_host }}"
ROUNDCUBEMAIL_DB_PORT: "{{ roundcube_db_port }}"
ROUNDCUBEMAIL_DB_USER: "{{ roundcube_db_user }}"
ROUNDCUBEMAIL_DB_PASSWORD: "{{ roundcube_db_password }}"
ROUNDCUBEMAIL_DB_NAME: "{{ roundcube_db_name }}"
networks: networks:
- name: "{{ docker_network_name }}" - name: "{{ docker_network_name }}"
ports: ports:
- "{{ mariadb_bind_host }}:{{ mariadb_bind_port }}:3306"
- name: export nginx config - name: inspect mariadb volume
set_fact:
nginx_config: >-
{{ nginx_config | default({}) | combine({
roundcube_domain: {
"locations": {
roundcube_web_root.rstrip('/')+'/': {
"proxy_pass": "http://{}:9080/".format(roundcube_container)
}
}
}
}, recursive=True) }}
- name: inspect roundcube volume
docker_volume_info: docker_volume_info:
name: "{{ roundcube_volume }}" name: "{{ mariadb_volume }}"
register: volinfo register: volinfo
- name: export variables - name: export variables
set_fact: set_fact:
roundcube_volume: "{{ lookup('vars','roundcube_volume') }}" mariadb_container: "{{ lookup('vars','mariadb_container') }}"
roundcube_volume_mountpoint: "{{ volinfo.volume.Mountpoint }}" mariadb_volume: "{{ lookup('vars','mariadb_volume') }}"
mariadb_volume_mountpoint: "{{ volinfo.volume.Mountpoint }}"
- name: allow self-signed mail server certs mariadb_root_password: "{{ lookup('vars','mariadb_root_password') }}"
blockinfile: mariadb_database: "{{ lookup('vars','mariadb_database',default=omit) }}"
state: present mariadb_user: "{{ lookup('vars','mariadb_user',default=omit) }}"
path: "{{ roundcube_volume_mountpoint }}/config/config.inc.php" mariadb_password: "{{ lookup('vars','mariadb_password',default=omit) }}"
block: | mariadb_host: localhost
$config['imap_conn_options'] = array( mariadb_port: "{{ lookup('vars','mariadb_bind_port') }}"
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
),
);
$config['smtp_conn_options'] = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
),
);