Adding VM build script.
This commit is contained in:
parent
ad949fdf68
commit
3dbcf4d7dd
1 changed files with 139 additions and 0 deletions
139
scripts/build-VM.sh
Executable file
139
scripts/build-VM.sh
Executable file
|
@ -0,0 +1,139 @@
|
||||||
|
#!/bin/bash -ex
|
||||||
|
|
||||||
|
#
|
||||||
|
# JoeyLib
|
||||||
|
# Copyright (C) 2018-2019 Scott Duensing <scott@kangaroopunch.com>
|
||||||
|
#
|
||||||
|
# This software is provided 'as-is', without any express or implied
|
||||||
|
# warranty. In no event will the authors be held liable for any damages
|
||||||
|
# arising from the use of this software.
|
||||||
|
#
|
||||||
|
# Permission is granted to anyone to use this software for any purpose,
|
||||||
|
# including commercial applications, and to alter it and redistribute it
|
||||||
|
# freely, subject to the following restrictions:
|
||||||
|
#
|
||||||
|
# 1. The origin of this software must not be misrepresented; you must not
|
||||||
|
# claim that you wrote the original software. If you use this software
|
||||||
|
# in a product, an acknowledgment in the product documentation would be
|
||||||
|
# appreciated but is not required.
|
||||||
|
# 2. Altered source versions must be plainly marked as such, and must not be
|
||||||
|
# misrepresented as being the original software.
|
||||||
|
# 3. This notice may not be removed or altered from any source distribution.
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
DIST=hirsute
|
||||||
|
BOX=ubuntu/${DIST}64
|
||||||
|
TARGET="/home/scott/VirtualBox VMs/JoeyDevVM/ubuntu-hirsute-21.04-cloudimg-configdrive.vmdk"
|
||||||
|
|
||||||
|
|
||||||
|
if [[ "$1" != "continue" ]]; then
|
||||||
|
|
||||||
|
:<<'SKIP'
|
||||||
|
|
||||||
|
apt-get update
|
||||||
|
apt-get -y install vagrant virtualbox
|
||||||
|
vagrant plugin install vagrant-disksize
|
||||||
|
|
||||||
|
mkdir -p installerWork
|
||||||
|
pushd installerWork
|
||||||
|
cat <<-VARS > vars.sh
|
||||||
|
#!/bin/bash
|
||||||
|
export SOMETHING=${SOMETHING}
|
||||||
|
VARS
|
||||||
|
chmod ugo+x vars.sh
|
||||||
|
cp "${JOEY}/joeylib/scripts/installer.sh" .
|
||||||
|
popd
|
||||||
|
SKIP
|
||||||
|
|
||||||
|
[[ -d vagrant ]] && rm -rf vagrant
|
||||||
|
mkdir -p vagrant
|
||||||
|
pushd vagrant
|
||||||
|
|
||||||
|
cat <<-VAGRANTFILE > Vagrantfile
|
||||||
|
Vagrant.configure("2") do |config|
|
||||||
|
config.vm.box = "${BOX}"
|
||||||
|
config.vm.network "public_network", bridge: "$(ip route | awk '/default/ { print $5 }')"
|
||||||
|
#config.vm.synced_folder "../installerWork", "/installer"
|
||||||
|
config.vm.provider "virtualbox" do |vm|
|
||||||
|
vm.name = "JoeyDevVM"
|
||||||
|
vm.gui = false
|
||||||
|
vm.memory = 2048
|
||||||
|
vm.cpus = 2
|
||||||
|
end
|
||||||
|
config.vm.provision "shell", path: "../build-VM.sh", args: "continue"
|
||||||
|
end
|
||||||
|
VAGRANTFILE
|
||||||
|
|
||||||
|
vagrant box update
|
||||||
|
vagrant box prune
|
||||||
|
|
||||||
|
vagrant up
|
||||||
|
vagrant halt
|
||||||
|
|
||||||
|
vagrant package
|
||||||
|
mv -f package.box ../.
|
||||||
|
|
||||||
|
popd
|
||||||
|
|
||||||
|
rm -rf vagrant
|
||||||
|
|
||||||
|
sha256sum package.box > package.box.sha256
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
#source /installer/vars.sh
|
||||||
|
|
||||||
|
cat <<-SOURCES > /etc/apt/sources.list
|
||||||
|
deb http://archive.ubuntu.com/ubuntu ${DIST} main restricted universe multiverse
|
||||||
|
deb-src http://archive.ubuntu.com/ubuntu ${DIST} main restricted universe multiverse
|
||||||
|
deb http://archive.ubuntu.com/ubuntu ${DIST}-updates main restricted universe multiverse
|
||||||
|
deb-src http://archive.ubuntu.com/ubuntu ${DIST}-updates main restricted universe multiverse
|
||||||
|
deb http://archive.ubuntu.com/ubuntu ${DIST}-backports main restricted universe multiverse
|
||||||
|
deb-src http://archive.ubuntu.com/ubuntu ${DIST}-backports main restricted universe multiverse
|
||||||
|
deb http://security.ubuntu.com/ubuntu ${DIST}-security main restricted universe multiverse
|
||||||
|
deb-src http://security.ubuntu.com/ubuntu ${DIST}-security main restricted universe multiverse
|
||||||
|
deb http://archive.canonical.com/ubuntu ${DIST} partner
|
||||||
|
deb-src http://archive.canonical.com/ubuntu ${DIST} partner
|
||||||
|
SOURCES
|
||||||
|
|
||||||
|
apt-get update
|
||||||
|
apt-get -y upgrade
|
||||||
|
apt-get -y dist-upgrade
|
||||||
|
apt-get -y autoremove
|
||||||
|
apt-get -y install virtualbox-guest-utils
|
||||||
|
|
||||||
|
hostname joeydev
|
||||||
|
echo joeydev > /etc/hostname
|
||||||
|
echo 127.0.0.1 localhost joeydev > /etc/hosts
|
||||||
|
sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT/#GRUB_CMDLINE_LINUX_DEFAULT/' /etc/default/grub
|
||||||
|
sed -i 's/GRUB_TIMEOUT=0/GRUB_TIMEOUT=3/' /etc/default/grub
|
||||||
|
sed -i 's/GRUB_TIMEOUT=hidden/GRUB_TIMEOUT_STYLE=menu/' /etc/default/grub
|
||||||
|
update-grub
|
||||||
|
|
||||||
|
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
|
||||||
|
|
||||||
|
echo "joeydev:joeydev:::Joey Dev:/home/joeydev:/bin/bash" | newusers
|
||||||
|
usermod -aG sudo joeydev
|
||||||
|
|
||||||
|
mkdir -p /opt/joey
|
||||||
|
chown joeydev:joeydev /opt/joey
|
||||||
|
pushd /opt/joey
|
||||||
|
wget https://skunkworks.kangaroopunch.com/skunkworks/joeylib/raw/master/scripts/installer.sh
|
||||||
|
chown joeydev:joeydev installer.sh
|
||||||
|
chmod +x installer.sh
|
||||||
|
popd
|
||||||
|
|
||||||
|
su - joeydev -c "cd /opt/joey && ./installer.sh AUTOMATED joeydev"
|
||||||
|
|
||||||
|
rm -rf /opt/joey/installerWork
|
||||||
|
|
||||||
|
apt-get -y clean
|
||||||
|
|
||||||
|
set +e
|
||||||
|
dd if=/dev/zero of=/zzdummy
|
||||||
|
set -e
|
||||||
|
rm -f /zzdummy
|
||||||
|
|
||||||
|
/sbin/shutdown -h now
|
||||||
|
fi
|
Loading…
Add table
Reference in a new issue