Server(virtualbox) provisioning using vagrant.
To start using Vagrant (on Debian) download and install vagrant and virtualbox
$ sudo wget https://releases.hashicorp.com/vagrant/1.7.4/vagrant_1.7.4_i686.deb /home/guy/Downloads/
$ sudo dpkg -i /home/guy/Downloads/vagrant_1.7.4_i686.deb
$ sudo apt-get install linux-headers-$(uname -r) build-essential dkms virtualbox-4.3 vim
Setup and configure Vagrant
$ mkdir vagranttest
$ cd vagranttest
$ vim Vagrantfile (see example)
$ vim bootstrap.sh (see example)
$ vagrant init hashicorp/precise32
Vagrantfile example:
Vagrant.configure("2") do |config|
config.vm.box = "hashicorp/precise32"
config.vm.provision :shell, path: "bootstrap.sh"
config.vm.network :forwarded_port, guest: 80, host: 4567
end
Bootstrap.sh example:
#!/usr/bin/env bash
#update
printf "\n\n\n Started server provisioning, please wait \n\n\n"
sudo apt-get update
#mysql uservars and install
printf "\n\n\n Installing database \n\n\n"
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password password somepass'
sudo debconf-set-selections <<< 'mysql-server mysql-server/root_password_again password somepass'
sudo apt-get -y install mysql-server-5.5 php5-mysqlnd
sudo service mysqld restart
#apache, php, git
printf "\n\n\n Installing webserver \n\n\n"
sudo apt-get -y install apache2 php5-common libapache2-mod-php5 php5-cli git
sudo service apache2 restart
#set apache dir to vagrant dir
if ! [ -L /var/www ]; then
rm -rf /var/www
ln -fs /vagrant /var/www
fi
#editor(s) and security
printf "\n\n\n Installing other packages \n\n\n"
sudo apt-get -y install clamav clamav-freshclam vim
#set repo
sudo apt-get -y install git
sudo ssh-agent /bin/bash
ssh-add /vagrant/id_rsa
sudo echo -e "Host bitbucket.com\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
cd /vagrant
sudo yes | git clone git@bitbucket.org:Bruggencate/why-guy.git
#finish
sudo freshclam && clamscan /vagrant
echo "\n\n\nProvisioning completed, have a nice day!\n\n\n"
Start machine/deployment
$ vagrant up
$ vagrant ssh