felix-cao / Blog

A little progress a day makes you a big success!
31 stars 4 forks source link

GCRA 实现php应用程序的自动化部署 #183

Open felix-cao opened 4 years ago

felix-cao commented 4 years ago

一、概述

GCRAGitLab GitLab-ci GitLab-runner Ansible 四个的简称,是本人定义的简称,不具备通用性

1.1、GitLab

GitLab 类似于 GitHub, 是一个用于仓库管理系统的开源项目,使用 Git 作为代码管理工具,并在此基础上搭建起来的 web 服务。

GitLab 提供了分享开源项目的平台,为开发团队提供了存储、分享、发布和合作开发项目的中心化云存储的场所。

重要的是 GitLab 源码开源!GitLab 安装请参考 《gitlab 安装指南》

1.2、GitLab-CI

GitLab-CI 就是持续集成,每一次 push 代码,就触发一次构建流程包括测试编译打包部署 等一系列的内容,这个流程是 pipeline 执行一系列的脚本构成,根据自己的项目需求制作相应的流程和编写相关的脚本,.gitlab-ci.yml 的脚本解析就由它来负责。

CIContinuous Integration,持续集成,是软件开发过程中一个非常重要的环节,在互联网敏捷开发的过程中,持续集成通常用来进行日常编译和自动化测试,来保证及时发现提交的问题,避免影响项目进度。

通常持续集成的过程包括:

不同的项目可能步骤有所不同,一些更加规范的公司的项目可能会加入静态代码检查,也有不少的小项目迫于进度和 QA 的工作压力,可能连测试过程都没有。

GitLab-CIGitLab 自带的持续集成系统,你装的 GitLab 的那台服务器上就有,无需自行安装。GitLab-CI 负责解析 .gitlab-ci.yml

1.3、GitLab-runner

GitLab-runner 是脚本执行的地方,push 代码后,GitLab-CI 会解析 .gitlab-ci.yml,然后根据pipeline 规则在相应的 runner 上执行相应的脚本

GitLab-runner 这个是脚本执行的承载者, .gitlab-ci.ymlscript 部分就是由 runner 来负责的。GitLab-CI 解析项目里的 .gitlab-ci.yml 文件之后,根据里面的规则,分配到各个 Runner 来运行相应的脚本 script

这里提供一种 《Docker 搭建 GitLab-runner》

1.4、Ansible

Ansible 是一种自动化的运维工具,基于 Python 开发,它集合了众多运维工具(比如puppetcheffunc 等)的优点,能够实现批量操作。安装及配置请参考 《Ansible 安装与配置》

--- 未完