自动部署
介绍了在GitLab 8.15中。自动部署是一个实验性的特性不建议用于生产环境此时。
从GitLab 9.1开始,只有在Pipeline运行时才能访问容器注册表。重新启动pod、扩展服务或其他需要持续访问的操作将会失败.后续版本计划提供持续的安全访问。
从GitLab 10.0开始,自动部署模板是弃用功能已经包含在汽车DevOps.
自动部署是为部署应用程序配置GitLab CI的一种简单方法。GitLab社区维护一个列表.gitlab-ci.yml
各种基础设施提供者的模板和为它们提供支持的部署脚本。这些脚本负责打包应用程序、设置基础设施和启动必要的服务(例如数据库)。
它是如何工作的
Autodeploy模板基于kubernetes-deployKubernetes项目,该项目通过提供智能的组件来简化Kubernetes的部署过程构建
,部署
,摧毁
命令,这些命令可以在.gitlab-ci.yml
为是。它使用Herokuish,它使用Heroku buildpacks来做一些工作,再加上一些GitLab自己的工具来打包它。为方便起见,a码头工人形象也提供了。
你可以使用Kubernetes项目服务将凭据存储到基础设施提供程序中,并在部署期间可用。
快速启动
我们做了一个简单的指导使用自动部署与GitLab.com。
有关GitLab自动部署的演示,请阅读博客文章自动从GitLab部署到OpenShift容器集群
支持模板
中提供了受支持的自动部署模板列表gitlab-ci-yml项目.
配置
注意:为了理解为什么需要以下步骤,请阅读它是如何工作的部分。
要配置自动部署,您需要:
- 启用部署项目服务来存储您的凭据。例如,如果要部署到OpenShift,则必须启用Kubernetes服务.
- 配置GitLab Runner以使用Docker或Kubernetes执行器与启用特权模式.
- 导航到“项目”选项卡并单击“设置自动部署”按钮。
- 选择模板。
- 提交更改并创建合并请求。
- 测试您的部署配置审查程序它是自动为你创建的。
私人项目支持
实验支持介绍了在GitLab 9.1中。
当一个项目被标记为私有时,GitLab的容器注册表下载容器时需要身份验证。自动部署将自动向Kubernetes提供所需的身份验证信息,允许对注册表进行临时访问。在管道运行时,身份验证凭据将是有效的,从而允许成功的初始部署。
管道完成后,Kubernetes将不再能够访问容器注册表。重新启动pod、扩展服务或其他需要持续访问注册表的操作将失败。后续版本计划提供持续的安全访问。
PostgreSQL数据库支持
实验支持介绍了在GitLab 9.1中。
为了支持需要数据库的应用程序,PostgreSQL是默认配置的。访问数据库的凭据是预先配置的,但是可以通过设置关联的变量.这些凭据可用于定义DATABASE_URL
格式的:postgres: / /用户:password@postgres-host: postgres-port / postgres-database
.重要的是要注意数据库本身是临时的,并且不会保存内容。
PostgreSQL的发放可以通过设置这个变量来关闭DISABLE_POSTGRES
来“是的”
.
PostgreSQL支持以下变量:
DISABLE_POSTGRES:“是的”
:关闭PostgreSQL自动部署功能POSTGRES_USER:“我的用户”
: PostgreSQL使用自定义用户名POSTGRES_PASSWORD:“密码”
: PostgreSQL使用自定义密码POSTGRES_DB:“我的数据库”
:使用自定义数据库名
汽车监控
介绍了GitLab 9.5.
自动部署的应用程序Kubernetes模板还可以自动监控:
- 响应度量:延迟、吞吐量、错误率
- 系统指标:CPU利用率、内存利用率
度量标准是从nginx-ingress和Kubernetes.
要查看指标,请打开已部署环境的监视仪表板.
配置自动监控
如果GitLab已经使用omnibus-gitlab舵图,不需要配置。
如果您使用不同的方法安装了GitLab: