Skip to main content

Ansible filter to read or write LDIF.

Project description

Ansible filter to read or write LDIF.

Latest version SonarCloud Travis CI License: GPLv3

Install this Ansible Filter:

  • via pip:

pip install ansible-filters-ldif
  • via ansible-galaxy:

ansible-galaxy install 'git+https://github.com/atterdag/ansible-filters-ldif.git'

Ansible filters always runs on localhost.

Examples

Convert dictionary to LDIF

---
- name: Create dictionary with entries
  set_fact:
    dictionary:
      - - dc=example,dc=com
        - dc:
            - example
          description:
            - This is a line longer than 79 characters, so LDIF breaks it up over multiple lines
          o:
            - example.com
          objectClass:
            - dcObject
            - organization
      - - ou=people,dc=example,dc=com
        - objectClass:
            - organizationalUnit
          ou:
            - people
      - - cn=Jane Doe,ou=people,dc=example,dc=com
        - cn:
            - Jane Doe
          mail:
            - jane.doe@example.com
          objectClass:
            - inetOrgPerson
          sn:
            - Doe
      - - cn=John Doe,ou=people,dc=example,dc=com
        - cn:
            - John Doe
          mail:
            - john.doe@example.com
          objectClass:
            - inetOrgPerson
          sn:
            - Doe
      - - ou=groups,dc=example,dc=com
        - objectClass:
            - organizationalUnit
          ou:
            - groups
      - - cn=users,ou=groups,dc=example,dc=com
        - cn:
            - users
          member:
            - cn=Jane Doe,ou=people,dc=example,dc=com
            - cn=John Doe,ou=people,dc=example,dc=com
          objectClass:
            - groupOfNames

- name: "Convert dictionary to LDIF while writing it to /tmp/test.ldif using 'to_ldif' filter"
  copy:
    content: "{{ dictionary | to_ldif }}"
    dest: "/tmp/test.ldif"

Convert LDIF to JSON

---
- name: "Create multi-line string variable with LDIF data"
  set_fact:
    ldif: |
      dn: dc=example,dc=com
      dc: example
      description: This is one line which is longer than
       79 characters, so LDIF breaks it up over multiple lines
      objectClass: dcObject
      objectClass: organization
      o: example.com

      dn: ou=people,dc=example,dc=com
      objectClass: organizationalUnit
      ou: people

      dn: cn=Jane Doe,ou=people,dc=example,dc=com
      objectClass: inetOrgPerson
      cn: Jane Doe
      sn: Doe
      mail: jane.doe@example.com

      dn: cn=John Doe,ou=people,dc=example,dc=com
      objectClass: inetOrgPerson
      cn: John Doe
      sn: Doe
      mail: john.doe@example.com

      dn: ou=groups,dc=example,dc=com
      objectClass: organizationalUnit
      ou: groups

      dn: cn=users,ou=groups,dc=example,dc=com
      objectClass: groupOfNames
      cn: users
      member: cn=Jane Doe,ou=people,dc=example,dc=com
      member: cn=John Doe,ou=people,dc=example,dc=com

- name: "Convert string to JSON while writing it to /tmp/test.json using 'from_ldif' filter"
  copy:
    content: "{{ (ldif | from_ldif) | to_nice_json }}"
    dest: "/tmp/test.json"

Build dependencies

Install the following OS development packages first.

sudo apt-get install libssl-dev libldap2-dev libsasl2-dev python2-dev python3-dev
mkvirtualenv --python=/usr/bin/python3 python3-development
pip install --requirement requirements.txt
gem install travis fry

License

GPLv3.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ansible-filters-ldif-0.0.11.tar.gz (18.2 kB view hashes)

Uploaded Source

Built Distribution

ansible_filters_ldif-0.0.11-py3-none-any.whl (16.5 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page