mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-04-20 15:04:57 +02:00
Added fusion directory draft
This commit is contained in:
parent
adecee43ec
commit
1be413f20d
34
roles/docker-fusiondirectory/README.md
Normal file
34
roles/docker-fusiondirectory/README.md
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
# DRAFT FusionDirectory DRAFT🐳
|
||||||
|
|
||||||
|
# TODO
|
||||||
|
This needs to be implemented
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
This Ansible role deploys and configures [FusionDirectory](https://www.fusiondirectory.org/) – a powerful web-based LDAP administration tool. Using Docker Compose, the role runs a pre-configured FusionDirectory container which allows you to manage your LDAP directory through a user-friendly web interface.
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
Designed to simplify LDAP management, this role:
|
||||||
|
- Loads necessary FusionDirectory-specific variables.
|
||||||
|
- Generates an environment file based on a template.
|
||||||
|
- Deploys a FusionDirectory Docker container via Docker Compose.
|
||||||
|
- Integrates with your existing central LDAP service.
|
||||||
|
|
||||||
|
## Purpose
|
||||||
|
|
||||||
|
The purpose of this role is to automate the deployment of FusionDirectory in your Docker environment, ensuring a quick and consistent setup for managing your LDAP data. Ideal for production or homelab deployments, it reduces manual configuration steps and helps enforce best practices.
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
- **Easy Deployment:** Minimal manual setup via pre-configured templates and variables.
|
||||||
|
- **LDAP Integration:** Connects seamlessly with your existing central LDAP server.
|
||||||
|
- **Web Interface:** Provides an intuitive GUI for LDAP administration.
|
||||||
|
- **Docker Compose Integration:** Automates container creation and restart.
|
||||||
|
|
||||||
|
## Credits 📝
|
||||||
|
|
||||||
|
Developed and maintained by **Kevin Veen-Birkenbach**.
|
||||||
|
Learn more at [www.veen.world](https://www.veen.world)
|
||||||
|
Part of the [CyMaIS Project](https://github.com/kevinveenbirkenbach/cymais)
|
||||||
|
License: [CyMaIS NonCommercial License (CNCL)](https://s.veen.world/cncl)
|
21
roles/docker-fusiondirectory/meta/main.yml
Normal file
21
roles/docker-fusiondirectory/meta/main.yml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
galaxy_info:
|
||||||
|
author: "Kevin Veen-Birkenbach"
|
||||||
|
description: >-
|
||||||
|
FusionDirectory is a web-based tool to manage LDAP directories and this role ensures a reliable, easy-to-use interface for LDAP administration.
|
||||||
|
license: "CyMaIS NonCommercial License (CNCL)"
|
||||||
|
license_url: "https://s.veen.world/cncl"
|
||||||
|
company: "Kevin Veen-Birkenbach Consulting & Coaching Solutions"
|
||||||
|
min_ansible_version: "2.9"
|
||||||
|
platforms:
|
||||||
|
- name: Docker
|
||||||
|
versions:
|
||||||
|
- "latest"
|
||||||
|
galaxy_tags:
|
||||||
|
- fusiondirectory
|
||||||
|
- ldap
|
||||||
|
- docker
|
||||||
|
- administration
|
||||||
|
repository: "https://s.veen.world/cymais"
|
||||||
|
issue_tracker_url: "https://s.veen.world/cymaisissues"
|
||||||
|
documentation: "https://s.veen.world/cymais"
|
13
roles/docker-fusiondirectory/tasks/main.yml
Normal file
13
roles/docker-fusiondirectory/tasks/main.yml
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
- name: "include docker-compose role"
|
||||||
|
include_role:
|
||||||
|
name: docker-compose
|
||||||
|
|
||||||
|
- name: "include role nginx-domain-setup for {{application_id}}"
|
||||||
|
include_role:
|
||||||
|
name: nginx-domain-setup
|
||||||
|
vars:
|
||||||
|
domain: "{{ domains[application_id] }}"
|
||||||
|
http_port: "{{ ports.localhost.http[application_id] }}"
|
||||||
|
|
||||||
|
- name: "copy docker-compose.yml and env file"
|
||||||
|
include_tasks: copy-docker-compose-and-env.yml
|
46
roles/docker-fusiondirectory/templates/docker-compose.yml.j2
Normal file
46
roles/docker-fusiondirectory/templates/docker-compose.yml.j2
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
services:
|
||||||
|
|
||||||
|
{% include 'roles/docker-oauth2-proxy/templates/container.yml.j2' %}
|
||||||
|
|
||||||
|
application:
|
||||||
|
container_name: {{ application_id }}
|
||||||
|
logging:
|
||||||
|
driver: journald
|
||||||
|
restart: {{docker_restart_policy}}
|
||||||
|
image: ghcr.io/ldapaccountmanager/lam:{{applications[application_id].version}}
|
||||||
|
ports:
|
||||||
|
- 127.0.0.1:{{ports.localhost.http[application_id]}}:80
|
||||||
|
{% include 'roles/docker-compose/templates/services/base.yml.j2' %}
|
||||||
|
{% include 'templates/docker/container/networks.yml.j2' %}
|
||||||
|
|
||||||
|
{# include 'templates/docker/compose/volumes.yml.j2' #}
|
||||||
|
|
||||||
|
{% include 'templates/docker/compose/networks.yml.j2' %}
|
||||||
|
|
||||||
|
services:
|
||||||
|
fusiondirectory:
|
||||||
|
image: tiredofit/fusiondirectory:latest
|
||||||
|
container_name: fusiondirectory
|
||||||
|
ports:
|
||||||
|
- "8080:80" # Exponiert den Webservice (HTTP) des Containers auf Port 8080 des Hosts
|
||||||
|
environment:
|
||||||
|
# FusionDirectory spezifische Einstellungen
|
||||||
|
- FUSIONDIRECTORY_ADMIN_USER=admin
|
||||||
|
- FUSIONDIRECTORY_ADMIN_PASS=yourFusionDirPassword
|
||||||
|
# LDAP-Verbindungsdaten (diese werden von FusionDirectory benötigt, um sich mit Ihrem LDAP-Server zu verbinden)
|
||||||
|
- LDAP_HOST=ldap.example.com
|
||||||
|
- LDAP_ADMIN_DN=cn=admin,dc=example,dc=com
|
||||||
|
- LDAP_ADMIN_PASS=yourLDAPPassword
|
||||||
|
- LDAP_BASE_DN=dc=example,dc=com
|
||||||
|
# Optional: Falls TLS für die LDAP-Verbindung genutzt werden soll, können Sie diese Variablen definieren:
|
||||||
|
#- ENABLE_TLS=TRUE
|
||||||
|
#- TLS_CRT_FILENAME=cert.pem
|
||||||
|
#- TLS_KEY_FILENAME=key.pem
|
||||||
|
#- TLS_CA_CRT_FILENAME=ca_cert.pem
|
||||||
|
volumes:
|
||||||
|
# Hier können Sie persistente Daten ablegen – z. B. individuelle Konfigurationen oder benutzerdefinierte Plugins
|
||||||
|
- fusiondirectory_data:/assets/fusiondirectory
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
fusiondirectory_data:
|
14
roles/docker-fusiondirectory/templates/env.j2
Normal file
14
roles/docker-fusiondirectory/templates/env.j2
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# See all variables here:
|
||||||
|
# https://github.com/LDAPAccountManager/lam/blob/develop/lam-packaging/docker/.env
|
||||||
|
|
||||||
|
# Basic Configuration
|
||||||
|
LAM_PASSWORD= {{applications[application_id].administrator_password}} # LAM configuration master password and password for server profile "lam
|
||||||
|
|
||||||
|
# Database
|
||||||
|
LAM_CONFIGURATION_DATABASE= files # configuration database (files or mysql) @todo implement mariadb
|
||||||
|
|
||||||
|
# LDAP Configuration
|
||||||
|
LDAP_SERVER= {{ldap.server.domain}} # domain of LDAP database root entry
|
||||||
|
LDAP_BASE_DN= {{ldap.dn.root}} # LDAP base DN to overwrite value generated by LDAP_DOMAIN
|
||||||
|
LDAP_USER= {{ldap.dn.administrator}} # LDAP admin user (set as login user for LAM)
|
||||||
|
LDAP_ADMIN_PASSWORD= {{ldap.bind_credential}} # LDAP admin password
|
1
roles/docker-fusiondirectory/vars/main.yml
Normal file
1
roles/docker-fusiondirectory/vars/main.yml
Normal file
@ -0,0 +1 @@
|
|||||||
|
application_id: "fusiondirectory"
|
@ -30,6 +30,16 @@
|
|||||||
include_role:
|
include_role:
|
||||||
name: docker-keycloak
|
name: docker-keycloak
|
||||||
|
|
||||||
|
- name: setup lam
|
||||||
|
when: ("lam" in group_names)
|
||||||
|
include_role:
|
||||||
|
name: docker-lam
|
||||||
|
|
||||||
|
- name: setup phpldapadmin
|
||||||
|
when: ("phpldapadmin" in group_names)
|
||||||
|
include_role:
|
||||||
|
name: docker-phpldapadmin
|
||||||
|
|
||||||
- name: setup nextcloud hosts
|
- name: setup nextcloud hosts
|
||||||
when: ("nextcloud" in group_names)
|
when: ("nextcloud" in group_names)
|
||||||
include_role:
|
include_role:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user