This guide deploys lldap using Docker Compose with persistent storage.
- name: Deploy lldap on Debian family
hosts: lldap_debian
become: true
vars:
lldap_dir: /opt/lldap
lldap_admin_password: change-me-admin
lldap_jwt_secret: change-me-jwt-secret
tasks:
- name: Install Docker dependencies
ansible.builtin.apt:
update_cache: true
name:
- docker.io
- docker-compose-plugin
state: present
- name: Enable and start Docker
ansible.builtin.systemd:
name: docker
enabled: true
state: started
- name: Ensure lldap directory exists
ansible.builtin.file:
path: "{{ lldap_dir }}"
state: directory
mode: "0755"
- name: Write lldap env file
ansible.builtin.copy:
dest: "{{ lldap_dir }}/.env"
mode: "0600"
content: |
LLDAP_JWT_SECRET={{ lldap_jwt_secret }}
LLDAP_LDAP_USER_PASS={{ lldap_admin_password }}
- name: Write Docker Compose file
ansible.builtin.copy:
dest: "{{ lldap_dir }}/docker-compose.yml"
mode: "0644"
content: |
services:
lldap:
image: lldap/lldap:latest
restart: unless-stopped
env_file:
- .env
ports:
- "3890:3890"
- "17170:17170"
volumes:
- ./data:/data
- name: Start lldap stack
ansible.builtin.command: docker compose up -d
args:
chdir: "{{ lldap_dir }}"
- name: Deploy lldap on RHEL family
hosts: lldap_rhel
become: true
vars:
lldap_dir: /opt/lldap
tasks:
- name: Install Docker dependencies
ansible.builtin.dnf:
name:
- docker
- docker-compose-plugin
state: present
- name: Enable and start Docker
ansible.builtin.systemd:
name: docker
enabled: true
state: started
ansible-playbook -i inventory.ini lldap-install.yml
lldap_debian..env secrets and rotate periodically.Beyond this playbook, we offer:
Contact our automation team: office@linux-server-admin.com