2019-05-25 18:42:42 -03:00

70 lines
1.8 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
- build-essential
- libldap2-dev
- libsasl2-dev
state: present
- name: instalar dependencias
pip: name=python-ldap 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') }}"