流水线部署(废弃)
流水线自动部署的思路整体和手动部署相似,只需要将重启脚本提前准备好即可。下面以 Github Action 部署为例介绍使用。
我们仍然用 Vue TodoMVC 作为部署项目。首先我们需要在部署服务器上提前准备好环境
安装 Nginx,新建项目部署位置
/path/to/deploy,添加一个 nginx conf 文件指向该目录,参考配置如下
upstream backend {
server 127.0.0.1:9991;
}
server {
listen 80;
server_name your.domain;
rewrite ^(.*) https://$server_name$1 permanent;
}
# https 配置,没有则将后续配置剪切到上面的80服务里
server {
listen 443 ssl;
server_name your.domain;
charset utf-8;
access_log /var/log/nginx/app.fb.todomvc.access.log;
error_log /var/log/nginx/app.fb.todomvc.error.log;
# https://github.com/darktable/html5-boilerplate-server-configs/blob/master/nginx.conf
# Enable Gzip
gzip on;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_proxied any;
gzip_types
# text/html is always compressed by HttpGzipModule
text/css
text/javascript
text/xml
text/plain
text/x-component
application/javascript
application/json
application/xml
application/rss+xml
font/truetype
font/opentype
application/vnd.ms-fontobject
image/svg+xml;
gzip_static on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
gzip_vary on;
# 根据实际情况修改
ssl_certificate /etc/nginx/cert/1_app.fb.todomvc.crt;
ssl_certificate_key /etc/nginx/cert/2_app.fb.todomvc.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
ssl_prefer_server_ciphers on;
location / {
root /path/to/deploy/web;
index index.html;
try_files $uri $uri/ /index.html;
}
location /operations {
proxy_pass http://backend/operations;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X_Forward_For $proxy_add_x_forwarded_for;
client_max_body_size 0;
}
location /auth {
proxy_pass http://backend/auth;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X_Forward_For $proxy_add_x_forwarded_for;
client_max_body_size 0;
}
}上述配置制定了 /path/to/deploy/web 目录为 vue 打包后的目录,同时添加了 https 相关配置,实际情况请做相应修改。
参考手动部署章节安装好 NodeJs 环境,配置好 systemd 服务。
在任意支持 unix 命令行的机器上生成一个公私钥对(本次示例中没有对密钥进行加密,如有需要,请做相应修改),用于后续的自动部署
在弹框中将密钥保存为 github-action,完成后将在 ~/.ssh 目录生成 github-action.pub 和 github-action 文件,前者是公钥,后者是私钥。将公钥添加到部署机器上
上述命令使用 ssh-copy-id 将公钥复制到部署机器上。
提前在项目 Github 的 Setting 中添加以下 secrets
SSH_HOST 部署服务器 IP /域名
SSH_PORT 部署服务器 SSH 端口
SSH_PRIVATE_KEY 部署私钥
SSH_USER SSH 登录用户名

在项目根目录中创建
.github/deploy.yml文件并写入自动部署配置。
向代码仓库 main 分支提交,触发自动部署并查看部署日志,项目会自动部署到最新版本。
最后更新于
这有帮助吗?