Hi,
I have tested this and have found that any entries
in /etc/dirsrv/admin-serv/adm.conf get overridden by the install
script. I have adapted your template to work with my own ansible
playbook and after setup-ds-admin.pl ran, the value for ldapurl has
changed to the local hostname instead of the hostname for the config
host. Additionaly the ConfigDirectoryLdapURL parameter from the
inf-File seems to be ignored. Even if I set it to the correct config
host hostname the local hostname is being used eventually.
My current plan is to ditch the silent install completely in favor of
an expect-script that would send the input to an interactive run of
setup-ds-admin.pl. However I think that this is a really clunky fix and
I would really like to get it working with the silent install.
Julian
Am Fri, 15 Sep 2017 12:56:07 -0400
schrieb Morgan Jones <morgan(a)morganjones.org>:
Hello Julia,
I’m troubleshooting this exact behavior. So far I’ve found if you
create an /etc/dirsrv/admin-serv/adm.conf before the silent install
it works. However we just went through a host domain name change
(long story) and I’m having I think unrelated problems. I hope to
resolve that shortly and then I might have a more definitive answer.
In the mean time this may be helpful to you:
https://github.com/morganllj/ansible-playbooks/blob/develop/templates/389...
https://github.com/morganllj/ansible-playbooks/blob/develop/templates/adm...
Here’s where they’re used if you are familiar with ansible:
https://github.com/morganllj/ansible-playbooks/blob/develop/install_389.yml
-morgan
> On Sep 15, 2017, at 11:49 AM, Julian Kippels <kippels(a)hhu.de> wrote:
>
> Hi,
>
> I was playing around with silent installs and found out that the
> final configuration differs from interactive installations. Here is
> what I did:
>
> I installed two servers on different machines ds-1.localdomain and
> ds-2.localdomain. ds-1 is used as a master and ds-2 is supposed to
> use it as its configuration server.
> Both machines run RHEL 7.4 with the latest EPEL-builds of 389-ds.
>
> First I used setup-ds-admin.pl --keepcache interactively first on
> ds-1 and told it not to use an existing configuration server, then
> on ds-2 and told it to use ds-1. When I connect to ds-1 using
> 389-console I can see both ds-1 and ds-2.
> Then I took the generated .inf-files, removed all traces from the
> previous instances from both machines using remove-ds-admin.pl -a
> -f -y and then ran setup-ds-admin.pl --silent --file=ds-1.inf and
> --file=ds-2.inf respectively. When I connect to ds-1 now, I only see
> ds-1, to see ds-2 I have to connect to ds-2 with 389-console.
>
> The .inf-files look like this:
> --------
> $ cat ds-1.inf
> [General]
> AdminDomain = localdomain
> ConfigDirectoryAdminID = admin
> ConfigDirectoryAdminPwd = XXX
> ConfigDirectoryLdapURL = ldap://ds-1.localdomain:389/o=NetscapeRoot
> FullMachineName = ds-1.localdomain
> ServerRoot = /usr/lib64/dirsrv
> StrictHostCheck = true
> SuiteSpotGroup = dirsrv
> SuiteSpotUserID = dirsrv
> [admin]
> Port = 9830
> ServerAdminID = admin
> ServerAdminPwd = XXX
> ServerIpAddress = 0.0.0.0
> SysUser = dirsrv
> [slapd]
> start_server = 0
> AddOrgEntries = Yes
> AddSampleEntries = No
> HashedRootDNPwd = XXX
> InstScriptsEnabled = true
> InstallLdifFile = suggest
> RootDN = cn=Directory Manager
> RootDNPwd = XXX
> ServerIdentifier = ds-1
> ServerPort = 389
> SlapdConfigForMC = yes
> Suffix = dc=localdomain
> UseExistingMC = 0
> bak_dir = /var/lib/dirsrv/slapd-ds-1/bak
> bindir = /usr/bin
> cert_dir = /etc/dirsrv/slapd-ds-1
> config_dir = /etc/dirsrv/slapd-ds-1
> datadir = /usr/share
> db_dir = /var/lib/dirsrv/slapd-ds-1/db
> ds_bename = userRoot
> inst_dir = /usr/lib64/dirsrv/slapd-ds-1
> ldif_dir = /var/lib/dirsrv/slapd-ds-1/ldif
> localstatedir = /var
> lock_dir = /var/lock/dirsrv/slapd-ds-1
> log_dir = /var/log/dirsrv/slapd-ds-1
> naming_value = rz
> run_dir = /var/run/dirsrv
> sbindir = /usr/sbin
> schema_dir = /etc/dirsrv/slapd-ds-1/schema
> sysconfdir = /etc
> tmp_dir = /tmp
> --------
> $ cat ds-2.inf
> [General]
> AdminDomain = localdomain
> ConfigDirectoryAdminID = admin
> ConfigDirectoryAdminPwd = XXX
> ConfigDirectoryLdapURL = ldap://ds-1.localdomain:389/o=NetscapeRoot
> FullMachineName = ds-2.localdomain
> ServerRoot = /usr/lib64/dirsrv
> StrictHostCheck = true
> SuiteSpotGroup = dirsrv
> SuiteSpotUserID = dirsrv
> [admin]
> Port = 9830
> ServerAdminID = admin
> ServerAdminPwd = XXX
> ServerIpAddress = 0.0.0.0
> SysUser = dirsrv
> [slapd]
> AddOrgEntries = Yes
> AddSampleEntries = No
> HashedRootDNPwd = XXX
> InstScriptsEnabled = true
> InstallLdifFile = suggest
> RootDN = cn=Directory Manager
> RootDNPwd = XXX
> ServerIdentifier = ds-2
> ServerPort = 389
> Suffix = dc=localdomain
> UseExistingMC = 1
> bak_dir = /var/lib/dirsrv/slapd-ds-2/bak
> bindir = /usr/bin
> cert_dir = /etc/dirsrv/slapd-ds-2
> config_dir = /etc/dirsrv/slapd-ds-2
> datadir = /usr/share
> db_dir = /var/lib/dirsrv/slapd-ds-2/db
> ds_bename = userRoot
> inst_dir = /usr/lib64/dirsrv/slapd-ds-2
> ldif_dir = /var/lib/dirsrv/slapd-ds-2/ldif
> localstatedir = /var
> lock_dir = /var/lock/dirsrv/slapd-ds-2
> log_dir = /var/log/dirsrv/slapd-ds-2
> naming_value = rz
> run_dir = /var/run/dirsrv
> sbindir = /usr/sbin
> schema_dir = /etc/dirsrv/slapd-ds-2/schema
> sysconfdir = /etc
> tmp_dir = /tmp
>
> I think this unintended behaviour and should be fixed. Unless I did
> a mistake somewhere, but I can't see where…
>
> Julian