全栈工程师之路——服务器端自动布置

媒介

作为一位前端工程师,不仅要能写前端页面,还要懂前端工程,种种库,种种框架,种种衍生言语,信手捏来。
假如你想要成为一位全栈工程师,那末就必需要学会Node.js,学会线上效劳器布置和宣布。

预备

为了防止个人花钱买云效劳器。我实验的体式格局是当地Vmware假造机(装ubuntu 16.04)和当地windows平台(win7)。

1 Vmware假造机装上ubuntu(教程网上找)
装好今后,调解下窗口:
《全栈工程师之路——服务器端自动布置》

2 当地win7装上xshell

最先

固然,你搞Node.js,一定假造机上要设置NodeJs环境
假造机搜Terminal,翻开敕令行,顺次输入一下敕令。
1 晋级一下包

sudo apt-get update 

2 装置一些必备东西

sudo apt-get install git vim openssl openssh-server  build-essential libssh-dev wget curl 

openssh-server是我们经由过程ssh衔接用到。
curl是一个Linux下的传输东西
git是装置我们的Node.js源码须要的版本东西

3 装置nvm

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

4 装置nodejs

nvm install v8.1.2
nvm use v8.1.2

5 封闭防火墙(由于背面我们要ssh连到这台假造机,所以防火墙最好是封闭)

sudo ufw stop

6 装置yarn vue-cli pm2

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn
npm install vue-cli pm2 -g

yarn是一个包管理东西,相当于npm
vue-cli是一个Vue的敕令行东西
pm2是Node效劳管理东西

测试假造机上Node是不是装置好

假造机上建立一个server.js:

vi server.js

拷贝代码进去:
《全栈工程师之路——服务器端自动布置》

然后按下:wq! 保留
末了测试:

pm2 start server.js

假如看到以下状况,申明启动胜利。
《全栈工程师之路——服务器端自动布置》

当地windows(win7)衔接到假造机

1 修正sshd_config(保证能经由过程暗码登录)

vim /etc/ssh/sshd_config

找到:
Authentication:
LoginGraceTime 120
PermitRootLogin prohibit-password
StrictModes yes

修正成:

Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

2 假造机启动ssh

sudo service ssh start

3 检察ip(记着你的IP)

ifconfig

《全栈工程师之路——服务器端自动布置》

4 翻开xshell
输入ssh ubuntu@192.168.150.129
@前面是用户名 @背面是IP。 用户名必需准确,否则会提醒效劳器谢绝暗码。别的假造机的收集设置是NAT,不须要改成桥接。
一般情况下能链接胜利

建立一个私有堆栈

我用的是bitbuket,本身先到上面罕见一个push2Server的堆栈。
《全栈工程师之路——服务器端自动布置》
然后当地clone下来

目次下建立一个server.js,代码和上面的一样。另有一个ecosystem.json(这个是pm2自动布置须要的),目次构造以下:
《全栈工程师之路——服务器端自动布置》

ecosystem.json这文件的设置很主要。

{
  "apps": [
    {
      "name": "Test",
      "script": "server.js",
      "env": {
        "COMMON_VARIABLE": "true"
      },
      "env_production": {
        "NODE_ENV": "production"
      }
    }
  ],
  "deploy": {
    "production": {
      "user": "ubuntu", //注重点1: user必需是你ubuntu的名字
      "host": "192.168.150.129", //注重点2: ip保证准确
      "port": "22", //端口保证准确
      "ref": "origin/master",
      "repo": "git@bitbucket.org:YellMan/push2server.git", //注重点3 必需用git@..开首 不要 用https开首的
      "path": "/home/ubuntu/www/testproject/production",//注重点4 目次最好是绝对途径
      "ssh_options": "StrictHostKeyChecking=no",
      "env": {
        "NODE_ENV": "production"
      }
    }
  }
}

直接看注重点3: 由于假造机上要clone堆栈代码,所以假造机上须要设置一下,git堆栈的key.
《全栈工程师之路——服务器端自动布置》
到bitbuket上面的堆栈,增加一个key。

key怎样天生看教程:https://confluence.atlassian….

$ ssh-keygen 
$ cat ~/.ssh/id_rsa.pub
$ pbcopy < ~/.ssh/id_rsa.pub

末了一步很主要:到假造机上运转:

ssh -T git@bitbucket.org

注重点4:由于pm2要在假造机上建立这个途径:/home/ubuntu/www/testproject/production。所以要保证testproject和www途径必需有权限。/home/ubuntu是我的根途径,然后建立www目次,目次下再建立testproject.
假造机上给一下权限:

sudo chmod 777 www
sudo chmod 777 testproject

末了,提交代码到长途堆栈。

宣布前设置

当地运转:

pm2 deploy ecosystem.json production setup

假如涌现一下毛病,重试一下就好了:
《全栈工程师之路——服务器端自动布置》
假如涌现一下毛病:
《全栈工程师之路——服务器端自动布置》
在效劳端设置一下ssh key到的私有堆栈(看注重点3)
假如涌现以下毛病:
《全栈工程师之路——服务器端自动布置》
这是由于pm2是全局装置的,途径不是在默许途径下面。所以须要用ls敕令link一下.
在假造机运转以下敕令:

whereis pm2
pm2: /opt/nodejs/bin/pm2
sudo ln -s /opt/nodejs/bin/pm2 /usr/bin/pm2

假如涌现一下毛病:
《全栈工程师之路——服务器端自动布置》
同理:

ubuntu@ubuntu:~$ whereis node
node: /usr/bin/node /home/ubuntu/.nvm/versions/node/v8.1.2/bin/node
sudo ln -s /home/ubuntu/.nvm/versions/node/v8.1.2/bin/node /usr/bin/node

末了宣布项目

pm2 deploy ecosystem.json production

假造上看一下是不是自动布置胜利:

《全栈工程师之路——服务器端自动布置》
祝贺你,你胜利了!

以上就是本日分享的内容,感谢浏览,迎接留言交换。

    原文作者:毛毛星写代码
    原文地址: https://segmentfault.com/a/1190000014032010
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞