blob: f7ae78cc1591a305c97daf2b312a3fcf2d3edddc [file] [log] [blame]
azvyagintseve1b236a2018-07-13 16:59:49 +03001#!/bin/bash -xe
2
3# Don't use /tmp/ - some templates do node reboot
4if [ -f /done_ubuntu_base ] ; then
5 echo "INFO: ubuntu_base already finished.Skipping.."
6 exit 0
7fi
8#
9UBUNTU_BASEURL="${UBUNTU_BASEURL:-mirror://mirrors.ubuntu.com/mirrors.txt}"
10## Base packages and setup
11export DEBIAN_FRONTEND=noninteractive
12echo -e '#!/bin/sh\nexit 101' > /usr/sbin/policy-rc.d
13chmod +x /usr/sbin/policy-rc.d
14
15# Configure apt. Please refer to
16# https://github.com/Mirantis/reclass-system-salt-model/blob/master/linux/system/single/debian.yml
17# and keep those structures with same naming convention - to prevent
18# misconfiguration between base system and salt state.
19echo "Acquire::CompressionTypes::Order gz;" >/etc/apt/apt.conf.d/99compression-workaround-salt
20echo "Acquire::EnableSrvRecords false;" >/etc/apt/apt.conf.d/99enablesrvrecords-false
21echo "Acquire::http::Pipeline-Depth 0;" > /etc/apt/apt.conf.d/99aws-s3-mirrors-workaround-salt
22echo "APT::Install-Recommends false;" > /etc/apt/apt.conf.d/99dont_install_recommends-salt
23echo "APT::Install-Suggests false;" > /etc/apt/apt.conf.d/99dont_install_suggests-salt
24echo "Acquire::Languages none;" > /etc/apt/apt.conf.d/99dont_acquire_all_languages-salt
25echo "APT::Periodic::Update-Package-Lists 0;" > /etc/apt/apt.conf.d/99dont_update_package_list-salt
26echo "APT::Periodic::Download-Upgradeable-Packages 0;" > /etc/apt/apt.conf.d/99dont_update_download_upg_packages-salt
27echo "APT::Periodic::Unattended-Upgrade 0;" > /etc/apt/apt.conf.d/99disable_unattended_upgrade-salt
28
29sysctl -w fs.file-max=100000
30# Overwrite default mirrors
31echo "deb [arch=amd64] ${UBUNTU_BASEURL} trusty main restricted universe" > /etc/apt/sources.list
32echo "deb [arch=amd64] ${UBUNTU_BASEURL} trusty-updates main restricted universe" >> /etc/apt/sources.list
33echo "deb [arch=amd64] ${UBUNTU_BASEURL} trusty-security main restricted universe" >> /etc/apt/sources.list
34echo "deb [arch=amd64] ${UBUNTU_BASEURL} trusty-backports main restricted universe" >> /etc/apt/sources.list
35
36apt-get clean
37apt-get update
38
39# Useful tools
40EXTRA_PKGS="byobu curl ethtool iputils-ping lsof strace tcpdump traceroute wget iptables"
41# Pretty tools
42EXTRA_PKGS="${EXTRA_PKGS} byobu htop tmux tree vim-nox mc"
43# Common prerequisites
44EXTRA_PKGS="${EXTRA_PKGS} apt-transport-https libmnl0 python-apt python-m2crypto python-psutil acpid"
45apt-get -y install ${EXTRA_PKGS}
46
47# Cleanup old kernels, ensure latest is installed via virtual package
48if [ ! -f /tmp/no_install_kernel ]; then
49 modprobe cpuid
50 apt-get purge -y linux-image-* linux-headers-* | grep -v 'is not installed, so not removed'
51 apt-get install -y linux-image-virtual-lts-xenial linux-image-extra-virtual-lts-xenial
52
53 # Update grub cmdline
54 sed -i 's|GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8"|g' /etc/default/grub
55 sed -i 's|GRUB_CMDLINE_LINUX=.*|GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8"|g' /etc/default/grub
56 update-grub
57fi
58
59apt-get -y upgrade
60apt-get -y dist-upgrade
61
62apt-get autoremove --purge
63
64# Tmux fixes
65cat << 'EOF' >> /etc/tmux.conf
66set -g default-terminal "screen-256color"
67set -g set-titles on
68set -g xterm-keys on
69EOF
70
71# Setup cloud-init
72apt-get -y install cloud-init
73
74touch /done_ubuntu_base