「这是我参与2022首次更文挑战的第二天,活动详情查看:2022首次更文挑战」。
服务器的自动部署
什么是SSH?
SSH 为的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞
SSH的功能的实现
-
远程主机收到用户的登录请求,把自己的公钥发给用户。
-
用户使用这个公钥,将登录密码加密后,发送回来。
-
远程主机用自己的私钥,解密登录密码,如果密码正确,就同意用户登录。
如何在服务器上生成公钥
首先切换成root用户
sudo su root
切换到/root/.ssh文件中
cd /root/.ssh
然后输入ssh keygen
ssh -keygen
查看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
将root后面的路径改成你想加载文件的文件夹
然后将你location后面的路径改成你想要加载前端文件
刷新nginx
nginx -s reload
启动nginx
nginx
这样前端就部署完成了
自动部署后端
go环境
因为现在go语言比较新颖所以很多人会用go写后端所以我们就安装go环境来部署后端
- 安装go
apt install golang-1.16 -y
- 创建软连接
ln /usr/lib/go-1.16/bin/go /usr/bin/
go version
#这是为了使go可全局运行
- 运行
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自动同步后端仓库。然后就实现了自动部署前后端了。一起去试试吧!!