github.com/marinho/drone@v0.2.1-0.20140504195434-d3ba962e89a7/Vagrantfile (about)

     1  # -*- mode: ruby -*-
     2  # vi: set ft=ruby :
     3  
     4  # Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
     5  VAGRANTFILE_API_VERSION = "2"
     6  
     7  Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
     8    # Drone supports 12.04 64bit and 13.04 64bit
     9    config.vm.box = "precise64"
    10    config.vm.box_url = "http://files.vagrantup.com/precise64.box"
    11  
    12    # Forward keys from SSH agent rather than copypasta
    13    config.ssh.forward_agent = true
    14  
    15    # FIXME: Maybe this is enough
    16    config.vm.provider "virtualbox" do |v|
    17        v.customize ["modifyvm", :id, "--memory", "2048"]
    18    end
    19  
    20    # Drone by default runs on port 80. Forward from host to guest
    21    config.vm.network :forwarded_port, guest: 8080, host: 8080
    22    config.vm.network :private_network, ip: "192.168.10.101"
    23  
    24    # Sync this repo into what will be $GOPATH
    25    config.vm.synced_folder ".", "/opt/go/src/github.com/drone/drone"
    26  
    27    # system-level initial setup
    28    config.vm.provision "shell", inline: <<-EOF
    29      set -e
    30  
    31      # System packages
    32      echo "Installing Base Packages"
    33      export DEBIAN_FRONTEND=noninteractive
    34      sudo apt-get update -qq
    35      sudo apt-get install -qqy --force-yes build-essential bzr git mercurial vim
    36  
    37  
    38      # Install Go
    39      GOVERSION="1.2"
    40      GOTARBALL="go${GOVERSION}.linux-amd64.tar.gz"
    41      export GOROOT=/usr/local/go
    42      export GOPATH=/opt/go
    43      export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
    44  
    45      echo "Installing Go $GOVERSION"
    46      if [ ! $(which go) ]; then
    47          echo "    Downloading $GOTARBALL"
    48          wget --quiet --directory-prefix=/tmp https://go.googlecode.com/files/$GOTARBALL
    49  
    50          echo "    Extracting $GOTARBALL to $GOROOT"
    51          sudo tar -C /usr/local -xzf /tmp/$GOTARBALL
    52  
    53          echo "    Configuring GOPATH"
    54          sudo mkdir -p $GOPATH/src $GOPATH/bin $GOPATH/pkg
    55          sudo chown -R vagrant $GOPATH
    56  
    57          echo "    Configuring env vars"
    58          echo "export PATH=\$PATH:$GOROOT/bin:$GOPATH/bin" | sudo tee /etc/profile.d/golang.sh > /dev/null
    59          echo "export GOROOT=$GOROOT" | sudo tee --append /etc/profile.d/golang.sh > /dev/null
    60          echo "export GOPATH=$GOPATH" | sudo tee --append /etc/profile.d/golang.sh > /dev/null
    61      fi
    62  
    63  
    64      # Install drone
    65      echo "Building Drone"
    66      cd $GOPATH/src/github.com/drone/drone
    67      make godep
    68      export GOPATH=`godep path`:$GOPATH
    69      export PATH=$PATH:$GOPATH/bin:`godep path`/bin
    70      make embed
    71      make build
    72  
    73  
    74      # Auto cd to drone install dir
    75      echo "cd /opt/go/src/github.com/drone/drone" >> /home/vagrant/.bashrc
    76  
    77  
    78      # Cleanup
    79      sudo apt-get autoremove
    80  
    81  
    82      echo <<DONE
    83  PROVISIONING COMPLETE:
    84      vagrant ssh
    85      make run
    86      Visit http://localhost:8080/install
    87  DONE
    88    EOF
    89  
    90    config.vm.provision "shell", inline: <<-EOF
    91      sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
    92      sudo sh -c 'echo deb http://get.docker.io/ubuntu docker main' > /etc/apt/sources.list.d/docker.list
    93      sudo apt-get update
    94      sudo apt-get install -y linux-image-generic-lts-raring linux-headers-generic-lts-raring
    95      sudo apt-get install -y lxc-docker-0.9.0
    96    EOF
    97  
    98  
    99  end