4d9491b83a
The LXC cache prep is timing out regularly so use eatmydata to minimise pressure on the filesystem during package installation. dpkg calls fsync for each file installed from each package which can result in very poor performance on some filesystems. This patch gives around a 4x improvement in "slow" gate runs, and 2x on esxi hdd storage. Change-Id: I1cc33a7647445cd2302e6ea6b9d78005262ebfa3
54 lines
2.0 KiB
Django/Jinja
54 lines
2.0 KiB
Django/Jinja
#!/usr/bin/env bash
|
|
# TODO(evrardjp): Make this script ubuntu version agnostic or
|
|
# remove it if no change happens in bionic vs xenial
|
|
set -e -x
|
|
|
|
{{ lxc_cache_prep_pre_commands }}
|
|
|
|
{% include 'templates/prep-scripts/_container_sys_setup.sh.j2' %}
|
|
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
apt-get remove -y --purge snap* lxc* lxd* resolvconf* || true
|
|
|
|
# Update base distribution
|
|
apt-get update
|
|
|
|
apt-get install -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" --force-yes eatmydata
|
|
export LD_PRELOAD=/usr/lib/{{ ansible_architecture }}-linux-gnu/libeatmydata.so
|
|
|
|
apt-get install -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" --force-yes gnupg
|
|
apt-get upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" --force-yes
|
|
apt-get install -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" --force-yes {{ lxc_cache_distro_packages | join(' ') }}
|
|
apt-get upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" --force-yes
|
|
rm -f /usr/bin/python
|
|
rm /etc/machine-id || true
|
|
rm /var/lib/dbus/machine-id || true
|
|
touch /etc/machine-id
|
|
rm /etc/sysctl.d/* || true
|
|
echo '' > /etc/sysctl.conf
|
|
ln -s /usr/bin/python2.7 /usr/bin/python
|
|
mkdir -p /root/.ssh
|
|
chmod 700 /root/.ssh
|
|
userdel --force --remove ubuntu || true
|
|
apt-get clean
|
|
mkdir -p /var/backup
|
|
mkdir -p /etc/network/interfaces.d
|
|
chage -I -1 -d -1 -m 0 -M 99999 -E -1 root
|
|
for action in disable mask; do
|
|
systemctl ${action} resolvconf.service || true
|
|
systemctl ${action} systemd-networkd-resolvconf-update.path || true
|
|
systemctl ${action} systemd-networkd-resolvconf-update.service || true
|
|
done
|
|
|
|
{% for locale in lxc_cache_locales %}
|
|
locale-gen {{ locale }}
|
|
{% if loop.first | bool %}
|
|
update-locale LANG={{ locale }}
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
# Set the IP of the lxcbr0 interface as the DNS server
|
|
echo "nameserver {{ lxc_net_address }}" > /etc/resolv.conf
|
|
systemctl enable systemd-networkd
|
|
{{ lxc_cache_prep_post_commands }}
|