Skip to content

Instantly share code, notes, and snippets.

@aweijnitz
Last active March 25, 2024 13:54
Show Gist options
  • Select an option

  • Save aweijnitz/9628014b766e02f0a4c8 to your computer and use it in GitHub Desktop.

Select an option

Save aweijnitz/9628014b766e02f0a4c8 to your computer and use it in GitHub Desktop.

Revisions

  1. aweijnitz revised this gist Aug 6, 2014. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion provision.sh
    Original file line number Diff line number Diff line change
    @@ -1,6 +1,6 @@
    #!/bin/bash

    if [ ! -f /usr/lib/jvm/java-7-oracle/bin/java ];
    if [ ! -f /usr/bin/svn ];
    then
    echo "-------- PROVISIONING SUBVERSION ------------"
    echo "---------------------------------------------"
  2. aweijnitz created this gist Jul 4, 2014.
    32 changes: 32 additions & 0 deletions Vagrantfile
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,32 @@
    # -*- mode: ruby -*-
    # vi: set ft=ruby :

    # 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|

    # Every Vagrant virtual environment requires a box to build off of.
    # Named boxes, like this one, don't need a URL, since the are looked up
    # in the "vagrant cloud" (https://vagrantcloud.com)
    config.vm.box = "chef/debian-7.4"

    # Publish guest port 6060 on host port 6060
    config.vm.network "forwarded_port", guest: 6060, host: 6060
    config.vm.network "forwarded_port", guest: 8080, host: 7070

    config.vm.provider "virtualbox" do |vb|
    # # Don't boot with headless mode. Use for debugging
    # vb.gui = true

    # # Use VBoxManage to customize the VM. For example to change memory:
    vb.customize ["modifyvm", :id, "--memory", "1024"]
    end

    # Provision the box using a shell script
    # This script is copied into the box and then run
    config.vm.provision :shell, :privileged => true, :path => "provision.sh"



    end
    113 changes: 113 additions & 0 deletions provision.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,113 @@
    #!/bin/bash

    if [ ! -f /usr/lib/jvm/java-7-oracle/bin/java ];
    then
    echo "-------- PROVISIONING SUBVERSION ------------"
    echo "---------------------------------------------"

    ## Install subverison
    apt-get update
    apt-get -y install subversion
    else
    echo "CHECK - Subversion already installed"
    fi


    if [ ! -f /usr/lib/jvm/java-7-oracle/bin/java ];
    then
    echo "-------- PROVISIONING JAVA ------------"
    echo "---------------------------------------"

    ## Make java install non-interactive
    ## See http://askubuntu.com/questions/190582/installing-java-automatically-with-silent-option
    echo debconf shared/accepted-oracle-license-v1-1 select true | \
    debconf-set-selections
    echo debconf shared/accepted-oracle-license-v1-1 seen true | \
    debconf-set-selections

    ## Install java 1.7
    ## See http://www.webupd8.org/2012/06/how-to-install-oracle-java-7-in-debian.html
    echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee /etc/apt/sources.list.d/webupd8team-java.list
    echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu precise main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list
    apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886
    apt-get update
    apt-get -y install oracle-java7-installer
    else
    echo "CHECK - Java already installed"
    fi

    if [ ! -f /etc/init.d/jenkins ];
    then
    echo "-------- PROVISIONING JENKINS ------------"
    echo "------------------------------------------"


    ## Install Jenkins
    #
    # URL: http://localhost:6060
    # Home: /var/lib/jenkins
    # Start/Stop: /etc/init.d/jenkins
    # Config: /etc/default/jenkins
    # Jenkins log: /var/log/jenkins/jenkins.log
    wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
    sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
    apt-get update
    apt-get -y install jenkins

    # Move Jenkins to port 6060
    sed -i 's/8080/6060/g' /etc/default/jenkins
    /etc/init.d/jenkins restart
    else
    echo "CHECK - Jenkins already installed"
    fi


    ### Everything below this point is not stricly needed for Jenkins to work
    ###

    if [ ! -f /etc/init.d/tomcat7 ];
    then
    echo "-------- PROVISIONING TOMCAT ------------"
    echo "-----------------------------------------"


    ## Install Tomcat (port 8080)
    # This gives us something to deploy builds into
    # CATALINA_BASE=/var/lib/tomcat7
    # CATALINE_HOME=/usr/share/tomcat7
    export JAVA_HOME="/usr/lib/jvm/java-7-oracle"
    apt-get -y install tomcat7

    # Work around a bug in the default tomcat start script
    sed -i 's/export JAVA_HOME/export JAVA_HOME=\"\/usr\/lib\/jvm\/java-7-oracle\"/g' /etc/init.d/tomcat7
    /etc/init.d/tomcat7 stop
    /etc/init.d/tomcat7 start
    else
    echo "CHECK - Tomcat already installed"
    fi

    if [ ! -f /usr/local/lib/ant/apache-ant-1.9.4/bin/ant ];
    then
    echo "-------- PROVISIONING ANT ---------------"
    echo "-----------------------------------------"

    mkdir -p /usr/local/lib/ant
    cd /usr/local/lib/ant
    wget -q http://ftp.halifax.rwth-aachen.de/apache//ant/binaries/apache-ant-1.9.4-bin.tar.gz
    tar xzf apache-ant-1.9.4-bin.tar.gz
    rm apache-ant-1.9.4-bin.tar.gz
    ln -s /usr/local/lib/ant/apache-ant-1.9.4/bin/ant /usr/local/bin/ant

    echo "Ant installed"
    else
    echo "CHECK - Ant already installed"
    fi


    echo "-------- PROVISIONING DONE ------------"
    echo "-- Jenkins: http://localhost:6060 "
    echo "-- Tomcat7: http://localhost:7070 "
    echo "---------------------------------------"