61 lines
1.7 KiB
YAML
61 lines
1.7 KiB
YAML
---
|
|
# Playbook for setting up a Docker container with openLDAP.
|
|
# A port binding to the Docker host is required for setting
|
|
# up domains and replication.
|
|
|
|
- name: instalar dependencias
|
|
apt: name=ldap-utils state=present
|
|
|
|
- name: "Create directory for building image"
|
|
file:
|
|
path: "/tmp/build.openldap-image"
|
|
state: "directory"
|
|
|
|
- name: "Copy required files"
|
|
copy:
|
|
src: "{{ item }}"
|
|
dest: "/tmp/build.openldap-image/"
|
|
loop:
|
|
- "Dockerfile"
|
|
- "entrypoint.sh"
|
|
register: cpfiles
|
|
|
|
- name: "Build openldap image"
|
|
docker_image:
|
|
path: "/tmp/build.openldap-image"
|
|
name: "{{ openldap_image_name }}"
|
|
# force_source on Ansible 2.8
|
|
force: "{{ cpfiles is changed }}"
|
|
register: imgbuild
|
|
|
|
- name: "Start openldap container"
|
|
docker_container:
|
|
image: "{{ openldap_image_name }}"
|
|
name: "{{ openldap_container_name }}"
|
|
volumes:
|
|
- "{{ openldap_volume_config }}:/etc/ldap"
|
|
- "{{ openldap_volume_data }}:/var/lib/ldap"
|
|
- "{{ openldap_volume_backup }}:/var/backups/ldap"
|
|
env:
|
|
OPENLDAP_ADMIN_PASSWORD: "{{ openldap_admin_password }}"
|
|
OPENLDAP_SCHEMAS: "{{ openldap_schemas | join (' ') }}"
|
|
OPENLDAP_ENABLE_MEMBEROF: "{{ 'true' if openldap_enable_memberof else 'false' }}"
|
|
|
|
networks:
|
|
- name: "{{ docker_network_name }}"
|
|
ports:
|
|
- "{{ openldap_bind_host }}:{{ openldap_bind_port }}:389"
|
|
recreate: "{{ imgbuild is changed }}"
|
|
|
|
- include_tasks: "provider.yml"
|
|
when: "openldap_provider == True"
|
|
|
|
- include_tasks: "domain.yml"
|
|
loop: "{{ openldap_domains }}"
|
|
loop_control:
|
|
loop_var: "domain"
|
|
|
|
- set_fact:
|
|
ldap_uri: "{{ lookup( 'vars', 'ldap_uri',
|
|
default='ldap://'+openldap_container_name+':389') }}"
|