首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何结合使用Git和Ansible来配置/描述web应用的部署

如何结合使用Git和Ansible来配置/描述web应用的部署
EN

Stack Overflow用户
提问于 2020-03-07 02:45:54
回答 1查看 76关注 0票数 0

我想直接从他们的Git存储库部署几个web应用程序

一个web应用程序由两个docker容器组成,一个用于Apache Tomcat (作为中间件和服务静态文件,例如Vue.js前端)和一个Mysql数据库容器。

Ubuntu服务器本身将从头开始初始化,提供一个Ansible playbook,例如docker/docker-compose和一个预配置的Apache web服务器,它将用作所有web应用程序( Apache web服务器的虚拟主机)的反向代理。

第二个Ansible攻略通过在Ubuntu服务器上创建新用户,从Git服务器克隆web应用程序的存储库,并在Apache web服务器上配置反向代理来安装web应用程序。

有没有一个好的方法来配置/描述web应用程序在其Git存储库中的部署?这种描述应该包括docker-compose文件的名称、如何构建中间件软件的war文件、将war文件部署到相对于Ubuntu服务器中web应用程序用户的主目录的位置,等等。有没有人碰巧知道有没有标准化的方法来达到我的目标?

EN

回答 1

Stack Overflow用户

发布于 2020-03-16 17:39:59

我认为,正常的方法是使用CI/CD环境。

Git正在存储项目的源代码。每次提交(或任何你想要的事件),一个连续的集成过程开始,并根据需要编译源代码。在特定分支(主/生产)的情况下,CI/CD进程创建一个工件,该工件被打包到Docker映像中并推送到注册表。所有这些都不是在服务器上完成的--而是在另一台机器上--不要使用你的Ubuntu生产机器来编译webapp……

然后CI/CD过程可以通过直接在远程机器上执行或者通过调用ansible playbook (例如,生成ReverseProxy设置)来启动发布过程。因此,您已经完全将编译过程从配置中分离出来。攻略可能是该项目的一部分。

Gitlab和Jenkins有几个例子--比如https://docs.gitlab.com/ee/ci/docker/using_docker_build.html

每个项目都有自己的Dockerfile来描述服务本身。并且有一个包含Docker-Compose文件和Ansible Scripts的整体项目来生成生产环境(通常)。每个服务的配置是通过每个SCM项目的行动手册完成的。

更改一个项目中的文件将重新创建Docker镜像。你只需要调用一个docker-compose pull & up -d (也许你不需要重新运行整个docker-compose-Create过程)。另一个任务可以自动运行,也可以在任何更改时运行。我认为,这里的诀窍是使用Docker容器而不是Ansible脚本,因为您已经使用了docker-compose环境-完全使用它。

所以-你有(例如)

Gitlab

  • 是用于开发的主机
  • Gitlab容器以及Gitlab-Runner容器
    • 每个项目都有一个CI配置,用于描述从源到工件的任务(请参阅configuration/startup/healthcheck
    • and Runner
    • 以描述映像及其文件可能是由.gitlab-
    • 运行的剧本,用于配置ReverseProxy等)。
    • 使用清单和通用剧本创建一个不同的项目,为您的环境创建默认设置(在我的情况下,是推送到该项目调用AWX REST API以重新读取SCM并启动攻略site.yml).

代码语言:javascript
复制
- maybe a Docker Registry
- maybe in front of that a ReverseProxy.

ReverseProxy

  • several docker和您的生产机
  • a docker-使用来自您的docker的docker映像组成环境

好的是-与AWX和其他一些主机一起,你可以为不同的分支和新项目创建临时区域,也可以使用基于时间的部署。

当然-用你想要的任何东西替换Gitlab。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60569917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档