Premier commit
This commit is contained in:
commit
df204a7b66
10 changed files with 174 additions and 0 deletions
59
README.md
Normal file
59
README.md
Normal file
|
@ -0,0 +1,59 @@
|
|||
# Role : docker_kanboard
|
||||
|
||||
|
||||
## Services fournis
|
||||
|
||||
- main.yml : Installation de kanboard sur un serveur docker_host -
|
||||
|
||||
Kanboard est configuré en lien avec un annuaire LDAP pour l'authentification
|
||||
|
||||
|
||||
- configure_reverse_proxy.yml : Configuration d'un reverse proxy préalablement installé par le role reverse_proxy
|
||||
|
||||
|
||||
## Variables
|
||||
|
||||
Fournir les variables suivantes. Par exemple :
|
||||
|
||||
```yaml
|
||||
docker_kanboard_fqdn: kanboard.libretic.fr
|
||||
docker_kanboard_data_dir: /data1
|
||||
docker_kanboard_service_id: kanboard
|
||||
docker_kanboard_rp_cert: LE
|
||||
docker_kanboard_rp_docker_host: machine.domaine.local
|
||||
docker_kanboard_ldap_server: mon-serveur-ldap.domaine.local
|
||||
docker_kanboard_ldab_binddn: uid=compte-service-kanboard,ou=comptes-de-service,dc=domaine,dc=local
|
||||
docker_kanboard_ldap_bindpwd: mdp_du_compte_de_service
|
||||
docker_kanboard_ldap_users_base: ou=utilisateurs,dc=domaine,dc=local
|
||||
docker_kanboard_ldap_users_filter: uid=%s
|
||||
docker_kanboard_ldap_group_admin_dn: cn=administrateurs-kanboard,ou=groupes,dc=domaine,dc=local
|
||||
docker_kanboard_ldap_group_manager_dn: cn=managers-kanboard,ou=groupes,dc=domaine,dc=local
|
||||
docker_kanboard_ldap_groups_base: ou=groupes,dc=domaine,dc=local
|
||||
docker_kanboard_ldap_groups_filter: "(&(objectClass=groupOfUniqueNames)(cn=%s*))"
|
||||
docker_kanboard_mail_from: nepasrepondre@libretic.fr
|
||||
docker_kanboard_mail_server: smtp-server.domaine.local
|
||||
docker_kanboard_mail_helo: machine.domaine.local
|
||||
```
|
||||
|
||||
| Option | Valeur par défaut | Description |
|
||||
|---------------------------------------|-------------------|-------------------------------------------------------------------------------------------|
|
||||
| docker_kanboard_fqdn | | Le nom de domaine pour lequel le service kanboard répond |
|
||||
| docker_kanboard_data_dir | | L'emplacement dans lequel se trouvent les volumes de donnees docker pour le service |
|
||||
| docker_kanboard_service_id | | Le nom de service souhaité : conditionne le nommage des volumes et le routage par traefik |
|
||||
| docker_kanboard_ssh_port | 222 | Le numero de port local pour l'accès à kanboard par ssh |
|
||||
| docker_kanboard_rp_docker_host | | pour configure_reverse_proxy.yml: fqdn de la machine contenant le conteneur docker |
|
||||
| docker_kanboard_rp_cert | LE | Type de certificat pour le reverse proxy (LE = letsencrypt) |
|
||||
| docker_kanboard_ldap_server | | Adresse du serveur LDAP |
|
||||
| docker_kanboard_ldab_binddn | | DN du compte de service de connexion à l'annuaire LDAP |
|
||||
| docker_kanboard_ldap_bindpwd | | Mot de passe du compte de service de connexion à l'annuaire LDAP |
|
||||
| docker_kanboard_ldap_users_base | | DN du noeud de départ pour la recherche des utilisateurs |
|
||||
| docker_kanboard_ldap_users_filter | | Filtre de recherche des utilisateurs |
|
||||
| docker_kanboard_ldap_group_admin_dn | | DN du groupe des administrateurs de kanboard |
|
||||
| docker_kanboard_ldap_group_manager_dn | | DN du groupe des managers de kanboard |
|
||||
| docker_kanboard_ldap_groups_base | | DN du noeud de départ pour la recherche des groupes |
|
||||
| docker_kanboard_ldap_groups_filter | | Filtre de recherche des groupes |
|
||||
| docker_kanboard_mail_from | | Adresse email émettrice des messages envoyés par kanboard |
|
||||
| docker_kanboard_mail_server | | Adresse du serveur SMTP pour l'envoi de mails |
|
||||
| docker_kanboard_mail_helo | | fqdn présenté pour le helo smtp |
|
||||
|
||||
|
1
defaults/main.yml
Normal file
1
defaults/main.yml
Normal file
|
@ -0,0 +1 @@
|
|||
docker_kanboard_rp_cert: LE
|
10
handlers/main.yml
Normal file
10
handlers/main.yml
Normal file
|
@ -0,0 +1,10 @@
|
|||
- name: docker-compose-up
|
||||
shell: |
|
||||
docker-compose up -d
|
||||
args:
|
||||
chdir: /opt/{{ docker_kanboard_service_id }}/
|
||||
|
||||
- name: reverse-proxy-reload
|
||||
service:
|
||||
name: apache2
|
||||
state: reloaded
|
11
tasks/configure_reverse_proxy.yml
Normal file
11
tasks/configure_reverse_proxy.yml
Normal file
|
@ -0,0 +1,11 @@
|
|||
- name: prepare reverse_proxy
|
||||
template:
|
||||
src: "{{ item }}"
|
||||
dest: /etc/apache2/vhosts.d/{{ docker_kanboard_fqdn }}/
|
||||
with_items:
|
||||
- 0_vhost.conf
|
||||
- 1_vhost_additional.conf
|
||||
- 2_mds_exclusion.conf
|
||||
notify: reverse-proxy-reload
|
||||
|
||||
|
15
tasks/main.yml
Normal file
15
tasks/main.yml
Normal file
|
@ -0,0 +1,15 @@
|
|||
- name: docker directory
|
||||
file:
|
||||
path: /opt/{{ docker_kanboard_service_id }}/
|
||||
state: directory
|
||||
|
||||
- name: prepare docker-compose.yml
|
||||
template:
|
||||
src: "{{ item }}"
|
||||
dest: /opt/{{ docker_kanboard_service_id }}/
|
||||
with_items:
|
||||
- docker-compose.yml
|
||||
- config.php
|
||||
notify: docker-compose-up
|
||||
|
||||
|
2
templates/0_vhost.conf
Normal file
2
templates/0_vhost.conf
Normal file
|
@ -0,0 +1,2 @@
|
|||
# {{ ansible_managed }}
|
||||
Use vhost_HTTPS_Generic {{ docker_kanboard_fqdn }} {{ docker_kanboard_rp_cert }} http {{ docker_kanboard_rp_docker_host }} info OpenAccessPolicy BlockCrawlerIndexing On
|
1
templates/1_vhost_additional.conf
Normal file
1
templates/1_vhost_additional.conf
Normal file
|
@ -0,0 +1 @@
|
|||
# {{ ansible_managed }}
|
2
templates/2_mds_exclusion.conf
Normal file
2
templates/2_mds_exclusion.conf
Normal file
|
@ -0,0 +1,2 @@
|
|||
# {{ ansible_managed }}
|
||||
|
50
templates/config.php
Normal file
50
templates/config.php
Normal file
|
@ -0,0 +1,50 @@
|
|||
<?php
|
||||
//
|
||||
// {{ ansible_managed }}
|
||||
//
|
||||
|
||||
defined('ENABLE_URL_REWRITE') or define('ENABLE_URL_REWRITE', true);
|
||||
defined('LOG_DRIVER') or define('LOG_DRIVER', 'system');
|
||||
|
||||
// LDAP Configuration
|
||||
define('LDAP_AUTH', true);
|
||||
define('LDAP_SERVER', '{{ docker_kanboard_ldap_server }}');
|
||||
define('LDAP_PORT', 389);
|
||||
define('LDAP_BIND_TYPE', 'proxy');
|
||||
define('LDAP_USERNAME', '{{ docker_kanboard_ldab_binddn }}');
|
||||
define('LDAP_PASSWORD', '{{ docker_kanboard_ldap_bindpwd }}');
|
||||
define('LDAP_USER_BASE_DN', '{{ docker_kanboard_ldap_users_base }}');
|
||||
define('LDAP_USER_FILTER', '{{ docker_kanboard_ldap_users_filter }}');
|
||||
define('LDAP_GROUP_ADMIN_DN', '{{ docker_kanboard_ldap_group_admin_dn }}');
|
||||
define('LDAP_GROUP_MANAGER_DN', '{{ docker_kanboard_ldap_group_manager_dn }}');
|
||||
define('LDAP_GROUP_PROVIDER', true);
|
||||
define('LDAP_GROUP_BASE_DN', '{{ docker_kanboard_ldap_groups_base }}');
|
||||
define('LDAP_GROUP_FILTER', '{{ docker_kanboard_ldap_groups_filter }}');
|
||||
|
||||
|
||||
// Enable/disable email configuration from the user interface
|
||||
define('MAIL_CONFIGURATION', true);
|
||||
|
||||
// E-mail address used for the "From" header (notifications)
|
||||
define('MAIL_FROM', '{{ docker_kanboard_mail_from }}');
|
||||
|
||||
// Mail transport to use: "smtp", "sendmail" or "mail" (PHP mail function)
|
||||
define('MAIL_TRANSPORT', 'smtp');
|
||||
|
||||
// SMTP configuration to use when the "smtp" transport is chosen
|
||||
define('MAIL_SMTP_HOSTNAME', '{{ docker_kanboard_mail_server }}');
|
||||
define('MAIL_SMTP_PORT', 25);
|
||||
define('MAIL_SMTP_USERNAME', '');
|
||||
define('MAIL_SMTP_PASSWORD', '');
|
||||
define('MAIL_SMTP_HELO_NAME', '{{ docker_kanboard_mail_helo }}'); // valid: null (default), or FQDN
|
||||
define('MAIL_SMTP_ENCRYPTION', null); // Valid values are "null", "ssl" or "tls"
|
||||
|
||||
|
||||
// Enable captcha after 3 authentication failure
|
||||
define('BRUTEFORCE_CAPTCHA', 3);
|
||||
|
||||
// Lock the account after 6 authentication failure
|
||||
define('BRUTEFORCE_LOCKDOWN', 6);
|
||||
|
||||
// Lock account duration in minute
|
||||
define('BRUTEFORCE_LOCKDOWN_DURATION', 15);
|
23
templates/docker-compose.yml
Normal file
23
templates/docker-compose.yml
Normal file
|
@ -0,0 +1,23 @@
|
|||
# {{ ansible_managed }}
|
||||
version: '3.1'
|
||||
|
||||
services:
|
||||
kanboard:
|
||||
image: kanboard/kanboard:latest
|
||||
volumes:
|
||||
- ./config.php:/var/www/app/config.php
|
||||
- {{ docker_kanboard_data_dir }}/{{ docker_kanboard_service_id }}/kanboard_data:/var/www/app/data
|
||||
- {{ docker_kanboard_data_dir }}/{{ docker_kanboard_service_id }}/kanboard_plugins:/var/www/app/plugins
|
||||
restart: always
|
||||
labels:
|
||||
- "traefik.enable=true"
|
||||
- "traefik.docker.network=traefik"
|
||||
- "traefik.http.routers.{{ docker_kanboard_service_id }}.entrypoints=web"
|
||||
- "traefik.http.routers.{{ docker_kanboard_service_id }}.rule=Host(`{{ docker_kanboard_fqdn }}`)"
|
||||
- "traefik.http.services.{{ docker_kanboard_service_id }}.loadbalancer.server.port=80"
|
||||
networks:
|
||||
- traefik
|
||||
|
||||
networks:
|
||||
traefik:
|
||||
external: true
|
Loading…
Reference in a new issue