Last active
August 29, 2015 14:04
-
-
Save acavanagh/618d8d3c82be12ff4b67 to your computer and use it in GitHub Desktop.
with nfs example
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
ip: "192.168.10.10" | |
memory: 2048 | |
cpus: 1 | |
authorize: /Users/andrewcavanagh/.ssh/id_rsa.pub | |
keys: | |
- /Users/andrewcavanagh/.ssh/id_rsa | |
folders: | |
- map: /Users/andrewcavanagh/Code | |
to: /home/vagrant/Code | |
- map: /Users/andrewcavanagh/Sites/odphp | |
to: /home/vagrant/odphp | |
- map: /Users/andrewcavanagh/Sites/sos | |
to: /home/vagrant/sos | |
- map: /Users/andrewcavanagh/vagrant/www/belmont | |
to: /home/vagrant/belmont | |
- map: /Users/andrewcavanagh/Sites/tcfcu | |
to: /home/vagrant/tcfcu | |
- map: /Users/andrewcavanagh/Sites/ehs7new | |
to: /home/vagrant/ehs | |
- map: /Users/andrewcavanagh/behat_al | |
to: /home/vagrant/behat | |
- map: /Users/andrewcavanagh/Sites/art | |
to: /home/vagrant/art | |
- map: /Users/andrewcavanagh/Sites/clpp | |
to: /home/vagrant/clpp | |
- map: /Users/andrewcavanagh/vagrant/www/vision | |
to: /home/vagrant/vision | |
- map: /Users/andrewcavanagh/Sites/aite | |
to: /home/vagrant/aite | |
- map: /Users/andrewcavanagh/Sites/pcubed | |
to: /home/vagrant/pcubed | |
- map: /Users/andrewcavanagh/Sites/mitbio | |
to: /home/vagrant/bio | |
- map: /Users/andrewcavanagh/Sites/eaps | |
to: /home/vagrant/eaps | |
- map: /Users/andrewcavanagh/vagrant/www/macv2 | |
to: /home/vagrant/amdf2 | |
- map: /Users/andrewcavanagh/zigbop/ba/app | |
to: /home/vagrant/ba | |
- map: /Users/andrewcavanagh/Sites/mvc/january | |
to: /home/vagrant/mvc | |
- map: /Users/andrewcavanagh/zigbop/cms/public | |
to: /home/vagrant/cms | |
sites: | |
- map: homestead.app | |
to: /home/vagrant/Code/Laravel/public | |
- map: odphp.app | |
to: /home/vagrant/odphp | |
- map: sos.app | |
to: /home/vagrant/sos | |
- map: belmont.app | |
to: /home/vagrant/belmont | |
- map: tcfcu.app | |
to: /home/vagrant/tcfcu | |
- map: ehs.app | |
to: /home/vagrant/ehs | |
- map: behat.app | |
to: /home/vagrant/behat/public | |
- map: art.app | |
to: /home/vagrant/art | |
- map: clpp.app | |
to: /home/vagrant/clpp | |
- map: vision.app | |
to: /home/vagrant/vision | |
- map: aite.app | |
to: /home/vagrant/aite | |
- map: pcubed.app | |
to: /home/vagrant/pcubed | |
- map: bio.app | |
to: /home/vagrant/bio | |
- map: eaps.app | |
to: /home/vagrant/eaps | |
- map: amdf2.app | |
to: /home/vagrant/amdf2 | |
- map: ba.app | |
to: /home/vagrant/ba | |
- map: mvc.app | |
to: /home/vagrant/mvc | |
- map: cms.app | |
to: /home/vagrant/cms | |
variables: | |
- key: APP_ENV | |
value: local |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Homestead | |
def Homestead.configure(config, settings) | |
# Configure The Box | |
config.vm.box = "laravel/homestead" | |
config.vm.hostname = "homestead" | |
# Configure A Private Network IP | |
config.vm.network :private_network, ip: settings["ip"] ||= "192.168.10.10" | |
# Configure A Few VirtualBox Settings | |
config.vm.provider "virtualbox" do |vb| | |
vb.customize ["modifyvm", :id, "--memory", settings["memory"] ||= "2048"] | |
vb.customize ["modifyvm", :id, "--cpus", settings["cpus"] ||= "1"] | |
vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"] | |
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] | |
end | |
# Configure Port Forwarding To The Box | |
config.vm.network "forwarded_port", guest: 80, host: 8000 | |
config.vm.network "forwarded_port", guest: 3306, host: 33060 | |
config.vm.network "forwarded_port", guest: 5432, host: 54320 | |
# Configure The Public Key For SSH Access | |
config.vm.provision "shell" do |s| | |
s.inline = "echo $1 | tee -a /home/vagrant/.ssh/authorized_keys" | |
s.args = [File.read(File.expand_path(settings["authorize"]))] | |
end | |
# Copy The SSH Private Keys To The Box | |
settings["keys"].each do |key| | |
config.vm.provision "shell" do |s| | |
s.privileged = false | |
s.inline = "echo \"$1\" > /home/vagrant/.ssh/$2 && chmod 600 /home/vagrant/.ssh/$2" | |
s.args = [File.read(File.expand_path(key)), key.split('/').last] | |
end | |
end | |
# Copy The Bash Aliases | |
config.vm.provision "shell" do |s| | |
s.inline = "cp /vagrant/aliases /home/vagrant/.bash_aliases" | |
end | |
# Register All Of The Configured Shared Folders | |
# settings["folders"].each do |folder| | |
# config.vm.synced_folder folder["map"], folder["to"], type: folder["type"] ||= nil | |
# end | |
###trying nfs for speed | |
settings["folders"].each do |folder| | |
config.vm.synced_folder folder["map"], folder["to"], | |
id: folder["map"], | |
:nfs => true, | |
:mount_options => ['nolock,vers=3,udp,noatime'] | |
end | |
# Install All The Configured Nginx Sites | |
settings["sites"].each do |site| | |
config.vm.provision "shell" do |s| | |
s.inline = "bash /vagrant/scripts/serve.sh $1 $2" | |
s.args = [site["map"], site["to"]] | |
end | |
end | |
# Configure All Of The Server Environment Variables | |
if settings.has_key?("variables") | |
settings["variables"].each do |var| | |
config.vm.provision "shell" do |s| | |
s.inline = "echo \"\nenv[$1] = '$2'\" >> /etc/php5/fpm/php-fpm.conf && service php5-fpm restart" | |
s.args = [var["key"], var["value"]] | |
end | |
end | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment