From: Andrew Grimberg Date: Tue, 4 Nov 2014 22:56:56 +0000 (-0800) Subject: Add the ovsdb-docker Vagrant config X-Git-Tag: release/lithium~615 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=b70fbe207abd19bde0e945b1ca4215beb49c61bc;p=releng%2Fbuilder.git Add the ovsdb-docker Vagrant config 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 --- diff --git a/vagrant/ovsdb-docker/README.md b/vagrant/ovsdb-docker/README.md new file mode 100644 index 0000000000..a8e8291ade --- /dev/null +++ b/vagrant/ovsdb-docker/README.md @@ -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 index 0000000000..1a84d65e47 --- /dev/null +++ b/vagrant/ovsdb-docker/Vagrantfile @@ -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 index 0000000000..876cdb1b7d --- /dev/null +++ b/vagrant/ovsdb-docker/bootstrap.sh @@ -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 index 0000000000..ba54ce2f19 --- /dev/null +++ b/vagrant/ovsdb-docker/system_reseal.sh @@ -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 "********************************************"