Add the ovsdb-docker Vagrant config 07/12507/1
authorAndrew Grimberg <agrimberg@linuxfoundation.org>
Tue, 4 Nov 2014 22:56:56 +0000 (14:56 -0800)
committerAndrew Grimberg <agrimberg@linuxfoundation.org>
Tue, 4 Nov 2014 22:56:56 +0000 (14:56 -0800)
Given how sparsely configured this image actually is, it could probably
be easily used by any other project that needs Java7 (needed for being a
Jenkins slave at a minimum) and just docker after that.

Change-Id: I4022bb69d1a701a7d40d742f86af38835d3dd5c9
Signed-off-by: Andrew Grimberg <agrimberg@linuxfoundation.org>
vagrant/ovsdb-docker/README.md [new file with mode: 0644]
vagrant/ovsdb-docker/Vagrantfile [new file with mode: 0644]
vagrant/ovsdb-docker/bootstrap.sh [new file with mode: 0644]
vagrant/ovsdb-docker/system_reseal.sh [new file with mode: 0644]

diff --git a/vagrant/ovsdb-docker/README.md b/vagrant/ovsdb-docker/README.md
new file mode 100644 (file)
index 0000000..a8e8291
--- /dev/null
@@ -0,0 +1,23 @@
+ovsdb-docker can be used to take an already converted Rackspace native
+base image into a usuable docker ready image (tested against ovsdb hence
+the name)
+
+Please see the rackspace-convert-base vagrant setup for creation of the
+needed base image.
+
+This vagrant expects (by default) a personal Rackspace image named
+
+'Fedora 20 (Heisenbug) - Vagrant ready'
+
+To spin up and utilize.
+
+$ RSIMAGE='${baseimagename}' vagrant up --provider=rackspace
+
+Will execute this vagrant against a differently named base image
+
+$ RSRESEAL=true vagrant up --provider=rackspace
+
+NOTE: resealing will cause the vagrant to run the resealing operation.
+This operation will intentionally destroy current SSH pubkeys installed
+on the system as well as reset log files and network configurations. You
+have been warned.
diff --git a/vagrant/ovsdb-docker/Vagrantfile b/vagrant/ovsdb-docker/Vagrantfile
new file mode 100644 (file)
index 0000000..1a84d65
--- /dev/null
@@ -0,0 +1,55 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby sw=2 ts=2 sts=2 et :
+
+# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
+VAGRANTFILE_API_VERSION = "2"
+
+Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
+  # root off of the rackspace provider dummy box
+  config.vm.box = "dummy"
+
+  # rackspace systems, even with cloud-init
+  # don't seem to have the cloud int user ${osname} (or similar)
+  # getting the ssh key for some reason, root does for sure
+  # so use that
+  config.ssh.username = 'root'
+
+  # Fedora and EL systems default to requiring tty for sudo
+  # This should have been disabled with the Vagrant ready
+  # base box conversion (see rackspace-convert-base vagrant)
+  # but just to be safe
+  config.ssh.pty = true
+
+  # make sure to set the following in your
+  # ~/.vagrant.d/boxes/dummy/0/rackspace/Vagrantfile
+  # rs.username
+  # rs.api_key
+  # rs.rackspace_region
+  #
+  # If you are not using an SSH token / smartcard also set this
+  # rs.key_name
+  # config.ssh.private_key_path -- set this outside the rackspace block
+  #         in your base box
+  config.vm.provider :rackspace do |rs|
+    # create these base builds always on the smallest system possible
+    rs.flavor = 'performance1-1'
+
+    # Default the Fedora 20 (Heisenbug) - Vagrant ready image unless overriden by a RSIMAGE
+    # environment variable
+    if ENV['RSIMAGE']
+      rs.image = ENV['RSIMAGE']
+    else
+      rs.image = 'Fedora 20 (Heisenbug) - Vagrant ready'
+    end
+  end
+
+  # run our bootstrapping for the ovsdb-devstack system
+  config.vm.provision 'shell', path: 'bootstrap.sh'
+
+  # set RSRESEAL to... anything if you want to snap an image of this box
+  # not setting the environment variable will cause the system to come
+  # up fully and not be in a resealable state
+  if ENV['RSRESEAL']
+    config.vm.provision 'shell', path: 'system_reseal.sh'
+  end
+end
diff --git a/vagrant/ovsdb-docker/bootstrap.sh b/vagrant/ovsdb-docker/bootstrap.sh
new file mode 100644 (file)
index 0000000..876cdb1
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/bash
+
+yum clean all
+# Add the ODL yum repo
+#yum install -q -y https://nexus.opendaylight.org/content/repositories/opendaylight-yum-epel-6-x86_64/rpm/opendaylight-release/0.1.0-1.el6.noarch/opendaylight-release-0.1.0-1.el6.noarch.rpm
+yum update -q -y
+
+yum install -q -y java-1.7.0-openjdk-devel docker-io supervisor git
+
+systemctl enable docker.service
+
+echo "***************************************************"
+echo "*   PLEASE RELOAD THIS VAGRANT BOX BEFORE USE     *"
+echo "***************************************************"
diff --git a/vagrant/ovsdb-docker/system_reseal.sh b/vagrant/ovsdb-docker/system_reseal.sh
new file mode 100644 (file)
index 0000000..ba54ce2
--- /dev/null
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+# clean-up from any prior cloud-init networking
+rm -rf /etc/sysconfig/network-scripts/{ifcfg,route}-eth*
+
+rm -rf /etc/Pegasus/*.cnf /etc/Pegasus/*.crt /etc/Pegasus/*.csr /etc/Pegasus/*.pem /etc/Pegasus/*.srl /root/anaconda-ks.cfg /root/anaconda-post.log /root/initial-setup-ks.cfg /root/install.log /root/install.log.syslog /var/cache/fontconfig/* /var/cache/gdm/* /var/cache/man/* /var/lib/AccountService/users/* /var/lib/fprint/* /var/lib/logrotate.status /var/log/*.log* /var/log/BackupPC/LOG /var/log/ConsoleKit/* /var/log/anaconda.syslog /var/log/anaconda/* /var/log/apache2/*_log /var/log/apache2/*_log-* /var/log/apt/* /var/log/aptitude* /var/log/audit/* /var/log/btmp* /var/log/ceph/*.log /var/log/chrony/*.log /var/log/cron* /var/log/cups/*_log /var/log/debug* /var/log/dmesg* /var/log/exim4/* /var/log/faillog* /var/log/gdm/* /var/log/glusterfs/*glusterd.vol.log /var/log/glusterfs/glusterfs.log /var/log/httpd/*log /var/log/installer/* /var/log/jetty/jetty-console.log /var/log/journal/* /var/log/lastlog* /var/log/libvirt/libvirtd.log /var/log/libvirt/lxc/*.log /var/log/libvirt/qemu/*.log /var/log/libvirt/uml/*.log /var/log/lightdm/* /var/log/mail/* /var/log/maillog* /var/log/messages* /var/log/ntp /var/log/ntpstats/* /var/log/ppp/connect-errors /var/log/rhsm/* /var/log/sa/* /var/log/secure* /var/log/setroubleshoot/*.log /var/log/spooler* /var/log/squid/*.log /var/log/syslog* /var/log/tallylog* /var/log/tuned/tuned.log /var/log/wtmp* /var/named/data/named.run
+
+rm -rf ~/.viminfo /etc/ssh/ssh*key*
+
+echo "********************************************"
+echo "*   PLEASE SNAPSHOT IMAGE AT THIS TIME     *"
+echo "********************************************"