前言,文章用来自己的学习记录和复习,写的不好额地方请各位见谅和指正哦
vm安装Linux(简单过下,如下图操作即可)
虚拟机只是为了在本地操作熟悉Linux免得花钱,去服务商买服务器是一样的
先用桥接模式, 不行就用nat模式
等待安装...
设置用户和密码(可以只设置密码, 用户是管理员)
完成
到此,安装完毕
虚拟机Linux暴露ip(方便用xshell连接)
进入xshell官网申请下个人免费版xshell和xftp并下载,附上相关文章
打开xshell连接本地的Linux
输入用户名和密码登入
现在就可以用xshell连接Linux了, 操作更方便些, 虚拟机最小化运行即可
安装node
先安装wget(会默认安装到/usr/bin/目录下 )
yum -y install wget
去淘宝node镜像找到Linux的node
复制node下载地址连接到Linux中,下载(先进入 cd /usr/local/bin 文件夹中 )
wget npm.taobao.org/mirrors/nod…
执行解压
tar -xvf node-v16.13.0-linux-x64.tar.gz
进入到 node-v16.13.0-linux-x64 ,执行一下命令安装Node.js的依赖组件
cd node-v16.13.0-linux-x64
yum install gcc gcc-c++
重命名node-v12.16.1-linux-x64.tar.gz文件夹为Node.js
cd .. 先回到上一级级)
mv node-v16.13.0-linux-x64 Node.js
部署bin文件并建立软连接
ln -s /usr/local/bin/Node.js/bin/node /usr/bin/node
ln -s /usr/local/bin/Node.js/bin/npm /usr/bin/npm
ln -s /usr/local/bin/Node.js/bin/npx /usr/bin/npx
至此,node安装完毕.
安装git
这里用yum安装git更简单(node都也可以用yum安装, 看个人去查看怎么操作吧)
yum install -y git
安装完毕
现在我们已经可以手动的在Linux拉取 打包 运行我们的项目了
尝试简单的手动拉取项目并打包,先用node服务器运行下
(先尝试下, 后面不用这么搞, 但这样搞也没问题)
打包出来了一个build, 我们用服务器运行这个build中的文件即可运行我们的项目了, 这里我们可以先用node写一个服务器来试试运行. 可看这个简单的node服务器项目
1直接把上面的node服务器项目clone到了上的项目中(复制到任何位置都行的)
2把build文件夹移动or复制到node服务器项目中
3安装node服务器项目依赖
4运行node服务器项目(我写的是start命令,npm run start)即可,会默认部署到8777端口
展示下:
发现是访问不了的, 原因是防火墙没有开放8777端口, 打开即可
(注: 在服务商提供的服务器上这步操作是配置安全组,如腾讯云[我的是window系统就算了, 就行下面的按钮进入配置]
)
查看所有开启的端口
firewall-cmd --list-ports
防火墙开启端口访问(这里面是8777,其他端口也是一样的)
firewall-cmd --zone=public --add-port=8777/tcp --permanent
注:开启后需要重启防火墙才生效
firewall-cmd --reload
再次展示:
到此, 已经可以了, 如果是服务商提供的服务器的话我们已经可以用外网ip访问了,这里是本地服务器,用的是局域网ip访问的
不过我们发现用npm run start启动服务器十分不好,十分不方便
这是拿出我们的pm2来运行即可
全局安装pm2
npm i pm2 -g
( 这里出了个小意外,全局安装后出现pm2找不到的问题 [在服务器上应该不会出现,反正我之前服务器上没出现,🤭], 就直接按上面安装node的添加软连接的方式给pm2也添加一个就解决了,
1先找到全局npm安装的文件位置
npm root -g
2添加软连接
ln -s /usr/local/bin/Node.js/lib/node_modules/pm2/bin/pm2 /usr/bin/pm2
)
用pm2执行npm run start命令(最后个start就是package.json中的start)
pm2 start npm -- run start
这下可以运行多个命令且方便管理了,pm2常用命令
安装Nginx
Nginx是一款轻量级Web服务器,也是一款反向代理服务器
先下载些必要的程序
yum -y install gcc gcc-c++ autoconf pcre-devel make automake
yum -y install wget httpd-tools vim
安装Nginx
yum install nginx
查看版本
nginx -v
如果80端口开放了的话则会看到
没有开放就看上面的如何开放端口
查看Nginx各项文件位置
rpm -ql nginx
cd进入cd /etc/nginx, 其中含有Nginx的配置文件
打开nginx.conf文件(vim nginx.conf)可发现
有句include /etc/nginx/conf.d/*.conf;我们就可以去/etc/nginx/conf.d/找个文件夹中写上用.conf结尾的文件来配置服务器
新建了个如下内容的test1.conf文件, 就创建了个监听8778端口的简单的服务器, 文件指向的就是我们上面的build文件夹, (记得开放8778端口)
重新载入Nginx配置
nginx -s reload
(如果执行重新载入报错: nginx: [error] open() "/var/run/nginx.pid" failed (2: No such file or directory)
那么先执行下这个命令,再执行重新载入命令:
sudo nginx -c /etc/nginx/nginx.conf
)
页面可见
配置好后我们就不需要node服务器了, 每次从git拿取代码后build下就可更新到页面上,
也可以在本地打包好后通过xftp传到对应的文件位置即可
至此, 附上Nginx的文章
用docker安装: docker run -it --name nginx1 -v /dockerNginxProject:/project -p 80:80 nginx /bin/bash
(-v /dockerNginxProject:/project是容器卷, 把项目放到dockerNginxProject用Nginx容器Nginx配置指向project即可)
安装Jenkins
按照官网依次执行以下命令即可安装
修改Jenkins配置(如果没有找到,先执行rpm -ql jenkins 查看下位置 )
vi /etc/syscofifig/jenkins
可修改内容如下:
JENKINS_USER="root" (运行的Linux账号)
JENKINS_PORT="8080"(运行端口, 看个人设置, 默认8080)
启动Jenkins
systemctl start jenkins
打开浏览器访问(记得开放端口)
http://192.168.66.101:8080 (当前服务器的ip+端口)
后面按照Jenkins的提示进行即可
安装插件时选择不安装, 后面需要再安装即可
添加一个管理员账户,并进入Jenkins后台
后面按步骤进行即可,没啥难度
安装完成可见
更改Jenkins插件安装源为国内
cd /var/lib/jenkins/updates
执行命令
sed -i 's/updates.jenkins-ci.org/download/ht…' default.json && sed -i 's/www.google.com/https://www…' default.json
重启Jenkins,
http://192.168.66.101:8080/restart 即可重启
下载部分插件
汉化插件:
Jenkins->Manage Jenkins->Manage Plugins,点击Available,搜索"Chinese"
git插件:
node插件:
node安装好后去Jenkins的 系统设置->全局工具配置 页面配置下(这一步有疑问,1不配置不选择node环境可以打包成功, 2本地安装的16配置时写的非自动路径为/usr/bin/node失败 3本地安装了16,这里选自动安装17会再安装个node吗?如何将本地的16配置到这里面了呢? ------问了下运维, 这里会在Jenkins的环境下再安装node虽然本地的Linux已有node但不冲突. 如果配置项目时不选node也能打包成功是因为它会去本地找对应的node,有则打包成功)
名称随意
尝试用Jenkins打包个项目
\
成功了即可见,如上提示的, /var/lib/jenkins/workspace/test1打包后在这个文件夹下
Jenkins实现git钩子
先安装Jenkins的 Generic Webhook Trigger Plugin插件
配置gitwebhooks:
如http://106.52.**.**:8080/generic-webhook-trigger/invoke?token=11b59209b42c4446ff3cdb22649114099d6
前面的改为自己的Jenkins服务器ip和端口(因为用虚拟机创建的Linux是局域网访问,外网访问会有问题, 这里用的是腾讯云的Linux系统举的列),后面的token到jenkins的系统管理-管理用户-admin-设置里获取
再配置流水线:
就ok了
现在每次push代码即可触发流水线
Jenkins配置ssh链接
先安装Publish Over SSH插件
补充:
上面配置好后打包流水线完成打包后就会将打包出来的build文件内容上传到指定服务器的指定目录下(
作用就是一台服务器用来打包流水线(就这当前这太台), 其他ssh配置的服务器用来存放运行项目/网站(可以是多台)
)
前端部署就暂时介绍到这里了