diff options
author | Martin Kosek <mkosek@redhat.com> | 2011-10-13 12:16:15 +0200 |
---|---|---|
committer | Rob Crittenden <rcritten@redhat.com> | 2011-10-13 00:54:41 -0400 |
commit | 77cc5e024601ae7be6ce706499d5f403c8b71408 (patch) | |
tree | ab34bdf61acf747f32ae52344bed0259a1f00692 /install/tools | |
parent | 9bff6cb8a955c3f4b167e05856b40f6e2ee5dca8 (diff) | |
download | freeipa-77cc5e024601ae7be6ce706499d5f403c8b71408.tar.gz freeipa-77cc5e024601ae7be6ce706499d5f403c8b71408.tar.xz freeipa-77cc5e024601ae7be6ce706499d5f403c8b71408.zip |
Hostname used by IPA must be a system hostname
Make sure that the hostname IPA uses is a system hostname. If user
passes a non-system hostname, update the network settings and
system hostname in the same way that ipa-client-install does.
This step should prevent various services failures which may not
be ready to talk to IPA with non-system hostname.
https://fedorahosted.org/freeipa/ticket/1931
Diffstat (limited to 'install/tools')
-rwxr-xr-x | install/tools/ipa-server-install | 23 | ||||
-rw-r--r-- | install/tools/man/ipa-server-install.1 | 2 |
2 files changed, 24 insertions, 1 deletions
diff --git a/install/tools/ipa-server-install b/install/tools/ipa-server-install index 7839dbd9f..6d643883b 100755 --- a/install/tools/ipa-server-install +++ b/install/tools/ipa-server-install @@ -524,6 +524,14 @@ def uninstall(): ipaservices.knownservices.ipa.disable() + old_hostname = sstore.restore_state('network','hostname') + system_hostname = get_fqdn() + if old_hostname is not None and old_hostname != system_hostname: + try: + ipautil.run(['/bin/hostname', old_hostname]) + except CalledProcessError, e: + print >>sys.stderr, "Failed to set this machine hostname back to %s (%s)." % (old_hostname, str(e)) + # Now for some sanity checking. Make sure everything was really # uninstalled. serverids = dsinstance.check_existing_installation() @@ -751,6 +759,15 @@ def main(): host_name = host_name.lower() logging.debug("will use host_name: %s\n" % host_name) + system_hostname = get_fqdn() + if host_name != system_hostname: + print >>sys.stderr + print >>sys.stderr, "Warning: hostname %s does not match system hostname %s." \ + % (host_name, system_hostname) + print >>sys.stderr, "System hostname will be updated during the installation process" + print >>sys.stderr, "to prevent service failures." + print >>sys.stderr + if not options.domain_name: domain_name = read_domain_name(host_name[host_name.find(".")+1:], options.unattended) logging.debug("read domain_name: %s\n" % domain_name) @@ -871,6 +888,12 @@ def main(): print "Please wait until the prompt is returned." print "" + if host_name != system_hostname: + logging.debug("Chosen hostname (%s) differs from system hostname (%s) - change it" \ + % (host_name, system_hostname)) + # configure /etc/sysconfig/network to contain the custom hostname + ipaservices.backup_and_replace_hostname(fstore, sstore, host_name) + # Create DS group if it doesn't exist yet try: grp.getgrnam(dsinstance.DS_GROUP) diff --git a/install/tools/man/ipa-server-install.1 b/install/tools/man/ipa-server-install.1 index 7cc4983b8..920c13450 100644 --- a/install/tools/man/ipa-server-install.1 +++ b/install/tools/man/ipa-server-install.1 @@ -43,7 +43,7 @@ The kerberos master password (normally autogenerated) The password for the IPA admin user .TP \fB\-\-hostname\fR=\fIHOST_NAME\fR -The fully\-qualified DNS name of this server +The fully\-qualified DNS name of this server. If the hostname does not match system hostname, the system hostname will be updated accordingly to prevent service failures. .TP \fB\-\-ip\-address\fR=\fIIP_ADDRESS\fR The IP address of this server. If this address does not match the address the host resolves to and --setup-dns is not selected the installation will fail. |