Created
June 28, 2017 14:57
-
-
Save keidrun/193c69f8bc0a854acc8ebb3c26e51d37 to your computer and use it in GitHub Desktop.
Sample Vagrantfile of node development environment on Windows.
This file contains hidden or 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
| # -*- mode: ruby -*- | |
| # vi: set ft=ruby : | |
| Vagrant.configure(2) do |config| | |
| # box | |
| config.vm.box = "centos65-x86_64-20140116" | |
| config.vm.define "dev-server" do |node| | |
| # host | |
| node.vm.hostname = "dev-server" | |
| # network | |
| node.vm.network "private_network", ip:"192.168.33.12" | |
| node.vm.network "forwarded_port", guest:22, host:2223, id:"ssh" | |
| node.vm.network "forwarded_port", guest:1337, host:1338 | |
| node.vm.network "forwarded_port", guest:27017, host:27018 | |
| # debug | |
| node.vm.network "forwarded_port", guest:8080, host:8082, id:"http" | |
| # rsync | |
| node.vm.synced_folder "C:\\Users\\user\\testspace\\workspace\\App1", "/home/vagrant/workspace/App1", | |
| type: "rsync", | |
| owner: "vagrant", | |
| group: "vagrant", | |
| rsync__exclude: [".git/", "node_modules/"] | |
| node.vm.synced_folder "C:\\Users\\user\\workpace\\workspace\\App2", "/home/vagrant/workspace/App2", | |
| type: "rsync", | |
| owner: "vagrant", | |
| group: "vagrant", | |
| rsync__exclude: [".git/", "node_modules/"] | |
| node.vm.synced_folder "C:\\Users\\user\\workspace\\workspace\\App3", "/home/vagrant/workspace/App3", | |
| type: "rsync", | |
| owner: "vagrant", | |
| group: "vagrant", | |
| rsync__exclude: [".git/", "node_modules/"] | |
| node.vm.provision "shell", inline: <<-SHELL | |
| # hosts | |
| if [ ! `cat /etc/hosts | grep 'npmjs'` ]; then | |
| sudo echo '23.235.39.162 registry.npmjs.com' >> /etc/hosts | |
| sudo echo '23.235.39.162 registry.npmjs.org' >> /etc/hosts | |
| fi | |
| # update | |
| sudo rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm | |
| sudo yum update -y | |
| # packages | |
| sudo yum install -y git rsync lsof | |
| # node | |
| git clone https://github.com/creationix/nvm.git /home/vagrant/.nvm | |
| if [ ! `cat /home/vagrant/.bashrc | grep 'NVM_DIR'` ]; then | |
| sudo echo 'export NVM_DIR="$HOME/.nvm"' >> /home/vagrant/.bashrc | |
| sudo echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"' >> /home/vagrant/.bashrc | |
| #sudo echo 'nvm alias default v0.12.12' >> /home/vagrant/.bashrc | |
| fi | |
| source /home/vagrant/.nvm/nvm.sh | |
| nvm install v0.12.12 | |
| # mongod | |
| sudo touch /etc/yum.repos.d/mongodb.repo | |
| sudo echo "[mongodb]" > /etc/yum.repos.d/mongodb.repo | |
| sudo echo "name=MongoDB Repository" >> /etc/yum.repos.d/mongodb.repo | |
| sudo echo "baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/" >> /etc/yum.repos.d/mongodb.repo | |
| sudo echo "gpgcheck=0" >> /etc/yum.repos.d/mongodb.repo | |
| sudo echo "enabled=1" >> /etc/yum.repos.d/mongodb.repo | |
| sudo yum install -y mongodb-org | |
| sudo chkconfig --add mongod | |
| sudo chkconfig mongod on | |
| if [ ! `service mongod status | grep 'running'` ]; then | |
| sudo service mongod start | |
| fi | |
| # memcached | |
| #sudo rpm -ivh http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm | |
| sudo yum install -y memcached | |
| sudo chkconfig --add memcached | |
| sudo chkconfig memcached on | |
| if [ ! `service memcached status | grep 'running'` ]; then | |
| sudo service memcached start | |
| fi | |
| # nginx | |
| sudo rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm | |
| sudo yum install -y nginx | |
| sudo chkconfig --add nginx | |
| sudo chkconfig nginx on | |
| if [ ! `service nginx status | grep 'running'` ]; then | |
| sudo service nginx start | |
| fi | |
| # firewall off | |
| sudo service iptables stop | |
| sudo service ip6tables stop | |
| sudo chkconfig iptables off | |
| sudo chkconfig ip6tables off | |
| # selinux off | |
| sudo sed -i "s/\(^SELINUX=\).*/\1disabled/" /etc/selinux/config | |
| # home permission | |
| chown vagrant.vagrant -R /home/vagrant | |
| SHELL | |
| end | |
| config.vm.provider "virtualbox" do |vb| | |
| vb.memory = "1024" | |
| vb.gui = false | |
| end | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment