set -e all the things
Using set -e in all of our scripts will prevent some subtle bugs from slipping in, and will allow us to enforce use of set -e with tooling. This change also adds -u and set -o pipefail in the less complex scripts where it is unlikely to cause problems. A follow-up change will enable those options in the complex scripts so that if it breaks something it can be reverted easily. Change-Id: I0ad358ccb98da7277a0ee2e9ce8fda98438675eb
This commit is contained in:
parent
0b367e919b
commit
f6ba2aeaf4
@ -1,2 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
install-packages ccache
|
||||
|
@ -1,2 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
install-packages dkms
|
||||
|
@ -2,6 +2,7 @@
|
||||
# Fully upgrade everything on the system (if the package manager knows how to
|
||||
# do it).
|
||||
|
||||
set -e
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
install-packages -u
|
||||
|
@ -1,5 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
# without these files, cloud-init will not perform stock operations such as
|
||||
# generating sshd hostkeys.
|
||||
|
||||
|
@ -1,5 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
cat > /etc/cloud/cloud.cfg.d/91-local-metadata-only.cfg <<EOF
|
||||
# No cloud metadata available, use only what is in the image.
|
||||
datasource_list: [ NoCloud, None ]
|
||||
|
@ -1,2 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
install-packages tgt
|
||||
|
@ -1,2 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
install-packages busybox
|
||||
|
@ -1,2 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
install-packages tgt
|
||||
|
@ -1,2 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
install-packages busybox
|
||||
|
@ -1,2 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
install-packages curl
|
||||
|
@ -1,2 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
install-packages kexec-tools
|
||||
|
@ -1,5 +1,6 @@
|
||||
#!/bin/bash
|
||||
set -x
|
||||
set -eux
|
||||
set -o pipefail
|
||||
|
||||
SCRIPTDIR=$(dirname $0)
|
||||
|
||||
|
@ -1,5 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
# Cloud images may hard code the eth0 interfaces so they
|
||||
# boot with DHCP.
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
INTERFACE=${1:-} #optional, if not specified configure all available interfaces
|
||||
ENI_FILE="/etc/network/interfaces"
|
||||
|
||||
|
@ -1,5 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
home=$(dirname $0)
|
||||
exec sudo install -m 0755 -o root -g root -D \
|
||||
$home/../bin/dib-run-parts \
|
||||
|
@ -1,4 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
config=/etc/selinux/config
|
||||
[ -e $config ] && sed -i "s%^\(SELINUX=\s*\).*$%SELINUX=disabled%" $config
|
||||
|
@ -2,6 +2,9 @@
|
||||
# Trigger a run of dkms for all the modules installed
|
||||
# to ensure we have valid modules build for all.
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
modules=$(dkms status | tr ',:' ' ' | awk '{ print $1 "/" $2 }')
|
||||
kernels=$(ls /usr/src/linux-headers-*-*-* -d | sed -e 's|/usr/src/linux-headers-||' || echo "")
|
||||
# NOTE(bnemec): On Fedora, the versions can be found in /usr/src/kernels
|
||||
|
@ -1,6 +1,9 @@
|
||||
#!/bin/bash
|
||||
# Prevent apt from installing recommended packages
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
dd of=/etc/apt/apt.conf.d/95disable-recommends << _EOF_
|
||||
APT::Install-Recommends "0";
|
||||
Apt::Install-Suggests "0";
|
||||
|
@ -1,3 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
install -m 0755 -o root -g root $(dirname $0)/../bin/* /usr/local/bin
|
||||
|
@ -1,5 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
# Prioritize PAE if present
|
||||
KERNEL=$(basename `ls -1rv /boot/vmlinuz* | grep PAE | grep -v debug | head -1`)
|
||||
if [ ! $KERNEL ]; then
|
||||
|
@ -1,5 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
# If the patch doesn't apply just do nothing. This patch fixes a small
|
||||
# issue in the script that writes the network configuration files from
|
||||
# the cmdline to the disk on FC18/FC19.
|
||||
|
@ -1,5 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
# On a fresh Fedora 18 install you might have to update audit in order to
|
||||
# fix a conflict with a file from the glibc package.
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=894307
|
||||
|
@ -1,5 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
# The version of openssl shipped in the fedora cloud image is no longer
|
||||
# compatible with new python environments installed by virtualenv, so we need
|
||||
# to update it first.
|
||||
|
@ -1,5 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
# FIXME: To avoid conflict between the pyOpenSSL installed via python-pip
|
||||
# and pyOpenSSL installed via yum, we are going to sort it out installing
|
||||
# it earlier at the beginning of the image building process. Pyhton-pip
|
||||
|
@ -1,6 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eux
|
||||
set -o pipefail
|
||||
|
||||
# Workaround for:
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1066983
|
||||
|
@ -1,3 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
install -m 0755 -o root -g root $(dirname $0)/../bin/* /usr/local/bin
|
||||
|
@ -1,5 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
install-packages yum-utils
|
||||
|
||||
package-cleanup --oldkernels -y --count=1
|
||||
|
@ -1,5 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
# Install any packages in this file that may not be in the base cloud
|
||||
# image but could reasonably be expected
|
||||
|
||||
|
@ -1,3 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
sed -i '/secure_path/ s/$/:\/usr\/local\/bin/' /etc/sudoers
|
||||
|
@ -1,3 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
echo "ccache dkms" > /tmp/yum-blacklist
|
@ -1,5 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
cat << EOF > /etc/yum.repos.d/rhel7.repo
|
||||
[rhel7]
|
||||
name=RHEL7
|
||||
|
@ -1,6 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -x
|
||||
set -eux
|
||||
set -o pipefail
|
||||
|
||||
CONFIGURED_SELINUX=$(grep ^SELINUX= /etc/selinux/config | awk -F = '{print $2}')
|
||||
|
||||
|
@ -1,5 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
# Fedora 18 sets up for root to have a label of "_/"
|
||||
# Fedora 19 sets up for root to have a UUID
|
||||
# This regex will catch both
|
||||
|
@ -1,5 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
# zeroconf should not be activated or it will add a 169.254.0.0
|
||||
# route. The route will interfere with access to the nova metadata
|
||||
# server at 169.254.169.254.
|
||||
|
@ -1,5 +1,6 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
# heat-admin can not sudo without a tty by default
|
||||
echo 'Defaults:heat-admin !requiretty' >> /etc/sudoers.d/heat-admin-notty
|
||||
|
@ -1,5 +1,6 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
# root can not sudo without a tty by default.
|
||||
echo "Defaults:root !requiretty" >> /etc/sudoers.d/root-notty
|
||||
|
@ -1,3 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
sed -i '/secure_path/ s/$/:\/usr\/local\/bin/' /etc/sudoers
|
||||
|
@ -1,3 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
install -m 0755 -o root -g root $(dirname $0)/../bin/* /usr/local/bin
|
||||
|
@ -1,5 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
set -o pipefail
|
||||
|
||||
if [ "i386" = "$ARCH" ]; then
|
||||
basearch=i386
|
||||
arch=i686
|
||||
|
@ -1,5 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
echo "SELINUX=permissive" > /etc/selinux/config
|
||||
echo "SELINUXTYPE=targeted" >> /etc/selinux/config
|
||||
|
||||
|
@ -1,5 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
# remove softlink to /dev/null which disables these rules
|
||||
NET_NAME_SLOT_FILE="/etc/udev/rules.d/80-net-name-slot.rules"
|
||||
if [ -h $NET_NAME_SLOT_FILE ]; then
|
||||
|
@ -1,4 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
set -o pipefail
|
||||
|
||||
# This package is broken and causes real issues on update:
|
||||
# https://bugs.launchpad.net/ubuntu/+source/apt-xapian-index/+bug/1227420
|
||||
apt-get --yes remove apt-xapian-index || :
|
||||
|
Loading…
Reference in New Issue
Block a user