CI & CD 持续集成部署
最后更新于
最后更新于
集成: GitLab CI / CD是GitLab的一部分,支持从计划到部署(甚至更多)的单个对话
开源: CI / CD是开源GitLab社区版和专有GitLab企业版的一部分
易于学习: 请参阅GitLab的 快速入门 指南
无缝: 是单个GitLab应用程序的一部分,具有出色的用户体验
可扩展: 测试可以在单独的计算机上分布式运行,您可以根据需要添加任意数量的计算机
更快的结果: 每个构建可以拆分为多个作业,这些作业可以在多台计算机上并行运行
多平台: 您可以在Unix,Windows,macOS和任何其他支持Go的平台上执行构建。
多语言: 构建脚本是命令行驱动的,并且可以与Java,PHP,Ruby,C和任何其他语言一起使用。
稳定: 您的构建在与GitLab不同的机器上运行。
并行构建: GitLab CI / CD在多台机器上拆分构建,以实现快速执行。
实时日志记录: 合并请求中的链接将您带到动态更新的当前构建日志。
灵活的管道: 您可以在每个阶段定义多个并行作业,并且可以 触发其他构建。
版本管道: 一个 .gitlab-ci.yml文件 包含您的测试,整个过程的步骤,使每个人都能贡献更改,并确保每个分支获得所需的管道。
自动缩放: 您可以 自动旋转虚拟机 ,以确保立即处理您的构建并将成本降至最低。
构建工件: 您可以将二进制文件和其他构建工件上载到 GitLab并浏览和下载它们。
Docker支持: 您可以使用自定义Docker映像, 作为测试的一部分启动 服务, 构建新的Docker映像,甚至可以在Kubernetes上运行。
容器注册表: 内置的容器注册表, 用于存储,共享和使用容器映像。
环境: 定义多个环境,包括临时 Review Apps ,请参阅每个环境的部署历史记录。
Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。
Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。
GitLab是一个完整的DevOps平台,作为单个应用程序提供,从根本上改变了开发,安全和运营团队的协作方式。GitLab帮助团队将软件交付时间从数周缩短至数分钟,降低开发成本,并降低应用程序漏洞的风险,同时提高开发人员的生产率。
输入命令vim /etc/postfix/main.cf打开main.cf文件并找到下图内容:
将这行代码改为inet_interfaces = all,然后按Esc键,然后输入:wq并回车以保存并关闭main.cf文件。
输入命令sudo systemctl start postfix启动Postfix服务。
这个是我gitlab公网ip
安装完成会出现如下图片:
说明已经自动启动getlab服务,如没有出现以上情况则说明硬件配置太低或输入systemctl restart gitlab-runsvdir.service 重启gitlab服务
其他操作命令:
如果修改了配置文件,需要执行 gitlab-ctl reconfigure 进行更新配置(只要修改了该文件,必须执行该命令才能生效)
执行 gitlab-ctl restart 重启服务,我这里不做修改
服务启动成功后即可通过公网IP去访问,如果修改了端口,IP后面就要加上端口去访问
使用浏览器访问GitLab服务器的公网IP地址,显示如下页面,说明环境搭建成功。
管理员默认为root用户,初始密码不能低于8位
把要克隆或要上传代码这台服务器的公钥cat /root/.ssh/id_rsa.pub打开公钥文件复制到gitlab服务器指定位置上
#克隆代码仓库,然后测试是否能够上传代码到gitlab
256MB可用内存
1GB可用磁盘空间(作为一个Docker容器运行jenkins的话推荐10GB)为小团队推荐的硬件配置:
1GB+可用内存
50 GB+ 可用磁盘空间
Java 8—无论是Java运行时环境(JRE)还是Java开发工具包(JDK)都可以。
访问jenkins官网 下载Jenkins
两种方式使用其中一种就可以下载了
然后访问http://139.159.189.191:8080/jenkins 见到如下图片就说明安装成功:
如果插件没安装完会出现如下页面,点纠正安装相关插件就好了:
必须需要添加的6个插件:Gitlab Hook、Build Authorization Token Root、Publish Over SSH、Gitlab Authentication、Gitlab、Git Parameter
#添加主机:系统管理 - 系统设置 找到Publish over SSH
开始添加要部署代码的主机,注意一定是要能够ssh登陆的用户。
这里要注意的是要先把jenkins服务器的公钥传送给要部署代码的那台机然后再点测试
#添加完主机之后,新建一个项目,开始配置构建操作
添加完后,选择root或git用户进行认证没有任何提示表示成功
这里一定要勾上
#再次克隆仓库
#提交之后去Jenkins页面看看
访问成功
#很多朋友使用最新版本的gitlab做自动部署时,在增加web钩子那一步,
#点击test push events时会报错:Url is blocked: Requests to the local network are not allowed
#这是因为新版的gitlab为了安全默认禁止了本地局域网地址调用web hook
#我们在设置里允许就行,具体步骤如下: