139 lines
3.1 KiB
Plaintext
139 lines
3.1 KiB
Plaintext
#
|
|
|
|
{% from "plnx/apacheds/map.jinja" import ads with context %}
|
|
{% from "plnx/java/map.jinja" import java with context %}
|
|
|
|
include:
|
|
- plnx.java
|
|
|
|
|
|
|
|
Apache Directory Server:
|
|
archive.extracted:
|
|
- name: {{ads.opt_dir}}
|
|
- source: {{ads.src}}
|
|
- source_hash: {{ads.chksum}}
|
|
- require:
|
|
- pkg: {{java.pkg}}
|
|
|
|
file.symlink:
|
|
- name: {{ads.opt_dir}}/ads
|
|
- target: {{ads.opt_dir}}/apacheds-2.0.0.AM26
|
|
|
|
AdsDir0:
|
|
file.directory:
|
|
- name: "/var/db"
|
|
|
|
AdsDirs:
|
|
file.directory:
|
|
- name: {{ads.instances}}
|
|
- require:
|
|
- AdsDir0
|
|
|
|
Apache Directory Server Config:
|
|
file.managed:
|
|
- name: "{{ads.opt_dir}}/ads/bin/setenv.sh"
|
|
- source: "salt://plnx/apacheds/templates/setenv.sh.jinja"
|
|
- template: jinja
|
|
- defaults:
|
|
ads_home: {{ads.opt_dir}}/ads
|
|
java_home: {{java.java_home}}
|
|
java_opts: ""
|
|
ads_shutdown_port: "0"
|
|
ads_instances: {{ads.instances}}
|
|
- require:
|
|
- AdsDirs
|
|
|
|
{% for dval in pillar['apacheds'].instances -%}
|
|
{% for key,val in dval.items() %}
|
|
ADS Instance{{key}} Dir:
|
|
file.directory:
|
|
- name: "{{ads.instances}}/{{key}}"
|
|
|
|
ADS Instance{{key}} Conf Dir:
|
|
file.directory:
|
|
- name: "{{ads.instances}}/{{key}}/conf"
|
|
|
|
ADS Instance{{key}} Log Props:
|
|
file.managed:
|
|
- name: "{{ads.instances}}/{{key}}/conf/log4j.properties"
|
|
- source: "salt://plnx/apacheds/templates/log4j.properties.jinja"
|
|
- template: jinja
|
|
- defaults:
|
|
log_file: "/tmp/{{key}}.log"
|
|
|
|
|
|
{%- if not salt['file.file_exists' ](ads.instances +"/" + key + "/conf/config.ldif_migrated") %}
|
|
|
|
# Create a base 64 encoded ads-contextentry
|
|
# see: https://directory.apache.org/apacheds/basic-ug/1.4.3-adding-partition.html
|
|
|
|
{%
|
|
set ads_contextentry = "dn: "+'dc=planix,dc=org\n'+"dc: "+key+"\n"+
|
|
"objectclass: domain\nobjectclass: top\n\n"
|
|
%}
|
|
|
|
ADS_Instance{{key}}:
|
|
file.managed:
|
|
- name: "{{ads.instances}}/{{key}}/conf/config.ldif"
|
|
- source: "salt://plnx/apacheds/templates/config.ldif.jinja"
|
|
- template: jinja
|
|
- defaults:
|
|
partitionid: tube
|
|
partitionsuffix: "dc=planix,dc=org"
|
|
ldap_port: 12389
|
|
ads_contextentry: "{{ads_contextentry | base64_encode }}"
|
|
|
|
ADS_Log_Dir{{key}}:
|
|
file.directory:
|
|
- name: "{{ads.instances}}/{{key}}/log"
|
|
- require:
|
|
- ADS_Instance{{key}}
|
|
|
|
ADS_Run_Dir{{key}}:
|
|
file.directory:
|
|
- name: "{{ads.instances}}/{{key}}/run"
|
|
- require:
|
|
- ADS_Instance{{key}}
|
|
|
|
|
|
|
|
|
|
|
|
#ADS_Start_Srvice{{key}}:
|
|
#include:
|
|
# - plnx.apacheds.myservice
|
|
# - require:
|
|
# - ADS_Instance{{key}}
|
|
|
|
ADS_Init_LDAP{{key}}:
|
|
ldap.managed:
|
|
- connect_spec:
|
|
url: 'ldap://localhost:12389'
|
|
bind:
|
|
method: simple
|
|
dn: 'uid=admin,ou=system'
|
|
password: 'secret'
|
|
- entries:
|
|
- 'uid=admin,ou=system':
|
|
- replace:
|
|
uid:
|
|
- admin
|
|
userPassword: ['123456' ]
|
|
|
|
- require:
|
|
- ADS_Start{{key}}
|
|
|
|
{%- endif %}
|
|
|
|
ADS_Start{{key}}:
|
|
cmd.run:
|
|
- name: "/opt/ads/bin/apacheds.sh {{key}} start && sleep 30"
|
|
- require:
|
|
- ADS_Instance{{key}}
|
|
|
|
{% endfor %}
|
|
{% endfor %}
|
|
|
|
|