This guide installs Apache Directory Server (ApacheDS) and starts an LDAP service instance.
/opt/apacheds- name: Install ApacheDS on Debian family
hosts: apacheds_debian
become: true
vars:
apacheds_version: "2.0.0.AM26"
apacheds_url: "https://archive.apache.org/dist/directory/apacheds/dist/{{ apacheds_version }}/apacheds-{{ apacheds_version }}.tar.gz"
apacheds_home: /opt/apacheds
tasks:
- name: Install dependencies
ansible.builtin.apt:
update_cache: true
name:
- openjdk-17-jre-headless
- tar
- curl
- ldap-utils
state: present
- name: Download ApacheDS archive
ansible.builtin.get_url:
url: "{{ apacheds_url }}"
dest: /tmp/apacheds.tar.gz
mode: "0644"
- name: Extract ApacheDS
ansible.builtin.unarchive:
src: /tmp/apacheds.tar.gz
dest: /opt
remote_src: true
creates: "{{ apacheds_home }}"
- name: Ensure canonical symlink
ansible.builtin.file:
src: "/opt/apacheds-{{ apacheds_version }}"
dest: "{{ apacheds_home }}"
state: link
force: true
- name: Install systemd unit
ansible.builtin.copy:
dest: /etc/systemd/system/apacheds.service
mode: "0644"
content: |
[Unit]
Description=Apache Directory Server
After=network.target
[Service]
Type=forking
ExecStart={{ apacheds_home }}/bin/apacheds start default
ExecStop={{ apacheds_home }}/bin/apacheds stop default
Restart=on-failure
[Install]
WantedBy=multi-user.target
- name: Enable and start ApacheDS
ansible.builtin.systemd:
name: apacheds
enabled: true
state: started
daemon_reload: true
- name: Verify LDAP listener
ansible.builtin.command: ss -lntp
changed_when: false
- name: Install ApacheDS on RHEL family
hosts: apacheds_rhel
become: true
vars:
apacheds_version: "2.0.0.AM26"
apacheds_url: "https://archive.apache.org/dist/directory/apacheds/dist/{{ apacheds_version }}/apacheds-{{ apacheds_version }}.tar.gz"
apacheds_home: /opt/apacheds
tasks:
- name: Install dependencies
ansible.builtin.dnf:
name:
- java-17-openjdk-headless
- tar
- curl
- openldap-clients
state: present
- name: Download ApacheDS archive
ansible.builtin.get_url:
url: "{{ apacheds_url }}"
dest: /tmp/apacheds.tar.gz
mode: "0644"
- name: Extract ApacheDS
ansible.builtin.unarchive:
src: /tmp/apacheds.tar.gz
dest: /opt
remote_src: true
creates: "{{ apacheds_home }}"
- name: Ensure canonical symlink
ansible.builtin.file:
src: "/opt/apacheds-{{ apacheds_version }}"
dest: "{{ apacheds_home }}"
state: link
force: true
- name: Install systemd unit
ansible.builtin.copy:
dest: /etc/systemd/system/apacheds.service
mode: "0644"
content: |
[Unit]
Description=Apache Directory Server
After=network.target
[Service]
Type=forking
ExecStart={{ apacheds_home }}/bin/apacheds start default
ExecStop={{ apacheds_home }}/bin/apacheds stop default
Restart=on-failure
[Install]
WantedBy=multi-user.target
- name: Enable and start ApacheDS
ansible.builtin.systemd:
name: apacheds
enabled: true
state: started
daemon_reload: true
ansible-playbook -i inventory.ini apacheds-install.yml
apacheds_debian.apacheds_version pinned to a tested release in production.Beyond this playbook, we offer:
Contact our automation team: office@linux-server-admin.com