s4:provision Make the --ol-slapd paramter take the full path to slapd
[sfrench/samba-autobuild/.git] / howto-ol-backend-s4.txt
1 Samba4  OpenLDAP-Backend Quick-Howto
2 ====================================
3
4 oliver@itc.li  -  August 2009
5
6
7 This Mini-Howto describes in a very simplified way 
8 how to setup Samba 4 (S4) (pre)Alpha 9 with the
9 OpenLDAP (OL) -Backend.
10 Use of OpenLDAP >= 2.4.17 is strongly recommended.
11
12
13 1.) Download and compile OpenLDAP. 
14
15 The use of (older) Versions shipped with Distributions often
16 causes trouble, so dont use them. Configure-Example:
17
18 #> ./configure --enable-overlays=yes --with-tls=yes --with-cyrus-sasl=yes
19 #> make depend && make && make install
20
21 Note: openssl and cyrus-sasl libs should be installed
22 before compilation.
23
24
25
26 2.) Prepare S4 to use OL-Backend:
27
28 Run the provision-backend Python-Script first, then "final" provision
29 (these 2-step process will be merged in the future)
30
31 Simple provision-backend Example:
32
33 #> setup/provision-backend --realm=ldap.local.site \
34   --domain=LDAP --ldap-admin-pass="linux" \
35   --ldap-backend-type=openldap \
36   --server-role='domain controller' \
37   --ol-slapd="/usr/local/libexec/slapd"
38
39 After that, you should get a similar output:
40
41 --------
42 Your openldap Backend for Samba4 is now configured, and is ready to be started
43 Server Role:         domain controller
44 Hostname:            ldapmaster
45 DNS Domain:          ldap.local.site
46 Base DN:             DC=ldap,DC=local,DC=site
47 LDAP admin user:     samba-admin
48 LDAP admin password: linux
49 LDAP Debug-Output:
50 (1, 'connection to remote LDAP server dropped?')
51 Ok. - No other slapd-Instance listening on: ldapi://%2Fusr%2Flocal%2Fsamba%2Fprivate%2Fldap%2Fldapi. Starting al provision.
52 Started slapd for final provisioning with PID: 21728
53
54 Now run final provision with: --ldap-backend=ldapi --ldap-backend-type=openldap --password=linux --username=sa=ldap.local.site --domain=LDAP --server-role='domain controller'
55
56 --------
57
58 Since this (pre)Alpha, you dont have to run slapd manually
59 any more. slapd will be started automatically, when 
60 provision-backend is done, listening on the
61 ldapi://-Socket. System should be ready 
62 for final provision now:
63
64
65 3.) Final provision:
66
67 Use the Parameters displayed above to run final provision.
68 (you can add --adminpass=<yourpass> to the parameters,
69 otherwise a random password will be generated for 
70 cn=Administrator,cn=users,<Your Base-DN>):
71
72 #> setup/provision --ldap-backend=ldapi \
73    --ldap-backend-type=openldap --password=linux \
74    --username=samba-admin --realm=ldap.local.site \
75    --domain=LDAP --server-role='domain controller'\
76    --adminpass=linux
77
78 At the End of the final provision you should get
79 the following output (only partial here). Read it carefully:
80
81 --------
82 ...
83 A Kerberos configuration suitable for Samba 4 has been generated at /usr/local/samba/private/krb5.conf
84 LDAP Debug-Output:[Message({'dn': Dn(''), 'objectClass': MessageElement(['top','OpenLDAProotDSE'])})]
85 slapd-PID-File found. PID is :21728
86
87 File from provision-backend with stored PID found. PID is :21728
88
89 slapd-Process used for provisioning with PID: 21728
90  will now be shut down.
91 slapd-Process used for final provision was properly shut down.
92 Use later the following commandline to start slapd, then Samba:
93 /usr/local/libexec/slapd -f /usr/local/samba/private/ldap/slapd.conf -h ldapi://%2Fusr%2Flocal%2Fsamba%2Fprivate%2Fldap%2Fldapi
94
95 This slapd-Commandline is also stored under: /usr/local/samba/private/ldap/slapd_command_file.txt
96 Please install the phpLDAPadmin configuration located at /usr/local/samba/private/phpldapadmin-config.php into /etc/phpldapadmin/config.php
97 Once the above files are installed, your Samba4 server will be ready to use
98 Server Role:    domain controller
99 Hostname:       ldapmaster
100 NetBIOS Domain: LDAP
101 DNS Domain:     ldap.local.site
102 DOMAIN SID:     S-1-5-21-429312062-2328781357-2130201529
103 Admin password: linux
104
105 --------
106
107 Our slapd in "provision-mode" wiil be shut down automatically 
108 after final provision ends.
109
110
111 4.) Run OL and S4:
112
113 After you completed the other necessary steps (krb and named-specific),
114 start first OL with the commandline displayed in the output under (3),
115 (remember: the slapd-Commandline is also stored in the file ../slapd_command_file.txt)
116 then S4.
117
118
119
120 5.) Special Setup-Types:
121
122 a) OpenLDAP-Online Configuration (olc):
123 Use the provision-backend Parameter 
124
125  --ol-olc=yes.
126
127 In that case, the olc will be setup automatically
128 under ../private/slapd.d/.
129 olc is accessible via "cn=samba-admin,cn=samba" and Base-DN "cn=config"
130 olc is intended primarily for use in conjunction with MMR
131
132 Attention: You have to start OL with the commandline
133 displayed in the output under (3), but you have to set a 
134 listening port of slapd manually:
135
136 (e.g. -h ldap://ldapmaster.ldap.local.site:9000)
137
138 Attention: You _should_not_ edit the olc-Sections
139 "config" and "ldif", as these are vital to the olc itself.
140
141
142 b) MultiMaster-Configuration (MMR):
143 At this time (S4 (pre)Alpha9) the only possible Replication setup.
144 Use the provision-backend Parameter:
145
146  --ol-mmr-urls=<list of whitespace separated ldap-urls (and Ports <> 389!).
147
148 e.g.:
149 --ol-mmr-urls="ldap://ldapmaster1.ldap.local.site:9000 \ 
150    ldap://ldapmaster2.ldap.local.site:9000"
151
152 Attention: You have to start OL with the commandline
153 displayed in the output under (3), but you have to set a 
154 listening port of slapd manually
155 (e.g. -h ldap://ldapmaster1.ldap.local.site:9000)
156
157 The Ports must be different from 389, as these are occupied by S4.
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177