Browse code

Fix LDAP support for openSUSE

Closes-Bug: #1227651
Change-Id: I1c55fbb2f65f882a0ae2bcf4767c0a3e0f0f47e7

Ralf Haferkamp authored on 2013/09/12 21:24:47
Showing 2 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,19 @@
0
+dn: cn=config
1
+objectClass: olcGlobal
2
+cn: config
3
+olcArgsFile: /var/run/slapd/slapd.args
4
+olcAuthzRegexp: {0}gidNumber=0\+uidNumber=0,cn=peercred,cn=external,cn=auth dn
5
+ :cn=config
6
+olcPidFile: /var/run/slapd/slapd.pid
7
+olcSizeLimit: 10000
8
+
9
+dn: cn=schema,cn=config
10
+objectClass: olcSchemaConfig
11
+cn: schema
12
+
13
+include: file:///etc/openldap/schema/core.ldif
14
+
15
+dn: olcDatabase={1}hdb,cn=config
16
+objectClass: olcHdbConfig
17
+olcDbDirectory: /var/lib/ldap
18
+olcSuffix: dc=openstack,dc=org
... ...
@@ -8,6 +8,7 @@
8 8
 XTRACE=$(set +o | grep xtrace)
9 9
 set +o xtrace
10 10
 
11
+LDAP_SERVICE_NAME=slapd
11 12
 
12 13
 # Functions
13 14
 # ---------
... ...
@@ -24,10 +25,19 @@ function install_ldap() {
24 24
         LDAP_ROOTPW_COMMAND=replace
25 25
         sudo DEBIAN_FRONTEND=noninteractive apt-get install slapd ldap-utils
26 26
         #automatically starts LDAP on ubuntu so no need to call start_ldap
27
-    elif is_fedora || is_suse; then
27
+    elif is_fedora; then
28 28
         LDAP_OLCDB_NUMBER=2
29 29
         LDAP_ROOTPW_COMMAND=add
30 30
         start_ldap
31
+    elif is_suse; then
32
+        LDAP_OLCDB_NUMBER=1
33
+        LDAP_ROOTPW_COMMAND=add
34
+        LDAP_SERVICE_NAME=ldap
35
+        # SUSE has slappasswd in /usr/sbin/
36
+        PATH=$PATH:/usr/sbin/
37
+        sudo slapadd -F /etc/openldap/slapd.d/ -bcn=config -l $FILES/ldap/base-config.ldif
38
+        sudo sed -i '/^OPENLDAP_START_LDAPI=/s/"no"/"yes"/g' /etc/sysconfig/openldap
39
+        start_ldap
31 40
     fi
32 41
 
33 42
     printf "generate password file"
... ...
@@ -42,7 +52,7 @@ function install_ldap() {
42 42
     sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f $TMP_MGR_DIFF_FILE
43 43
 
44 44
     # On fedora we need to manually add cosine and inetorgperson schemas
45
-    if is_fedora; then
45
+    if is_fedora || is_suse; then
46 46
         sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
47 47
         sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
48 48
     fi
... ...
@@ -64,13 +74,13 @@ function install_ldap() {
64 64
 
65 65
 # start_ldap() - Start LDAP
66 66
 function start_ldap() {
67
-    sudo service slapd restart
67
+    sudo service $LDAP_SERVICE_NAME restart
68 68
 }
69 69
 
70 70
 
71 71
 # stop_ldap() - Stop LDAP
72 72
 function stop_ldap() {
73
-    sudo service slapd stop
73
+    sudo service $LDAP_SERVICE_NAME stop
74 74
 }
75 75
 
76 76
 # clear_ldap_state() - Clear LDAP State