Vagrant@node
下記の記事を参考にexpress x nginx x mongodb
構成の開発環境を作成する。
vagrant
boxの追加・初期化
$ vagrant box add centos7 https://github.com/tommy-muehle/puppet-vagrant-boxes/releases/download/1.1.0/centos-7.0-x86_64.box
$ vagrant box list
# => centos7 (virtualbox, 0)
$ vagrant init centos7
pluginインストール、vagrantfile編集
# hostsをよしなに設定
$ vagrant plugin install vagrant-hostsupdater
Vagrant.configure(2) do |config|
config.vm.box = "centos7"
# `http://express-sample.local`
config.vm.hostname = "express-sample.local"
config.vm.network "private_network", ip: "192.168.33.10"
config.vm.synced_folder "./html", "/var/www/html"
end
$ mkdir html
起動、接続
$ vagrant up
$ vagrant ssh
# => Last login: Thu Jul 16 08:48:31 2015 from 10.0.2.2 Welcome to your Vagrant-built virtual machine.
[vagrant@express-sample ~]$ pwd
/home/vagrant
SELinux、Firewalledを無効化
開発環境なので無効化
(自分の環境だと仮想環境にホストPCからport80番でアクセスできなかった)
参考記事
node
nodebrew
[vagrant@express-sample ~]$ curl -L git.io/nodebrew | perl - setup
[vagrant@express-sample ~]$ echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.bashrc
[vagrant@express-sample ~]$ source ~/.bashrc
node
[vagrant@express-sample ~]$ nodebrew ls-remote
[vagrant@express-sample ~]$ nodebrew install stable
# => install to v7.7.2
[vagrant@express-sample ~]$ nodebrew use v7.7.2
[vagrant@express-sample ~]$ node -v
# => v7.7.2
stable
で最新の安定バージョン
nginx
インストール
[vagrant@express-sample ~]$ sudo yum install epel-release
[vagrant@express-sample ~]$ sudo yum install -y nginx
# 起動
[vagrant@express-sample ~]$ sudo systemctl start nginx.service
# 自動起動設定
[vagrant@express-sample ~]$ sudo systemctl enable nginx.service
centos7.xは、Extra Packages for Enterprise Linux (EPEL)のリポジトリをyumに追加する必要があった
centos7.xはservice
ではなくsystemctrl
conf編集
[vagrant@express-sample ~]$ sudo vi /etc/nginx/conf.d/virtual.conf
virtual.conf
upstream node-backend {
server localhost:3000;
}
server {
listen 80;
server_name express-sample.local;
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://node-backend;
}
charset utf-8;
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log;
}
# 再起動
[vagrant@express-sample ~]$ sudo systemctl restart nginx.service
mongodb
インストール
[vagrant@express-sample ~]$ sudo vi /etc/yum.repos.d/10gen.repo
10gen.repo
[10gen]
name=10gen Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64
gpgcheck=0
enabled=1
[vagrant@express-sample ~]$ sudo yum install -y mongo-10gen mongo-10gen-server
設定
# 起動
sudo service mongod start
# 自動起動設定
sudo chkconfig mongod on
インストールしたmongodbは
systemctrl
ではなかった
express
インストール
実際はAPIサーバにするケースが多いと思うけど、ECT入れておく。
[vagrant@express-sample ~]$ cd /var/www/html
[vagrant@express-sample ~]$ sudo yum -y install git
[vagrant@express-sample ~]$ npm i -g esperia/generator
[vagrant@express-sample ~]$ express -ect
[vagrant@express-sample ~]$ npm un express-generator
[vagrant@express-sample ~]$ sudo yum install -y tree
[vagrant@express-sample ~]$ tree
.
├── app.js
├── bin
│ └── www
├── package.json
├── public
│ ├── images
│ ├── javascripts
│ └── stylesheets
│ └── style.css
├── routes
│ ├── index.js
│ └── users.js
└── views
├── error.ect
├── index.ect
└── layout.ect
[vagrant@express-sample ~]$ npm i
配布用のboxファイル作成
ログアウト
[vagrant@express-sample ~]$ exit;
# => logout
$ vagrant halt
boxファイル作成、登録
# boxファイル作成
$ vagrant package
# vagrantにboxを登録
$ vagrant box add MEEN-stack package.box
配布された人は
vagrant init MEEN-stack
で初期化できる
(MEEN = mongodb, express, ect, node)..(┐「ε:)