# -*- mode: ruby -*- # vi: set ft=ruby : domain_name = "XXXXX" ip_address = "XXXX" Vagrant.configure(2) do |config| config.vm.box = "bento/ubuntu-16.04" config.vm.network "private_network", ip: ip_address config.vm.synced_folder ".", "/vagrant" config.trigger.after [:up, :resume, :reload] do |trigger| trigger.run = {inline: "bash-c 'hostile set #{ip_address} #{domain_name}'"} end config.trigger.after :halt do |trigger| trigger.run = {inline: "bash -c 'hostile remove #{domain_name}'" end config.vm.provider "vmware_workstation" do |v| v.vmx["memsize"] = "2048" v.vmx["numvcpus"] = "1" v.whitelist_verified = true end config.vm.provision "shell", run: "always", inline: <<-shell if [[ ! -e /home/vagrant/node_modules ]]; then sudo -u vagrant mkdir /home/vagrant/node_modules fi if [[ ! -e /vagrant/node_modules ]]; then sudo -u vagrant mkdir /vagrant/node_modules fi mount --bind /home/vagrant/node_modules /vagrant/node_modules shell config.vm.provision "shell", inline: <<-shell DBHOST=localhost DBNAME=dbname DBUSER=XXXX DBPASSWD=XXXX echo "Updating packages list..." apt-get -qq update echo "Installing base packages..." apt-get -y install build-essential curl vim git >> /vagrant/vagrant.log 2>&1 echo "Installing Node..." curl -sS https://deb.nodesource.com/setup_8.x | bash apt-get install -y nodejs >> /vagrant/vagrant.log 2>&1 echo "Installing WP-CLI..." curl -sS -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar >> /vagrant/vagrant.log 2>&1 chmod +x wp-cli.phar >> /vagrant/vagrant.log 2>&1 mv wp-cli.phar /usr/local/bin/wp >> /vagrant/vagrant.log 2>&1 echo "Installing MySQL..." debconf-set-selections <<< "mysql-server mysql-server/root_password password $DBPASSWD" debconf-set-selections <<< "mysql-server mysql-server/root_password_again password $DBPASSWD" debconf-set-selections <<< "phpmyadmin phpmyadmin/dbconfig-install boolean true" debconf-set-selections <<< "phpmyadmin phpmyadmin/app-password-confirm password $DBPASSWD" debconf-set-selections <<< "phpmyadmin phpmyadmin/mysql/admin-pass password $DBPASSWD" debconf-set-selections <<< "phpmyadmin phpmyadmin/mysql/app-pass password $DBPASSWD" debconf-set-selections <<< "phpmyadmin phpmyadmin/reconfigure-webserver multiselect none" apt-get -y install mysql-server phpmyadmin >> /vagrant/vagrant.log 2>&1 echo -e "Creating database..." mysql -uroot -p$DBPASSWD -e "CREATE DATABASE $DBNAME" >> /vagrant/vagrant.log 2>&1 mysql -uroot -p$DBPASSWD -e "grant all privileges on $DBNAME.* to '$DBUSER'@'localhost' identified by '$DBPASSWD'" >> /vagrant/vagrant.log 2>&1 echo "Installing PHP..." apt-get -y install php apache2 libapache2-mod-php php-curl php-gd php-mysql php-gettext >> /vagrant/vagrant.log 2>&1 echo "Tweaking config..." a2enmod rewrite >> /vagrant/vagrant.log 2>&1 sed -i "s/AllowOverride None/AllowOverride All/g" /etc/apache2/apache2.conf sed -i "s/error_reporting = .*/error_reporting = E_ALL/" /etc/php/7.0/apache2/php.ini sed -i "s/display_errors = .*/display_errors = On/" /etc/php/7.0/apache2/php.ini sed -i "s/upload_max_filesize = .*/upload_max_filesize = 20M/" /etc/php/7.0/apache2/php.ini sed -i "s/post_max_size = .*/post_max_size = 20M/" /etc/php/7.0/apache2/php.ini rm -rf /var/www/html ln -fs /vagrant/public /var/www/html echo -e "Restarting Apache..." service apache2 restart >> /vagrant/vagrant.log 2>&1 echo "Setting default shell directory..." echo $'\ncd /vagrant' >> /home/vagrant/.bashrc echo "Installing Yarn..." npm install -g yarn >> /vagrant/vagrant.log 2>&1 shell end