
前言
本文是为期一周的搜索结果的结果,这些信息非常分散,有关如何在Go上配置Web服务部署。 不是在Heroku,不是在Docker,不是在Digital Ocean,而是在带有CentOS 7x64的老式VDS上。 由于某种原因,网络没有此信息,因此大多数教程都从如何设置构建开始,到测试启动结束。
我会立即警告您,这是我第一次设置CI / CD流程,因此本文是从初学者到初学者的。
当然,这里可以纠正很多问题,因此我会乐于接受评论中的任何评论,并尝试尽快更新更改。 这样的文章也可能已经存在,而我只是可怕地使用搜索引擎。 然后,请提供一个链接,在这种情况下,我将删除该文章,然后将灰烬洒在我的头上。
源数据
- VDS服务器
- 作业系统:CentOS 7x64
- 转到具有以下结构的项目:
src/ public/ index.html main.go
服务器设置:创建服务
首先,为我们的应用程序创建服务。 在CentOS 7中,这非常简单。 您需要在名为serviceName.service的文件中编写这样的脚本:
[Unit]
脚本本身必须放在文件夹etc / systemd / system /
SSH设置
在服务器上,运行以下命令:
ssh-keygen -f /etc/ssh/hmp.key
根据要求
输入密码(无密码时为空)
不要输入密码,只需按Enter。
在/ etc / ssh /文件夹中生成两个文件:
- hmp.key-私钥
- hmp.key.pub-公钥
我们需要一个私钥。 使用以下命令查看其内容:
cat /etc/ssh/hmp.key
它看起来像这样:
-----BEGIN RSA PRIVATE KEY----- { } -----END RSA PRIVATE KEY-----
全部全部复制到剪贴板
注意! -不仅密钥本身,而且
-----开始RSA私钥-----和-----结束RSA私钥-----
Gitlab设置
首先,填写对仓库重要的数据(用户名,密码等)。
即使您的存储库是公共的,它们也将保持关闭状态。
在存储库中的Gitlab中,转到设置-> CI / CD->变量。 我们在此处创建以下变量:
- SSH_PRIVATE_KEY-将在上一段中复制的值粘贴到此处
- USER_PASS-从中启动应用程序的用户密码
- USER-从中启动应用程序的用户名
- 主机-您的VDS地址
- TARGET_DIR_ON_HOST-在我的示例中,您的服务将位于的目标文件夹是/用户名/服务/
- SERVICE_NAME-服务名称
- GROUP_NAME是您的Gitlab用户名
- REPOSITORY_NAME-您的存储库名称
将.gitlab-ci.yml文件添加到具有以下内容的存储库中:
image: golang:latest before_script:
调整后,我们将此脚本推送到存储库中,并已准备好组装并部署。 仅此而已!
希望本文对您有所帮助。 对于任何问题和评论,我将很乐意在评论中回答!