Added Vagrant for users and developers
This commit is contained in:
31
webgoat-images/vagrant-developers/Vagrantfile
vendored
Normal file
31
webgoat-images/vagrant-developers/Vagrantfile
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
Vagrant.configure(2) do |config|
|
||||
config.vm.box = "boxcutter/ubuntu1604-desktop"
|
||||
|
||||
|
||||
config.vm.provider "virtualbox" do |vb|
|
||||
vb.gui = true
|
||||
vb.memory = "4096"
|
||||
vb.cpus = 2
|
||||
vb.name = "WebGoat-Developers"
|
||||
vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
|
||||
end
|
||||
|
||||
config.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'"
|
||||
|
||||
config.vm.provision 'shell' do |s|
|
||||
s.path = '../vagrant_provision.sh'
|
||||
s.privileged = true
|
||||
end
|
||||
|
||||
config.vm.provision :shell, inline: <<-SHELL
|
||||
echo -e "Cloning the WebGoat container repository"
|
||||
git clone https://github.com/WebGoat/WebGoat.git
|
||||
echo -e "Cloning the WebGoat Lessons repository"
|
||||
git clone https://github.com/WebGoat/WebGoat-Lessons.git
|
||||
SHELL
|
||||
|
||||
config.vm.provision 'shell' do |s|
|
||||
s.inline = "echo Finished provisioning, login with user vagrant pass vagrant"
|
||||
end
|
||||
|
||||
end
|
41
webgoat-images/vagrant-users/Vagrantfile
vendored
Normal file
41
webgoat-images/vagrant-users/Vagrantfile
vendored
Normal file
@ -0,0 +1,41 @@
|
||||
#For now use the same as for developers but start WebGoat
|
||||
#In the future we can add Docker as well and then Vagrant can start the
|
||||
#Docker container
|
||||
|
||||
Vagrant.configure(2) do |config|
|
||||
config.vm.box = "boxcutter/ubuntu1604-desktop"
|
||||
config.vm.network :forwarded_port, guest: 8080, host: 9999
|
||||
config.vm.provider "virtualbox" do |vb|
|
||||
vb.gui = false
|
||||
vb.memory = "4096"
|
||||
vb.cpus = 2
|
||||
vb.name = "WebGoat-Users"
|
||||
vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
|
||||
end
|
||||
|
||||
config.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'"
|
||||
|
||||
config.vm.provision 'shell' do |s|
|
||||
s.path = '../vagrant_provision.sh'
|
||||
s.privileged = true
|
||||
end
|
||||
|
||||
config.vm.provision :shell, inline: <<-SHELL
|
||||
echo -e "Cloning the WebGoat container repository"
|
||||
git clone https://github.com/WebGoat/WebGoat.git
|
||||
echo -e "Cloning the WebGoat Lessons repository"
|
||||
git clone https://github.com/WebGoat/WebGoat-Lessons.git
|
||||
echo -e "Compiling and installing the WebGoat Container lesson server....."
|
||||
mvn -q -DskipTests -file WebGoat/pom.xml clean compile install
|
||||
echo -e "Compiling and installing the WebGoat Lessons $COL_RESET"
|
||||
mvn -q -DskipTests -file WebGoat-Lessons/pom.xml package
|
||||
echo -e "Copying the compiled lessons jars into the container so we can start the lesson server with some base lessons"
|
||||
cp -fa ./WebGoat-Lessons/target/plugins/*.jar ./WebGoat/webgoat-container/src/main/webapp/plugin_lessons/
|
||||
nohup mvn -q -DskipTests -file WebGoat/pom.xml -pl webgoat-container tomcat7:run-war 0<&- &>/dev/null &
|
||||
SHELL
|
||||
|
||||
config.vm.provision 'shell' do |s|
|
||||
s.inline = "echo Finished provisioning, open a browser and browse to http://localhost:9999/WebGoat/"
|
||||
end
|
||||
|
||||
end
|
53
webgoat-images/vagrant_provision.sh
Normal file
53
webgoat-images/vagrant_provision.sh
Normal file
@ -0,0 +1,53 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
echo "Setting locale..."
|
||||
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
|
||||
|
||||
sudo kill -9 $(lsof -t /var/lib/dpkg/lock) || true
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y git
|
||||
|
||||
echo "Installing required packages..."
|
||||
sudo apt-get install -y -q build-essential autotools-dev automake pkg-config expect
|
||||
|
||||
|
||||
## Chrome
|
||||
wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
|
||||
sudo sh -c 'echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y google-chrome-stable
|
||||
|
||||
## Java 8
|
||||
echo "Provisioning Java 8..."
|
||||
mkdir -p /home/vagrant/java
|
||||
cd /home/vagrant/java
|
||||
test -f /tmp/jdk-8-linux-x64.tar.gz || curl -q -L --cookie "oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u101-b13/jdk-8u101-linux-x64.tar.gz -o /tmp/jdk-8-linux-x64.tar.gz
|
||||
|
||||
sudo mkdir -p /usr/lib/jvm
|
||||
sudo tar zxf /tmp/jdk-8-linux-x64.tar.gz -C /usr/lib/jvm
|
||||
|
||||
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk1.8.0_101/bin/java" 1
|
||||
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.8.0_101/bin/javac" 1
|
||||
sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.8.0_101/bin/javaws" 1
|
||||
|
||||
sudo chmod a+x /usr/bin/java
|
||||
sudo chmod a+x /usr/bin/javac
|
||||
sudo chmod a+x /usr/bin/javaws
|
||||
sudo chown -R root:root /usr/lib/jvm/jdk1.8.0_101
|
||||
|
||||
echo "export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_101" >> /home/vagrant/.bashrc
|
||||
|
||||
|
||||
## Maven
|
||||
echo "Installing Maven.."
|
||||
sudo apt-get install -y maven
|
||||
|
||||
## ZAP
|
||||
echo "Provisioning ZAP..."
|
||||
cd /home/vagrant
|
||||
mkdir tools
|
||||
cd tools
|
||||
wget https://github.com/zaproxy/zaproxy/releases/download/2.5.0/ZAP_2.5.0_Linux.tar.gz
|
||||
tar xvfx ZAP_2.5.0_Linux.tar.gz
|
||||
rm -rf ZAP_2.5.0_Linux.tar.gz
|
Reference in New Issue
Block a user