scripts to build a ubuntu qcow2 root image for kvm
This commit is contained in:
65
build.ubuntu.vmimg/Vagrantfile
vendored
Normal file
65
build.ubuntu.vmimg/Vagrantfile
vendored
Normal file
@@ -0,0 +1,65 @@
|
||||
# -*- mode: ruby -*-
|
||||
# vi: set ft=ruby :
|
||||
|
||||
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
|
||||
VAGRANTFILE_API_VERSION = "2"
|
||||
|
||||
SETUP_BASE = <<-EOF
|
||||
|
||||
echo "UseDNS no" >> /etc/ssh/sshd_config
|
||||
service ssh restart
|
||||
|
||||
function detect_local_mirror () {
|
||||
AL="$(avahi-browse -p -t -r _ubuntumirror._tcp | grep '^=' | head -1)"
|
||||
if [ -n "$AL" ]; then
|
||||
NAME="$(echo \"$AL\" | cut -d';' -f 8)"
|
||||
PORT="$(echo \"$AL\" | cut -d';' -f 9)"
|
||||
UM="http://${NAME}:${PORT}/ubuntu/"
|
||||
MOK="$(curl --head \"${UM}ls-lR.gz\" 2>&1 | grep '200 OK' | wc -l)"
|
||||
if [ $MOK -gt 0 ]; then
|
||||
echo "$UM"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
function set_apt_mirror () {
|
||||
CN="$(lsb_release -c -s)"
|
||||
RPS="main restricted multiverse universe"
|
||||
echo "deb $1 $CN $RPS" > /etc/apt/sources.list.new
|
||||
for P in updates backports security ; do
|
||||
echo "deb $1 $CN-$P $RPS" >> /etc/apt/sources.list.new
|
||||
done
|
||||
mv /etc/apt/sources.list.new /etc/apt/sources.list
|
||||
}
|
||||
|
||||
|
||||
set_apt_mirror "mirror://mirrors.ubuntu.com/mirrors.txt"
|
||||
apt-get update
|
||||
apt-get -y install avahi-utils jq curl
|
||||
|
||||
UM="$(detect_local_mirror)"
|
||||
if [ -n "$UM" ]; then
|
||||
echo "Detected LAN ubuntu mirror at $UM - configuring!"
|
||||
set_apt_mirror "$UM"
|
||||
fi
|
||||
echo "**********************************************************"
|
||||
echo "**********************************************************"
|
||||
cat /etc/apt/sources.list
|
||||
echo "**********************************************************"
|
||||
echo "**********************************************************"
|
||||
apt-get update
|
||||
apt-get -y install kpartx debootstrap lvm2 qemu-utils
|
||||
EOF
|
||||
|
||||
|
||||
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
||||
config.vm.box = "ubuntu-12.04"
|
||||
config.vm.box_url = "http://cloud-images.ubuntu.com/vagrant/precise/" + \
|
||||
"current/precise-server-cloudimg-amd64-vagrant-disk1.box"
|
||||
config.vm.network "public_network", :bridge => "en4: Display Ethernet"
|
||||
config.vm.provision "shell", inline: SETUP_BASE
|
||||
config.vm.provision "shell", path: "buildimage.sh"
|
||||
config.vm.provider :virtualbox do |vb|
|
||||
vb.customize ["modifyvm", :id, "--memory", "2048"]
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user