keep upload files locally, activate network in kickstarts

Summary:
I've come to dislike the approach where we source files that
get included in the disk images remotely; it's unnecessarily
complicated and needlessly exposes us to unexpected changes in
the remote files. So simply keep the files in this git repo
instead, none of them is very big. This also simplifies the
code.

Also, change all the kickstarts to specify --device=link and
--activate on their network lines. These arguments *should*
be included, according to the documentation (the first to
specify which device the config is for, the second to specify
that it should be activated in the installer environment), and
I think the lack of the second is actually now a problem for
the FreeIPA kickstart enrolment test (not sure exactly what
changed to make this a problem where it wasn't before, but
*something* has, and this fixes it).

Test Plan:
check that all tests still run properly. The
FreeIPA enrolment kickstart test should now get somewhat
further. Before this change, for F25 and Rawhide, it fails to
enrol at all during install. Now it should enrol properly -
that's what the kickstart changes fix, it was failing because
it wasn't using the right network config - but it still fails
when trying to log in as test1, due to RHBZ #1366403 .

Reviewers: jskladan, garretraziel

Reviewed By: garretraziel

Subscribers: tflink

Differential Revision: https://phab.qadevel.cloud.fedoraproject.org/D968
This commit is contained in:
Adam Williamson 2016-08-15 17:02:05 -07:00
parent fe8a8e6665
commit 8c0493ac35
6 changed files with 56 additions and 19 deletions

View File

@ -144,24 +144,11 @@ class GuestfsImage(object):
# download a file from an http server and transfer that
# to the image
for upload in self.uploads:
# download the file to a temp file - borrowed from
# fedora_openqa_schedule (which stole it from SO)
(_, tmpfname) = tempfile.mkstemp(prefix="createhdds")
with open(tmpfname, 'wb') as tmpfh:
resp = urlopen(upload['source'])
while True:
# This is the number of bytes to read between buffer
# flushes. Value taken from the SO example.
buff = resp.read(8192)
if not buff:
break
tmpfh.write(buff)
# as with write, the dict must specify a target
# partition and location ('target')
partn = gfs.list_partitions()[int(upload['part'])-1]
gfs.mount(partn, "/")
gfs.upload(tmpfname, upload['target'])
os.remove(tmpfname)
gfs.upload('/'.join((SCRIPTDIR, 'uploads', upload['source'])), upload['target'])
gfs.sync()
gfs.umount_opts("/")
# we're all done! rename to the correct name

View File

@ -54,7 +54,7 @@
{
"name" : "ks",
"size" : "100M",
"imgver" : "2",
"imgver" : "3",
"parts" : [
{
"filesystem" : "ext4",
@ -67,17 +67,17 @@
{
"part" : "1",
"target" : "/root-user-crypted-net.ks",
"source" : "https://jskladan.fedorapeople.org/kickstarts/root-user-crypted-net.ks"
"source" : "root-user-crypted-net.ks"
},
{
"part" : "1",
"target" : "/freeipa.ks",
"source" : "https://www.happyassassin.net/ks/oqipas.ks"
"source" : "freeipa.ks"
},
{
"part" : "1",
"target" : "/freeipaclient.ks",
"source" : "https://www.happyassassin.net/ks/oqipac.ks"
"source" : "freeipaclient.ks"
}
]
},
@ -98,7 +98,7 @@
{
"part" : "1",
"target" : "/updates.img",
"source" : "https://fedorapeople.org/groups/qa/updates/updates-openqa.img"
"source" : "updates.img"
}
]
},

17
uploads/freeipa.ks Normal file
View File

@ -0,0 +1,17 @@
install
cdrom
bootloader --location=mbr
network --device=link --activate --bootproto=static --ip=10.0.2.100 --netmask=255.255.255.0 --gateway=10.0.2.2 --hostname=ipa001.domain.local
lang en_US.UTF-8
keyboard us
timezone --utc America/New_York
clearpart --all
autopart
%packages
@^server-product-environment
@freeipa-server
# we need this to create the fake repo to make DNF happy for offline deployment
createrepo_c
%end
rootpw anaconda
reboot

15
uploads/freeipaclient.ks Normal file
View File

@ -0,0 +1,15 @@
install
cdrom
bootloader --location=mbr
network --device=link --activate --bootproto=static --ip=10.0.2.101 --netmask=255.255.255.0 --gateway=10.0.2.2 --hostname=client001.domain.local --nameserver=10.0.2.100
lang en_US.UTF-8
keyboard us
timezone --utc America/New_York
clearpart --all
autopart
%packages
@^server-product-environment
%end
rootpw anaconda
reboot
realm join --one-time-password=monkeys ipa001.domain.local

View File

@ -0,0 +1,18 @@
install
bootloader --location=mbr
network --device=link --activate --bootproto=dhcp
url --mirrorlist=https://mirrors.fedoraproject.org/mirrorlist?repo=fedora-$releasever&arch=$basearch
lang en_US.UTF-8
keyboard us
timezone --utc America/New_York
clearpart --all
autopart
rootpw --iscrypted $6$ansiogjasd0io9u3$9E1vMbLbXW14grtguedFGVjvhyBz1T.KIA3MJl1SWnGbtTpiXIAjbazIQAUKRNkNIEmd3mI0NCkFIVBrN41fZ.
user --name=test --password=$6$ansioasgfgadsghd$O8O8zom5hx.V8ib1jV91xuvIgYqA2b99tzhibkk3URITdCrDtbRbwJjMK1kW4l0/9W0brraGC4NUBtDoGv4Kl. --iscrypted
reboot
%packages
@core
%end

BIN
uploads/updates.img Normal file

Binary file not shown.