2009/4/24 Rich Megginson <rmeggins@redhat.com>
tamarin p wrote:
Can you post your slapd-test2.inf?  Be sure to obscure any sensitive info first.

Here it is. It is mostly a copy of the example 6.2 in the installation doc for silent installs.

# slapd-test2.inf for installation on ldap2.test.com
# config directory on ldap1.test.com
AdminDomain = test.com
SuiteSpotGroup = nobody
ConfigDirectoryLdapURL = ldap://ldap1.test.com:4000/o=NetscapeRoot
ConfigDirectoryAdminID = admin
ConfigDirectoryAdminPwd = pwd
SuiteSpotUserID = nobody

InstallLdifFile = suggest
ServerIdentifier = test2
ServerPort = 4002
AddOrgEntries = No
RootDN = cn=Directory Manager
RootDNPwd = pwd
Suffix = dc=test,dc=com
UseExistingMC = Yes
UseExistingUG= No
AddSampleEntries = No

ServerAdminID = admin
ServerAdminPwd = pwd
ServerIpAddress =
Port = 9830

If I add FullMachineName directive to the inf then this is added instead of empty string, but according to the docs http://www.redhat.com/docs/manuals/dir-server/install/8.0/Installation_Guide-Advanced_Configuration-Silent.html this should be the hostname of the machine you're installing ON. Additionally this still leaves me with the wrong port, ie ldap://ldap01.test.com:4002 <http://ldap01.test.com:4002> (it uses the FullMachineName but local port for the instance being created). But on the second run it is always corrected. So the workaround I have found is to just make sure adm.conf exists already. Then it always works, even when the file is blank.
Ok.  Looks like the auto hostname thing is not working.  We use perl Net::Domain hostfqdn if FullMachineName is absent - it uses some complicated formula involving sys::hostname, /etc/resolv.conf, etc.  I'm not sure why it would fail completely though.

Could be I'm missing some lib, but on the other hand, it looks as if the ldapurl in adm.conf must point to the config directory so it wouldn't do any good if it did correctly set the hostname of the machine you install on (ldap2.test.com in my case), since the configdir is on another machine. The correct ldap url for config directory is always going to be ldap://ldap1.test.com:4000 and looks like the script should always just use the host:port from ConfigDirectoryLdapURL for ldapurl in adm.conf. Also, regardless if fullmachinename is set or not, when adm.conf already exists on running setup-ds-admin, the property is always set correctly to ldap://ldap1.test.com:4000 and the registration/unregistration works after.