diff options
author | Stefan K. Berg <stefan.k.berg@ericsson.com> | 2016-01-20 17:53:55 +0100 |
---|---|---|
committer | Stefan Berg <sfb@consultron.com> | 2016-01-29 13:59:45 +0100 |
commit | 80b903bcafeaf10c8d4f1270599d1c770703abab (patch) | |
tree | ace5a545cf11b2c188b927a4c4582b2a30c93606 | |
parent | b65326f28448764f8993ceb856030615f68a9dfc (diff) |
Turn on fuelmenu by default, turn off biosdevname
Added experimental Fuel build loop, rebuilding up to ten times
while keeping the package cache, in the hope that all packages
will be able to download. Added snapshot support into this script
as well.
Changed naming of OPNFV iso label to OPNFV_FUEL_<id>, made changes
in ks.cfg and isolinux.cfg to look for this name at install.
Change-Id: Ic28a3af769cfc90416d7d988afd6f07eadcef4f1
Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
(cherry picked from commit 35697966da656585c43e2a2342a135ada65703cb)
-rw-r--r-- | build/Makefile | 13 | ||||
-rw-r--r-- | build/f_isoroot/Makefile | 6 | ||||
-rwxr-xr-x | build/f_isoroot/f_bootstrap/bootstrap_admin_node.sh | 44 | ||||
-rw-r--r-- | build/f_isoroot/f_isolinux/Makefile | 46 | ||||
-rw-r--r-- | build/f_isoroot/f_isolinux/isolinux.cfg | 32 | ||||
-rw-r--r-- | build/f_isoroot/f_isolinux/isolinux.cfg.orig | 32 | ||||
-rw-r--r-- | build/f_isoroot/f_kscfg/Makefile | 6 | ||||
-rw-r--r-- | build/f_isoroot/f_kscfg/ks.cfg | 27 | ||||
-rw-r--r-- | build/f_isoroot/f_kscfg/ks.cfg.orig | 12 | ||||
-rwxr-xr-x | build/fuel_build_loop | 40 | ||||
-rwxr-xr-x | build/install/install.sh | 2 |
11 files changed, 217 insertions, 43 deletions
diff --git a/build/Makefile b/build/Makefile index e3b79c2b3..6a74ad941 100644 --- a/build/Makefile +++ b/build/Makefile @@ -20,14 +20,14 @@ SHELL = /bin/bash #Input args export ISOSRC = file:$(shell pwd)/fuel-7.0.iso export ISOCACHE = $(shell pwd)/$(shell basename $(ISOSRC)) -export PRODNO = "OPNFV_BGS" +export PRODNO = "OPNFV_FUEL" export REVSTATE = "P0000" ifdef BUILD_FUEL_PLUGINS $(warning Overriding plugin build selection to $(BUILD_FUEL_PLUGINS)) -export NEWISO = $(shell pwd)/release/unofficial-opnfv-${REVSTATE}.iso +export NEWISO = $(shell pwd)/release/unofficial-opnfv-fuel-${REVSTATE}.iso else -export NEWISO = $(shell pwd)/release/opnfv-${REVSTATE}.iso +export NEWISO = $(shell pwd)/release/opnfv-fuel-${REVSTATE}.iso endif # Note! Invoke with "make REVSTATE=RXXXX all" to make release build! @@ -99,8 +99,8 @@ $(ISOCACHE): cd /tmp/fuel-main && ./prepare-build-env.sh cd /tmp/fuel-main && make repos $(REPOINFO) -r /tmp/fuel-main > gitinfo_fuel.txt - # - cd /tmp/fuel-main && sudo make iso + # Repeat build up to ten times + sudo ./fuel_build_loop cp /tmp/fuel-main/build/artifacts/fuel*.iso . .PHONY: mount-origiso umount-origiso @@ -184,7 +184,8 @@ debug: cd /tmp/fuel-main && git checkout $(FUEL_MAIN_TAG) cd /tmp/fuel-main && make repos $(REPOINFO) -r /tmp/fuel-main > .cachedata - sha1sum fuel-main*.patch >> .cachedata + sha1sum *.patch >> .cachedata + sha1sum fuel_build_loop >> .cachedata sha1sum config.mk >> .cachedata sha1sum Makefile >> .cachedata $(CACHETOOL) getbiweek >> .cachedata diff --git a/build/f_isoroot/Makefile b/build/f_isoroot/Makefile index 8f84b6a73..ec0db48a3 100644 --- a/build/f_isoroot/Makefile +++ b/build/f_isoroot/Makefile @@ -14,10 +14,12 @@ PLUGINS = f_odlpluginbuild f_qemupluginbuild f_ovs-nsh-dpdk-pluginbuild f_onosfw # If the BUILD_FUEL_PLUGINS environment variable is set, only build the plugins # indicated therein. ifdef BUILD_FUEL_PLUGINS -SUBDIRS = f_kscfg f_bootstrap f_repobuild $(BUILD_FUEL_PLUGINS) +#SUBDIRS = f_kscfg f_bootstrap f_isolinux f_repobuild $(BUILD_FUEL_PLUGINS) +SUBDIRS = f_kscfg f_bootstrap f_isolinux $(BUILD_FUEL_PLUGINS) $(warning Overriding plugin build selection to $(BUILD_FUEL_PLUGINS)) else -SUBDIRS = f_kscfg f_bootstrap f_repobuild $(PLUGINS) +#SUBDIRS = f_kscfg f_bootstrap f_isolinux f_repobuild $(PLUGINS) +SUBDIRS = f_kscfg f_bootstrap f_isolinux $(PLUGINS) endif SUBCLEAN = $(addsuffix .clean,$(SUBDIRS)) diff --git a/build/f_isoroot/f_bootstrap/bootstrap_admin_node.sh b/build/f_isoroot/f_bootstrap/bootstrap_admin_node.sh index 065d0cb7d..6318c5d39 100755 --- a/build/f_isoroot/f_bootstrap/bootstrap_admin_node.sh +++ b/build/f_isoroot/f_bootstrap/bootstrap_admin_node.sh @@ -111,32 +111,24 @@ get_bootstrap_flavor () { # Actually build the bootstrap image build_ubuntu_bootstrap () { - local ret=1 - local max_attempts=3 - local config='/etc/fuel-bootstrap-image.conf' - local log='/var/log/fuel-bootstrap-image-build.log' - if ! grep -qE '^BOOTSTRAP_SSH_KEYS' "$config"; then - # FIXME: config file generated by fuelmenu has no trailing newline - echo >> "$config" - cat >> "$config" <<-EOF - BOOTSTRAP_SSH_KEYS=/root/.ssh/id_rsa.pub - EOF - fi - for n in `seq 1 $max_attempts`; do - echo "Bulding bootstrap image, attempt $n" >&2 - if fuel-bootstrap-image >>"$log" 2>&1; then - ret=0 - fuel-bootstrap-image-set "ubuntu" - break - fi - done - if [ $ret -ne 0 ]; then - warning="WARNING: failed to build the bootstrap image, see $log for details. -Perhaps your Internet connection is broken. Please fix the problem and run -\`fuel-bootstrap-image-set ubuntu\`" - fuel notify --topic warning --send "$warning" - fi - return $ret + local ret=1 + echo ${bs_progress_message} >&2 + set_ui_bootstrap_error "${bs_progress_message}" >&2 +# OPNFV modification to turn off biosdevname on the line below (extend-kopts) + if fuel-bootstrap -v --debug build --activate \ + --extend-kopts "biosdevname=0 net.ifnames=0 debug ignore_loglevel log_buf_len=10M print_fatal_signals=1 LOGLEVEL=8" \ + >>"$bs_build_log" 2>&1; then + ret=0 + fuel notify --topic "done" --send "${bs_done_message}" + else + ret=1 + set_ui_bootstrap_error "${bs_error_message}" >&2 + fi + # perform hard-return from func + # this part will update input $1 variable + local __resultvar=$1 + eval $__resultvar="'${ret}'" + return $ret } diff --git a/build/f_isoroot/f_isolinux/Makefile b/build/f_isoroot/f_isolinux/Makefile new file mode 100644 index 000000000..b683ea38c --- /dev/null +++ b/build/f_isoroot/f_isolinux/Makefile @@ -0,0 +1,46 @@ +############################################################################## +# Copyright (c) 2016 Ericsson AB and others. +# stefan.k.berg@ericsson.com +# jonas.bjurel@ericsson.com +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +TOP := $(shell pwd) + +.PHONY: all +all: + @mkdir -p release/isolinux + grep -q OpenStack_Fuel isolinux.cfg + sed "s/OpenStack_Fuel/$(PRODNO)_$(REVSTATE)/g" isolinux.cfg > isolinux.cfg.patched + @cp isolinux.cfg.patched release/isolinux/isolinux.cfg + @cp isolinux.cfg.orig release/isolinux/ + +.PHONY: clean +clean: + @rm -rf release isolinux.cfg.patched + +.PHONY: release +release: all + @cp -Rvp release/* ../release + +############################################################################# +# Cache operations - only used when building through ci/build.sh +############################################################################# + +# Clean local data related to caching - called prior to ordinary build +.PHONY: clean-cache +clean-cache: clean + @echo "clean-cache not implemented" + +# Try to download cache - called prior to ordinary build +.PHONY: get-cache +get-cache: + @echo "get-cache not implemented" + +# Store cache if not already stored - called after ordinary build +.PHONY: put-cache +put-cache: + @echo "put-cache not implemented" diff --git a/build/f_isoroot/f_isolinux/isolinux.cfg b/build/f_isoroot/f_isolinux/isolinux.cfg new file mode 100644 index 000000000..0948c95ac --- /dev/null +++ b/build/f_isoroot/f_isolinux/isolinux.cfg @@ -0,0 +1,32 @@ +default vesamenu.c32 +#prompt 1 +timeout 300 + +display boot.msg + +menu background splash.jpg +menu title Welcome to Fuel Installer (version: 8.0) +menu color border 0 #ffffffff #00000000 +menu color sel 7 #ffffffff #ff000000 +menu color title 0 #ffffffff #00000000 +menu color tabmsg 0 #ffffffff #00000000 +menu color unsel 0 #ffffffff #00000000 +menu color hotsel 0 #ff000000 #ffffffff +menu color hotkey 7 #ffffffff #ff000000 +menu color scrollbar 0 #ffffffff #00000000 + +label nailgun + menu label ^1. Fuel Install (Static IP) + menu default + kernel vmlinuz + append initrd=initrd.img net.ifnames=0 biosdevname=0 ks=hd:sr0:/ks.cfg ip=10.20.0.2::10.20.0.1:255.255.255.0:fuel.domain.tld:eth0:off::: dns1=10.20.0.1 selinux=0 showmenu=yes + +label nailgunifname + menu label ^2. Fuel Advanced Install (Static IP) + kernel vmlinuz + append initrd=initrd.img ks=hd:sr0:/ks.cfg ip=10.20.0.2::10.20.0.1:255.255.255.0:fuel.domain.tld:adminif:off::: dns1=10.20.0.1 selinux=0 ifname=adminif:XX:XX:XX:XX:XX:XX showmenu=yes + +label usbboot + menu label ^3. USB Fuel Install (Static IP) + kernel vmlinuz + append initrd=initrd.img biosdevname=0 repo=hd:LABEL=OpenStack_Fuel:/ ks=hd:LABEL=OpenStack_Fuel:/ks.cfg ip=10.20.0.2 gw=10.20.0.1 dns1=10.20.0.1 netmask=255.255.255.0 hostname=fuel.domain.tld showmenu=yes diff --git a/build/f_isoroot/f_isolinux/isolinux.cfg.orig b/build/f_isoroot/f_isolinux/isolinux.cfg.orig new file mode 100644 index 000000000..2b3e7e307 --- /dev/null +++ b/build/f_isoroot/f_isolinux/isolinux.cfg.orig @@ -0,0 +1,32 @@ +default vesamenu.c32 +#prompt 1 +timeout 300 + +display boot.msg + +menu background splash.jpg +menu title Welcome to Fuel Installer (version: 8.0) +menu color border 0 #ffffffff #00000000 +menu color sel 7 #ffffffff #ff000000 +menu color title 0 #ffffffff #00000000 +menu color tabmsg 0 #ffffffff #00000000 +menu color unsel 0 #ffffffff #00000000 +menu color hotsel 0 #ff000000 #ffffffff +menu color hotkey 7 #ffffffff #ff000000 +menu color scrollbar 0 #ffffffff #00000000 + +label nailgun + menu label ^1. Fuel Install (Static IP) + menu default + kernel vmlinuz + append initrd=initrd.img net.ifnames=0 biosdevname=0 ks=hd:sr0:/ks.cfg ip=10.20.0.2::10.20.0.1:255.255.255.0:fuel.domain.tld:eth0:off::: dns1=10.20.0.1 selinux=0 + +label nailgunifname + menu label ^2. Fuel Advanced Install (Static IP) + kernel vmlinuz + append initrd=initrd.img ks=hd:sr0:/ks.cfg ip=10.20.0.2::10.20.0.1:255.255.255.0:fuel.domain.tld:adminif:off::: dns1=10.20.0.1 selinux=0 ifname=adminif:XX:XX:XX:XX:XX:XX + +label usbboot + menu label ^3. USB Fuel Install (Static IP) + kernel vmlinuz + append initrd=initrd.img biosdevname=0 repo=hd:LABEL=OpenStack_Fuel:/ ks=hd:LABEL=OpenStack_Fuel:/ks.cfg ip=10.20.0.2 gw=10.20.0.1 dns1=10.20.0.1 netmask=255.255.255.0 hostname=fuel.domain.tld showmenu=yes diff --git a/build/f_isoroot/f_kscfg/Makefile b/build/f_isoroot/f_kscfg/Makefile index fe740418d..2a82a1803 100644 --- a/build/f_isoroot/f_kscfg/Makefile +++ b/build/f_isoroot/f_kscfg/Makefile @@ -13,12 +13,14 @@ TOP := $(shell pwd) .PHONY: all all: @mkdir -p release - @cp ks.cfg release + grep -q OpenStack_Fuel ks.cfg + sed "s/OpenStack_Fuel/$(PRODNO)_$(REVSTATE)/g" ks.cfg > ks.cfg.patched + @cp ks.cfg.patched release/ks.cfg @cp ks.cfg.orig release .PHONY: clean clean: - @rm -rf release + @rm -rf release ks.cfg.patched .PHONY: release release: all diff --git a/build/f_isoroot/f_kscfg/ks.cfg b/build/f_isoroot/f_kscfg/ks.cfg index 8c20971f8..e16139a86 100644 --- a/build/f_isoroot/f_kscfg/ks.cfg +++ b/build/f_isoroot/f_kscfg/ks.cfg @@ -36,9 +36,15 @@ for drv in `ls -1 /sys/block | grep "sd\|hd\|vd\|cciss"`; do done default_drive=`echo ${drives} ${removable_drives} | awk '{print $1}'` -installdrive="undefined" -forceformat="no" -for I in `cat /proc/cmdline`; do case "$I" in *=*) eval $I;; esac ; done +installdrive=${installdrive:-undefined} +forceformat=${forceformat:-no} +for I in $(cat /proc/cmdline); do + case "$I" in + *=*) + if ! [[ "${I}" =~ "." ]]; then eval "$I"; fi + ;; + esac +done set ${drives} ${removable_drives} numdrives=`echo $#` @@ -607,3 +613,18 @@ cp -f /etc/skel/.bash* /root/ [[ $(virt-what) = "virtualbox" ]] && echo "blacklist i2c_piix4" > /etc/modprobe.d/blacklist-i2c-piix4.conf %end + + +%post --nochroot --log=/mnt/sysimage/root/anaconda-post-interface-settings.log +#!/bin/bash +set -x + +source "/mnt/sysimage/root/anaconda.cmdline.vars" + +if [[ ! -z $adminif ]]; then + rm -f /mnt/sysimage/etc/sysconfig/network-scripts/ifcfg-${ifname%%:*} + sed "s/${ifname%%:*}/${adminif}/g" \ + /etc/sysconfig/network-scripts/ifcfg-${ifname%%:*} > \ + /mnt/sysimage/etc/sysconfig/network-scripts/ifcfg-${adminif} +fi +%end diff --git a/build/f_isoroot/f_kscfg/ks.cfg.orig b/build/f_isoroot/f_kscfg/ks.cfg.orig index 148ef9908..41a475bbe 100644 --- a/build/f_isoroot/f_kscfg/ks.cfg.orig +++ b/build/f_isoroot/f_kscfg/ks.cfg.orig @@ -36,9 +36,15 @@ for drv in `ls -1 /sys/block | grep "sd\|hd\|vd\|cciss"`; do done default_drive=`echo ${drives} ${removable_drives} | awk '{print $1}'` -installdrive="undefined" -forceformat="no" -for I in `cat /proc/cmdline`; do case "$I" in *=*) eval $I;; esac ; done +installdrive=${installdrive:-undefined} +forceformat=${forceformat:-no} +for I in $(cat /proc/cmdline); do + case "$I" in + *=*) + if ! [[ "${I}" =~ "." ]]; then eval "$I"; fi + ;; + esac +done set ${drives} ${removable_drives} numdrives=`echo $#` diff --git a/build/fuel_build_loop b/build/fuel_build_loop new file mode 100755 index 000000000..7c6cb60db --- /dev/null +++ b/build/fuel_build_loop @@ -0,0 +1,40 @@ +#!/bin/bash +############################################################################## +# Copyright (c) 2016 Ericsson AB and others. +# stefan.k.berg@ericsson.com +# jonas.bjurel@ericsson.com +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +LATEST_MIRROR_ID_URL=http://mirror.seed-cz1.fuel-infra.org + +LATEST_TARGET_UBUNTU=$(curl -sSf "${LATEST_MIRROR_ID_URL}/mos-repos/ubuntu/8.0.target.txt" | head -1) +export MIRROR_MOS_UBUNTU_ROOT="/mos-repos/ubuntu/${LATEST_TARGET_UBUNTU}" + +LATEST_TARGET_CENTOS=$(curl -sSf "${LATEST_MIRROR_ID_URL}/mos-repos/centos/mos8.0-centos7-fuel/os.target.txt" | head -1) +export MIRROR_FUEL="${LATEST_MIRROR_ID_URL}/mos-repos/centos/mos8.0-centos7-fuel/${LATEST_TARGET_CENTOS}/x86_64" + +echo "MIRROR_MOS_UBUNTU_ROOT=${MIRROR_MOS_UBUNTU_ROOT}" +echo "MIRROR_FUEL=${MIRROR_FUEL}" + +maxcount=10 +cnt=0 +rc=1 +while [ $cnt -lt $maxcount ] && [ $rc -ne 0 ] +do + cnt=$[cnt + 1] + echo -e "\n\n\n*** Starting build attempt # $cnt" + cd /tmp/fuel-main + make clean + make iso + rc=$? + if [ $rc -ne 0 ]; then + echo "### Build failed with rc $rc ###" + else + echo "### Build successful at attempt # $cnt" + fi +done +exit $rc diff --git a/build/install/install.sh b/build/install/install.sh index 6155a4162..4e0389ed8 100755 --- a/build/install/install.sh +++ b/build/install/install.sh @@ -464,7 +464,7 @@ if [ $MODE = "iso" ]; then TMP_ISOPUPPET=`mktemp -d /tmp/XXXXXXX` ORIGISO=$2 NEWISO=$3 - VOLUMEID="$4 $5" + VOLUMEID="$4_$5" REPORTFILE="${NEWISO}.txt" echo "Opening reportfile at $REPORTFILE" touch $REPORTFILE |