--- # 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') }}"