[horde] configuration complete

certbot_on_virtu
_shirenn 2020-08-05 00:15:02 +02:00
parent 995cf4d67b
commit b888bfb204
8 changed files with 131 additions and 14 deletions

View File

@ -2,7 +2,25 @@
Ce rôle ansible deploie une instance du webmail horde. Ce rôle ansible deploie une instance du webmail horde.
## Variables ## Variables
- glob_horde.secret : le secret de horde - glob_horde. :
- glob_horde.imap : le serveur imap - secret : le secret de horde
- glob_horde.db : la bdd - imap : le serveur imap
- glob_horde.admins: la liste des admins de horde - smtp : le serveur smtp (il doit juste être contactable depuis le serveur
imap)
- maildomain : le nom de domaine depuis qui envoyé les mails
- db : la bdd
- admins : la liste des admins de horde
- redirection : ou rediriger les utilisateurs si il essaie de voir la racine
du site
- src_hostname : on utilise deux hostnames, le premier va rediriger vers le
second. Ici c'est le premier
- dest_hostname : Ici c'est le second
- admin_src_hostname : même chose mais sur le réseau d'administration. Ici
c'est le premier
- admin_dest_hostname : Ici c'est le second
- zone_ipv4 : la zone ipv4 du réseaux sur lequel le proxy discute avec le
serveur
- zone ipv6 : la zone ipv6 du réseaux sur lequel le proxy discute avec le
serveur
- loc_horde :
- ipv6 : l'ipv6 du serveur

View File

@ -0,0 +1,6 @@
---
- name: Restart nginx
service:
name: nginx.service
state: restarted

View File

@ -12,26 +12,34 @@
- name: Configure horde - name: Configure horde
template: template:
src: horde/horde/conf.php.j2 src: '{{ item }}.j2'
dest: /etc/horde/horde/conf.php" dest: '/etc/{{ item }}'
owner: www-data owner: www-data
group: www-data group: www-data
mode: 0640
loop:
- horde/horde/conf.php
- horde/imp/backends.php
- name: Configure nginx site - name: Configure nginx site
template: template:
src: 'nginx/sites-available/{{ item }}.j2' src: '{{ item }}.j2'
dest: '/etc/nginx/sites-available/{{ item }}' dest: '/etc/{{ item }}'
notify: restart nginx owner: root
group: root
mode: 0644
loop: loop:
- webmail - nginx/sites-available/webmail
- horde - nginx/sites-available/horde
- nginx/snippets/php.conf
notify: Restart nginx
- name: Enable nginx site - name: Enable nginx site
file: file:
src: '/etc/nginx/sites-available/{{ item }}' src: '/etc/nginx/sites-available/{{ item }}'
dest: '/etc/nginx/sites-enabled/{{ item }}' dest: '/etc/nginx/sites-enabled/{{ item }}'
state: link state: link
notify: restart nginx
loop: loop:
- webmail - webmail
- horde - horde
notify: Restart nginx

View File

@ -1,6 +1,7 @@
{{ ansible_header | comment(decoration='// ') }}
<?php <?php
/* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */ /* CONFIG START. DO NOT CHANGE ANYTHING IN OR AFTER THIS LINE. */
// $Id: 78acbab5980b3b1531db0732c3611a17deae7c83 $ // $Id: 08fc885cd91fbae2d752e274b554c5f1645129c8 $
$conf['vhosts'] = false; $conf['vhosts'] = false;
$conf['debug_level'] = E_ALL & ~E_NOTICE; $conf['debug_level'] = E_ALL & ~E_NOTICE;
$conf['max_exec_time'] = 0; $conf['max_exec_time'] = 0;
@ -27,10 +28,11 @@ $conf['sql']['protocol'] = 'tcp';
$conf['sql']['database'] = 'horde5'; $conf['sql']['database'] = 'horde5';
$conf['sql']['charset'] = 'utf-8'; $conf['sql']['charset'] = 'utf-8';
$conf['sql']['splitread'] = false; $conf['sql']['splitread'] = false;
$conf['sql']['logqueries'] = false;
$conf['sql']['phptype'] = 'pgsql'; $conf['sql']['phptype'] = 'pgsql';
$conf['nosql']['phptype'] = false; $conf['nosql']['phptype'] = false;
$conf['ldap']['useldap'] = false; $conf['ldap']['useldap'] = false;
$conf['auth']['admins'] = array({{ glob_horde.admins | map('quote') | join(', ')}}); $conf['auth']['admins'] = array({{ glob_horde.admins | join(', ')}});
$conf['auth']['checkip'] = false; $conf['auth']['checkip'] = false;
$conf['auth']['checkbrowser'] = true; $conf['auth']['checkbrowser'] = true;
$conf['auth']['resetpassword'] = false; $conf['auth']['resetpassword'] = false;

View File

@ -0,0 +1,19 @@
{{ ansible_header | comment(decoration='// ') }}
<?php
$servers['imp'] = array(
// Disabled by default
'disabled' => false,
'name' => 'IMAP Cr@ns',
'hostspec' => '{{ glob_horde.imap }}',
'hordeauth' => true,
'protocol' => 'imap',
'port' => 143,
'secure' => 'tls',
'maildomain' => '{{ glob_horde.maildomain }}',
'smtp' => array(
'host' => '{{ glob_horde.smtp }}',
'port' => 25,
),
'cache' => false,
);
?>

View File

@ -0,0 +1,17 @@
{{ ansible_header | comment }}
server {
listen {{ glob_horde.admin_src_hostname }}:80;
listen {{ loc_horde.ipv6 }}:80 ipv6only=on;
server_name {{ glob_horde.admin_src_hostname }} {{ glob_horde.src_hostname }};
root /usr/share/;
location / {
return 302 https://{{ glob_horde.dest_hostname }}/horde;
}
include "snippets/php.conf";
set_real_ip_from {{ glob_horde.zone_ipv4 }};
set_real_ip_from {{ glob_horde.zone_ipv6 }};
real_ip_header P-Real-Ip;
}

View File

@ -0,0 +1,21 @@
{{ ansible_header | comment }}
server {
listen {{ glob_horde.admin_dest_hostname }}:80;
listen {{ loc_horde.ipv6 }}:80;
server_name {{ glob_horde.dest_hostname }} {{ glob_horde.admin_dest_hostname }};
root /usr/share/;
location / {
return 302 {{ glob_horde.redirection }};
}
location /horde {
try_files $uri $uri/ /horde/rampage.php?$args;
index index.php index.htm index.html;
}
include "snippets/php.conf";
set_real_ip_from {{ glob_horde.zone_ipv4 }};
set_real_ip_from {{ glob_horde.zone_ipv6 }};
real_ip_header P-Real-Ip;
}

View File

@ -0,0 +1,26 @@
{{ ansible_header | comment }}
location ~ .+\.php {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
if (!-e $document_root$fastcgi_script_name) {
return 404;
}
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
fastcgi_index index.php;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ ^/php_(ping|status)$ {
access_log off;
allow 127.0.0.1;
deny all;
root /usr/share/nginx/html;
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
include fastcgi_params;
}