Skip to content

Instantly share code, notes, and snippets.

@dch
Created August 6, 2015 09:08
Show Gist options
  • Save dch/9f9c88d92870d68075b3 to your computer and use it in GitHub Desktop.
Save dch/9f9c88d92870d68075b3 to your computer and use it in GitHub Desktop.
making a vagrant box by hand

Preparation

Fusion

  • Create a new VM from wizard
  • pick all defaults
  • name docker
  • UTC timezone
  • automatic patches
  • openssh
  • reboot

Customisation

export DEBIAN_FRONTEND=noninteractive
apt-get upgrade

# ssh key is https://raw.githubusercontent.com/mitchellh/vagrant/master/keys/vagrant & vagrant.pub
mkdir -m 0700 /root/.ssh /home/vagrant/.ssh
echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ== vagrant insecure public key" | \
  tee /root/.ssh/authorized_keys | \
  tee /home/vagrant/.ssh/authorized_keys

chmod 0600 \
	/root/.ssh/authorized_keys \
	/home/vagrant/.ssh/authorized_keys

# avahi / zeroconf to make networking simpler
apt-get install libavahi-compat-libdnssd1a \
  gcc make \
  curl wget \
  git

/etc/avahi/services/ssh.service

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h SSH</name>
<service>
<type>_ssh._tcp</type>
<port>22</port>
</service>
</service-group>

/etc/avahi/services/docker.service

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h docker REST API</name>
<service>
<type>_docker._tcp</type>
<port>2375</port>
</service>
</service-group>

/etc/avahi/services/docker-s.service

<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h docker-s secure REST API</name>
<service>
<type>_docker-s._tcp</type>
<port>2376</port>
</service>
</service-group>

vmware tools

apt-get install -y gcc make
mount /dev/cdrom /media/cdrom/
cd /tmp/
tar xzf /media/cdrom/VMW*.gz
cd vmware-tools-distrib/
./vmware-install.pl

docker bits

usermod -aG docker $USER
apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
apt-get update
echo deb https://apt.dockerproject.org/repo ubuntu-trusty main > /etc/apt/sources.list.d/docker.list
curl -sSL https://get.docker.com/ | sh

clean up

apt-get purge gcc make
apt-get autoremove -y
apt-get clean -y
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /var/log/*
rm -rf /etc/ssh/ssh_host_key*
  • shut down the VM

clean up VM

cd ./trusty64.vmwarevm
rm *.nvram *.log *.plist
vmware-vdiskmanager -d trusty64_root.vmdk
vmware-vdiskmanager -k trusty64_root.vmdk

make a vagrant box

This one is ubuntu-14.04.2-docker-1.7.1

echo '{"provider":"vmware_desktop"}' > metadata.json
tar cvzf /ramdisk/trusty64-docker.box *
vagrant box add --name trusty64-docker /ramdisk/trusty64-docker.box
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment