I created a VM using Vagrant and Ansible and when i try to use it after it is booted i note that it is extremely slow. I'm also using a remote DB in the cloud but it seems not to be the cause of the slow response. By slow response i mean about 5secs to load a page most of the time.
Vagrantfile
# -*- 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|
# Set the box name and URL
config.vm.box = "trusty-server"
config.vm.box = "skeleton"
config.vm.box_url = "https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box"
# Hostmanager plugin config
config.hostmanager.enabled = true
config.hostmanager.manage_host = true
config.hostmanager.ignore_private_ip = false
config.hostmanager.include_offline = true
# Fix TTY problem
config.ssh.shell = "bash -c 'BASH_ENV=/etc/profile exec bash'"
# Basic box configuration
config.vm.network "private_network", ip: "192.168.100.102"
config.vm.hostname = "skeleton.ontherocks.dev"
config.hostmanager.aliases = %w(en.skeleton.ontherocks.dev)
config.vm.synced_folder ".", "/vagrant", :mount_options => ['dmode=777', 'fmode=777']
# Provision using Ansible
config.vm.provision "ansible" do |ansible|
ansible.playbook = "provisioning/playbook.yml"
end
config.vm.provision :hostmanager
end
Playbook
- hosts: default
remote_user: vagrant
sudo: true
sudo_user: root
tasks:
##
# Update apt packages
#
- name: General | Update apt packages.
apt: update_cache=yes
##
# Apt package instalation of required software
#
- name: General | Install required packages.
apt: pkg={{ item }} state=present
with_items:
- build-essential
- php5
- apache2
- php5-mysql
- sendmail
- php5-mcrypt
- php5-curl
- php5-gd
##
# Apache2 setup
#
- name: Apache | Enable required modules
action: command a2enmod rewrite vhost_alias
- name: Apache | Configuration file for our site
action: template src=templates/etc-apache2-sites-available-website-conf.j2 dest=/etc/apache2/sites-available/website.conf
- name: Apache | Disable the default site
action: command a2dissite 000-default
- name: Apache | Enable our new site
action: command a2ensite website
notify:
- Restart Apache
- name: PHP | Enable required modules
action: command php5enmod mcrypt
notify:
- Restart Apache
##
# Website setup
#
- name: Website | Set up file and directory permissions
file: path=/vagrant/craft/storage/ mode=0777 recurse=yes state=directory
sudo: yes
##
# Restart services
#
handlers:
- name: Restart Apache
service: name=apache2 state=restarted
Speed up the shared folder with nfs
config.vm.synced_folder ".", "/vagrant", :nfs => { :mount_options => ["dmode=777","fmode=777"] }
Speed up the vm networking
config.vm.provider "virtualbox" do |vb|
vb.customize ["modifyvm", :id, "--nictype1", "virtio"]
end
This had a 10-15x networking increase for me.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With