Skip to main content

Ansible filter to read or write LDIF.

Project description

Ansible filter to read or write LDIF.

Latest version 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"

License

GPLv3.

Download files

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

Files for ansible-filters-ldif, version 0.0.9
Filename, size File type Python version Upload date Hashes
Filename, size ansible_filters_ldif-0.0.9-py2-none-any.whl (16.2 kB) File type Wheel Python version py2 Upload date Hashes View hashes
Filename, size ansible_filters_ldif-0.0.9-py3-none-any.whl (16.2 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size ansible-filters-ldif-0.0.9.tar.gz (18.9 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page