110 lines
2.9 KiB
Bash
Executable file
110 lines
2.9 KiB
Bash
Executable file
#!/bin/bash
|
|
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
|
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
|
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
#
|
|
# Author: Petr Sklenar <psklenar@redhat.com>
|
|
# test based on original Petr Mensik's tests
|
|
#
|
|
#
|
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
|
|
|
|
|
|
DM_SECRET=dmSecret
|
|
ADMIN_SECRET=adminSecret
|
|
HOST_SECRET=hostSecret
|
|
DOMAIN=ipa.test
|
|
REALM=IPA.TEST
|
|
|
|
fetch_local_ipv4()
|
|
{
|
|
IP4=`ip address | awk '$1 == "inet" { print $2 }' | cut -d/ -f1 | grep -v '^127\.'`
|
|
}
|
|
|
|
prepareIpaServer()
|
|
{
|
|
rlRun "dnf -y module install idm:DL1"
|
|
rlRun "dnf -y install freeipa-server-dns"
|
|
HOSTNAME=`hostname`
|
|
if echo $HOSTNAME | grep '\.'
|
|
then
|
|
rlLog "Using full hostname $HOSTNAME"
|
|
else
|
|
IP4=`fetch_local_ipv4`
|
|
HOSTNAME=`dig +short -x ${IP4}`
|
|
HOSTNAME="${HOSTNAME%.}"
|
|
ORIG_HOSTNAME=${HOSTNAME}
|
|
HOSTNAME=primary.ipa.test
|
|
rlRun "hostname ${HOSTNAME}" 0 "Resetting machine hostname to $HOSTNAME"
|
|
fi
|
|
if ! ipactl status
|
|
then
|
|
if ! grep ${HOSTNAME} /etc/hosts
|
|
then
|
|
# getent hosts ${HOSTNAME} >> /etc/hosts
|
|
echo "${IP4} ${HOSTNAME} ${ORIG_HOSTNAME}" >> /etc/hosts
|
|
fi
|
|
rlRun "ipa-server-install -U --hostname ${HOSTNAME} -n ${DOMAIN} -r ${REALM} --setup-dns -p ${DM_SECRET} -a ${ADMIN_SECRET} --auto-forwarders"
|
|
fi
|
|
}
|
|
|
|
make_update()
|
|
{
|
|
local IPV4=`fetch_local_ipv4`
|
|
local TTL=600
|
|
cat << NSUPDATE
|
|
gsstsig
|
|
prereq yxdomain primary.ipa.test
|
|
update del primary.ipa.test
|
|
send
|
|
|
|
gsstsig
|
|
update add primary.ipa.test ${TTL} IN A ${IPV4}
|
|
send
|
|
NSUPDATE
|
|
}
|
|
|
|
rlJournalStart
|
|
rlPhaseStartSetup
|
|
rlAssertRpm $PACKAGE
|
|
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
|
|
rlRun "TestDir=`pwd`" 0 "Saving test directory"
|
|
rlRun "pushd $TmpDir"
|
|
rlPhaseEnd
|
|
|
|
rlPhaseStartSetup "Prepare IPA"
|
|
prepareIpaServer
|
|
rlPhaseEnd
|
|
|
|
rlPhaseStartTest
|
|
for i in `seq 5 6`;do
|
|
rlRun "ipactl restart"
|
|
sleep $i
|
|
rlRun "systemctl restart named.service"
|
|
sleep $i
|
|
done
|
|
rlPhaseEnd
|
|
|
|
rlPhaseStartTest
|
|
rlRun "kinit -kt /etc/krb5.keytab" 0 "Login machine into kerberos"
|
|
rlRun "klist" 0 "Ensure some ticket is there"
|
|
rlRun "make_update > update"
|
|
rlRun "cp $TestDir/update.gdb update.gdb"
|
|
rlPhaseEnd
|
|
|
|
rlPhaseStartCleanup
|
|
ipa-server-install --uninstall --unattended
|
|
killall bind
|
|
systemctl daemon-reload
|
|
rlServiceStop
|
|
rlRun "rm -f $rlRun_LOG"
|
|
rlRun "popd"
|
|
rlRun "hostname ${ORIG_HOSTNAME}"
|
|
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
|
|
rlPhaseEnd
|
|
rlJournalPrintText
|
|
rlJournalEnd
|
|
|