[Ovirt-devel] [PATCH server] update ovirt-add-host to use ipa commands instead of kadmin.local
Joey Boggs
jboggs at redhat.com
Wed May 6 19:06:47 UTC 2009
This updates ovirt-add-host to use ipa-addservice and ipa-getkeytab rather than kadmin.local. This also enables the ability to use a remote ipa server in the future. Functionality and behavior is retained the same.
---
scripts/ovirt-add-host | 24 +++++++++++++++++-------
1 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/scripts/ovirt-add-host b/scripts/ovirt-add-host
index c6b7cd2..eb7b90d 100755
--- a/scripts/ovirt-add-host
+++ b/scripts/ovirt-add-host
@@ -6,8 +6,11 @@ import socket
import shutil
import sys
-def kadmin_local(command):
- ret = os.system("/usr/kerberos/sbin/kadmin.local -q '" + command + "'")
+def add_principal(command):
+ ret = os.system("ipa-addservice '" + command + "'")
+
+def get_keytab(command):
+ ret = os.system("ipa-getkeytab -s " + ipa_host + " -p " + command + " -k " + outname)
if ret != 0:
raise
@@ -22,6 +25,14 @@ default_realm = krbV.Context().default_realm
ipaddr = get_ip(sys.argv[1])
+f = open('/etc/krb5.conf','r')
+for line in f.read().split('\n'):
+ if "admin_server" in line:
+ key, value = line.split("=", 1)
+ host,port = value.split(":",1)
+ ipa_host = host.strip()
+f.close()
+
libvirt_princ = 'libvirt/' + sys.argv[1] + '@' + default_realm
qpidd_princ = 'qpidd/' + sys.argv[1] + '@' + default_realm
@@ -32,11 +43,10 @@ else:
# here, generate the libvirt/ principle for this machine, necessary
# for taskomatic and host-browser
-kadmin_local('addprinc -randkey +requires_preauth ' + libvirt_princ)
-kadmin_local('ktadd -k ' + outname + ' ' + libvirt_princ)
-
-kadmin_local('addprinc -randkey ' + qpidd_princ)
-kadmin_local('ktadd -k ' + outname + ' ' + qpidd_princ)
+add_principal(libvirt_princ)
+get_keytab(libvirt_princ)
+add_principal(qpidd_princ)
+get_keytab(qpidd_princ)
# make sure it is readable by apache and qpidd.
os.chmod(outname, 0644)
--
1.6.0.6
More information about the ovirt-devel
mailing list