---
- hosts: localhost
  vars:
    password: rolaids
  tasks:
    - name: Create ldap data volume
      docker_volume:
        name: ldap_data

    - name: Create ldap conf volume
      docker_volume:
        name: ldap_conf

    - name: Create selfserver config
      docker_volume:
        name: selfserver_config

    - name: Create network interfaces 1/3
      command: /usr/bin/ip addr add 192.168.1.60/24 dev enp2s0
      ignore_errors: True

    - name: Create network interfaces 2/3
      command: /usr/bin/ip addr add 192.168.1.61/24 dev enp2s0
      ignore_errors: True

    - name: Create network interfaces 3/3
      command: /usr/bin/ip addr add 192.168.1.67/24 dev enp2s0
      ignore_errors: True

    - name: Start ldap server
      docker_container:
        name: keymaster
        hostname: keymaster
        recreate: yes
        image: osixia/openldap
        ports:
            - "192.168.1.61:390:389"
            - "192.168.1.61:636:636"
        volumes:
            - ldap_data:/var/lib/ldap
            - ldap_conf:/etc/ldap/slapd.d
        env:
            LDAP_ORGANISATION=murkfall
            LDAP_DOMAIN=murkfall.net
            LDAP_ADMIN_PASSWORD={{ password }}
            LDAP_TLS_VERIFY_CLIENT=never
        memory: 512M
        container_default_behavior: compatibility
        restart_policy: unless-stopped
    
    - name: Start ldap admin UI
      docker_container:
        name: lemonaid
        hostname: lemonaid
        recreate: yes
        image: ldapaccountmanager/lam
        ports:
            - "192.168.1.60:80:80"
        env:
            VURTUAL_HOST=lemonaid
            LDAP_DOMAIN=murkfall.net
            LDAP_SERVER=ldap://192.168.1.61:390
            LDAP_USER="cn=admin,dc=murkfall,dc=net"
        memory: 512M
        container_default_behavior: compatibility
        restart_policy: unless-stopped

    - name: Start LDAP Self Serv
      docker_container:
        name: selfserver
        hostname: selfserver
        recreate: yes
        image: grams/ltb-self-service-password
        ports:
            - "192.168.1.67:80:80"
        volumes:
            - selfserver_config:/usr/share/self-service-password/conf
        restart_policy: unless-stopped
        memory: 512M
        container_default_behavior: compatibility
        debug: true
      ignore_errors: True
