了解最简单的自动化部署前后端

305 阅读3分钟

「这是我参与2022首次更文挑战的第二天,活动详情查看:2022首次更文挑战」。

服务器的自动部署

什么是SSH?

SSH 为的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞

SSH的功能的实现

  1. 远程主机收到用户的登录请求,把自己的公钥发给用户。

  2. 用户使用这个公钥,将登录密码加密后,发送回来。

  3. 远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。

如何在服务器上生成公钥

首先切换成root用户

sudo su root

切换到/root/.ssh文件中

cd /root/.ssh

然后输入ssh keygen

ssh -keygen

QQ图片20220101103116.png 查看id_rsa.pub就是你的公钥

cat id_rsa.pub

webhook的配置

首先切换opt

cd opt

然后下载webhook

wget https://hub.fastgit.org/fzf404/GoWebHooks/releases/download/v2.2/webhooks.tar.gz

由于下载的是一个压缩包需要解压

tar -zxvf webhooks.tar.gz

然后将example改名为webhook

mv example webhook

接下来配置hook文件

vim config/config.yaml
#其中demo改成你想要执行仓库的名称
#secret改成你想设置的密码
#url其换成你的仓库名称
#shell你若想执行text就改成text.sh

配置需要执行的shell脚本

vim shell/仓库名称.sh
#根据自己需求写命令
需要加上下面这句命令
#!/bin/bash

运行

./webhooks

如果显示如下则成功

2021/12/12 21:31:16 🆕 demo: Init Success.
2021/12/12 21:31:16 🆕 test: Init Success.

通过ngixn部署前端

首先下载nginx

apt install nginx

停止系统自带的apache

systemctl stop apache2.service

然后进入nginx

cd /etc/nginx/sites-availbale

改写里面的default文件

vim default

QQ图片20220124115006.png 将root后面的路径改成你想加载文件的文件夹

然后将你location后面的路径改成你想要加载前端文件

刷新nginx

nginx -s reload

启动nginx

nginx

这样前端就部署完成了

自动部署后端

go环境

因为现在go语言比较新颖所以很多人会用go写后端所以我们就安装go环境来部署后端

  1. 安装go
apt install golang-1.16 -y
  1. 创建软连接
ln /usr/lib/go-1.16/bin/go /usr/bin/
go version
#这是为了使go可全局运行
  1. 运行
go run main.go

Nodejs

安装Nodejs

# Using Ubuntu
curl -fsSL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs
# 查看版本
node -v
# 换源∏
npm config set registry https://registry.npm.taobao.org

使用PM2

使用pm2是为了使后端与webhooks是在后台运行,防止当你关了终端就无法运行后端。

全局安装 pm2

npm i pm2 -g

启动服务

pm2 start "go run main.go" --name go-test

查看服务

pm2 list

删除

pm2 delete id/name

重启

pm2 restart id/name

查看日志

pm2 log id/name

然后通过配置webhook自动同步后端仓库。然后就实现了自动部署前后端了。一起去试试吧!!