Refactor
* De-duplicate scripts
* Fix kernels to latest lts-xenial virt
Change-Id: I01280ad119146345eb02518ba80c2c6e8d37c40e
diff --git a/mirror-image/scripts/base.sh b/mirror-image/scripts/base.sh
deleted file mode 100644
index d23be8b..0000000
--- a/mirror-image/scripts/base.sh
+++ /dev/null
@@ -1,79 +0,0 @@
-#!/bin/bash -xe
-
-UBUNTU_BASEURL="${UBUNTU_BASEURL:-"mirror://mirrors.ubuntu.com/mirrors.txt"}"
-
-## Base packages and setup
-export DEBIAN_FRONTEND=noninteractive
-echo "exit 101" > /usr/sbin/policy-rc.d
-chmod +x /usr/sbin/policy-rc.d
-
-echo "Acquire::CompressionTypes::Order gz;" >/etc/apt/apt.conf.d/99compression-workaround-salt
-echo "Acquire::EnableSrvRecords false;" >/etc/apt/apt.conf.d/99enablesrvrecords-false
-echo "Acquire::http::Pipeline-Depth 0;" > /etc/apt/apt.conf.d/99aws-s3-mirrors-workaround-salt
-echo "APT::Install-Recommends false;" > /etc/apt/apt.conf.d/99dont_install_recommends-salt
-echo "APT::Install-Suggests false;" > /etc/apt/apt.conf.d/99dont_install_suggests-salt
-echo "Acquire::Languages none;" > /etc/apt/apt.conf.d/99dont_acquire_all_languages-salt
-echo "APT::Periodic::Update-Package-Lists 0;" > /etc/apt/apt.conf.d/99dont_update_package_list-salt
-echo "APT::Periodic::Download-Upgradeable-Packages 0;" > /etc/apt/apt.conf.d/99dont_update_download_upg_packages-salt
-echo "APT::Periodic::Unattended-Upgrade 0;" > /etc/apt/apt.conf.d/99disable_unattended_upgrade-salt
-
-sysctl -w fs.file-max=100000
-# Overwrite default mirrors
-echo "deb [arch=amd64] ${UBUNTU_BASEURL} xenial main restricted multiverse universe" > /etc/apt/sources.list
-echo "deb [arch=amd64] ${UBUNTU_BASEURL} xenial-updates main restricted multiverse universe" >> /etc/apt/sources.list
-echo "deb [arch=amd64] ${UBUNTU_BASEURL} xenial-security main restricted multiverse universe" >> /etc/apt/sources.list
-#echo "deb [arch=amd64] ${UBUNTU_BASEURL} xenial-backports main restricted multiverse universe" >> /etc/apt/sources.list
-
-apt-get clean
-apt-get update
-
-# Useful tools
-apt-get -y install byobu curl ethtool htop iputils-ping lsof strace tcpdump tmux traceroute tree vim-nox wget
-# Install common prerequisites
-apt-get -y install apt-transport-https libmnl0 python-apt python-m2crypto python-psutil
-
-# Cleanup old kernels, ensure latest is installed via virtual package
-if [ ! -f /tmp/no_install_kernel ]; then
- apt-get purge -y linux-image-* linux-headers-*
- apt-get install -y linux-image-virtual-lts-xenial linux-image-extra-virtual-lts-xenial
-
- # Update grub cmdline
- sed -i 's|GRUB_CMDLINE_LINUX_DEFAULT=.*|GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8"|g' /etc/default/grub
- sed -i 's|GRUB_CMDLINE_LINUX=.*|GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8"|g' /etc/default/grub
- update-grub
-fi
-
-apt-get -y upgrade
-apt-get -y dist-upgrade
-
-apt-get autoremove --purge
-
-# Tmux fixes
-cat << 'EOF' >> /etc/tmux.conf
-set -g default-terminal "screen-256color"
-set -g set-titles on
-set -g xterm-keys on
-EOF
-
-# Setup cloud-init
-apt-get -y install cloud-init
-
-# Disable apt-daily
-systemctl disable apt-daily.timer
-
-# Motd
-apt-get -y install update-motd
-rm -vf /etc/update-motd.d/*
-echo "BUILD_TIMESTAMP=$(date '+%Y-%m-%d-%H-%M-%S' -u)" > /etc/image_version
-echo "BUILD_TIMESTAMP_RFC=\"$(date -u -R)\"" >> /etc/image_version
-cat << 'EOF' >> /etc/update-motd.d/00-header-mirantis
-#!/bin/sh
-#
-# 00-header - create the header of the MOTD
-#
-[ -r /etc/image_version ] && . /etc/image_version
-echo "Ubuntu 16.04 \"Xenial\" Mirantis cloud image"
-echo "Build date: ${BUILD_TIMESTAMP_RFC}"
-EOF
-chmod +x /etc/update-motd.d/00-header-mirantis
-
diff --git a/mirror-image/scripts/base.sh b/mirror-image/scripts/base.sh
new file mode 120000
index 0000000..140d77f
--- /dev/null
+++ b/mirror-image/scripts/base.sh
@@ -0,0 +1 @@
+../../common/ubuntu_base.sh
\ No newline at end of file
diff --git a/mirror-image/scripts/cleanup.sh b/mirror-image/scripts/cleanup.sh
deleted file mode 100644
index 857c7d9..0000000
--- a/mirror-image/scripts/cleanup.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/bash -xe
-apt-get -y autoremove --purge
-apt-get -y clean
-rm -rf /var/lib/apt/lists/*
-
-rm -f /usr/sbin/policy-rc.d || true
-
-echo "cleaning up hostname"
-sed -i "/.*ubuntu.*/d" /etc/hosts
-sed -i "/.*salt.*/d" /etc/hosts
-
-echo "cleaning up guest additions"
-rm -rf VBoxGuestAdditions_*.iso VBoxGuestAdditions_*.iso.? || true
-
-echo "cleaning up dhcp leases"
-rm -rf /var/lib/dhcp/* || true
-
-echo "cleaning up udev rules"
-rm -f /etc/udev/rules.d/70-persistent-net.rules || true
-rm -rf /dev/.udev/ || true
-rm -f /lib/udev/rules.d/75-persistent-net-generator.rules || true
-
-echo "cleaning up minion_id for salt"
-rm -f /etc/salt/minion_id || true
-
-echo "cleaning up resolvconf"
-sed -i '/172\.18\.208\.44/d' /etc/resolvconf/resolv.conf.d/base
\ No newline at end of file
diff --git a/mirror-image/scripts/cleanup.sh b/mirror-image/scripts/cleanup.sh
new file mode 120000
index 0000000..cf970b6
--- /dev/null
+++ b/mirror-image/scripts/cleanup.sh
@@ -0,0 +1 @@
+../../common/ubuntu_cleanup.sh
\ No newline at end of file
diff --git a/mirror-image/scripts/motd.sh b/mirror-image/scripts/motd.sh
new file mode 100644
index 0000000..839a3e4
--- /dev/null
+++ b/mirror-image/scripts/motd.sh
@@ -0,0 +1,17 @@
+#!/bin/bash -xe
+# Motd
+apt-get -y install update-motd
+rm -vf /etc/update-motd.d/*
+echo "BUILD_TIMESTAMP=$(date '+%Y-%m-%d-%H-%M-%S' -u)" > /etc/image_version
+echo "BUILD_TIMESTAMP_RFC=\"$(date -u -R)\"" >> /etc/image_version
+cat << 'EOF' >> /etc/update-motd.d/00-header-mirantis
+#!/bin/sh
+#
+# 00-header - create the header of the MOTD
+#
+[ -r /etc/image_version ] && . /etc/image_version
+echo "Ubuntu 16.04 \"Xenial\" Mirantis offline cloud image"
+echo "Build date: ${BUILD_TIMESTAMP_RFC}"
+EOF
+chmod +x /etc/update-motd.d/00-header-mirantis
+
diff --git a/mirror-image/scripts/network.sh b/mirror-image/scripts/network.sh
deleted file mode 100644
index 8f57c0f..0000000
--- a/mirror-image/scripts/network.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/bash -xe
-echo "timeout 10;
-backoff-cutoff 0;
-initial-interval 0;
-retry 15;" >> /etc/dhcp/dhclient.conf
diff --git a/mirror-image/scripts/network.sh b/mirror-image/scripts/network.sh
new file mode 120000
index 0000000..ab1de37
--- /dev/null
+++ b/mirror-image/scripts/network.sh
@@ -0,0 +1 @@
+../../common/ubuntu_network.sh
\ No newline at end of file
diff --git a/mirror-image/scripts/security.sh b/mirror-image/scripts/security.sh
deleted file mode 100644
index 8a0b12b..0000000
--- a/mirror-image/scripts/security.sh
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/bin/bash -xe
-# Auto login root on tty1
-sed 's|/sbin/agetty|/sbin/agetty --autologin root|g' /etc/systemd/system/getty.target.wants/getty@tty1.service > /etc/systemd/system/getty-autologin@.service
-systemctl daemon-reload
-systemctl disable getty@tty1.service
-systemctl enable getty-autologin@tty1.service
-
-# Libvirt serial console support
-cat << 'EOF' >> /etc/systemd/system/serial-getty@.service
-[Unit]
-Description=Getty on %I
-Documentation=man:agetty(8) man:systemd-getty-generator(8)
-Documentation=http://0pointer.de/blog/projects/serial-console.html
-After=systemd-user-sessions.service plymouth-quit-wait.service
-After=rc-local.service
-
-Before=getty.target
-IgnoreOnIsolate=yes
-
-ConditionPathExists=/dev/ttyS0
-
-[Service]
-ExecStart=-/sbin/agetty --autologin root -8 --noclear %I 115200 $TERM
-Type=idle
-Restart=always
-RestartSec=0
-UtmpIdentifier=%I
-TTYPath=/dev/%I
-TTYReset=yes
-TTYVHangup=yes
-TTYVTDisallocate=yes
-KillMode=process
-IgnoreSIGPIPE=no
-SendSIGHUP=yes
-
-Environment=LANG= LANGUAGE= LC_CTYPE= LC_NUMERIC= LC_TIME= LC_COLLATE= LC_MONETARY= LC_MESSAGES= LC_PAPER= LC_NAME= LC_ADDRESS= LC_TELEPHONE= LC_MEASUREMENT= LC_IDENTIFICATION=
-
-[Install]
-WantedBy=getty.target
-DefaultInstance=ttyS0
-EOF
-
-systemctl daemon-reload
-systemctl enable serial-getty@ttyS0.service
-
-# Disable password root login
-usermod -p '!' root
-
-# Disable SSH password authentication and permit root login
-sed -i 's|[#]*PasswordAuthentication yes|PasswordAuthentication no|g' /etc/ssh/sshd_config
-sed -i 's|[#]*PermitRootLogin no|PermitRootLogin yes|g' /etc/ssh/sshd_config
diff --git a/mirror-image/scripts/security.sh b/mirror-image/scripts/security.sh
new file mode 120000
index 0000000..3bd840a
--- /dev/null
+++ b/mirror-image/scripts/security.sh
@@ -0,0 +1 @@
+../../common/ubuntu_security.sh
\ No newline at end of file