gitlab删除分支_基础架构即代码,使用GitLab和Ansible创建基础网络架构

GitLab依托快速迭代优势,逐渐完善了其对最新趋势、理念和技术的支持。尤其在DevOps和DevSecOps方面更是跑到了最浪尖。GitLab CI就是具体负责这些工作的工具套件,是一系列功能强大的工具,可用于开发测试运维一栈式服务,自动化任务执行,当然也包括虫虫要给大家说的一个方面TaD(Infrastructure as Code),基础架构即代码。本文实例演示Ansible的网络类的双路由器演示,节选自GitLab官方的CI/CD示例。

ce94ce7706d722b591b511e64a484cb9.png

概述

在GitLab CI环境下,我们可以的方便的通过修改和推送Ansible playbook代码构建和修改虚拟网络基础架构环境,而无需在本地安装任何Ansible网络模块依赖项。

2f0023f820ae6a193b1f7b010149c821.png

实例中的Ansible playbook由以下四个任务:

0af17234539bb8f2b7ce2da9ed7de99f.png

收集路由器信息:

显示OS版本

显示序列号

和配置SNMP:

a1916f2180a94f99714f11a0e3456f0e.png

基本步骤

缘起——问题看板

GitLab的每个计划都在同一个地方开始:问题看板。GitLab CI工作流程的第一步是检查ansible-demo项目中的问题板。在ansible-demo问题看板上,我们发现在所有路由器上更改SNMP字符串已经存在问题。在该问题中有一个指向安全策略的链接,根据安全策略每月必须轮换SNMP字符串,并且必须有不同的字符串用于只读和读写,该实例就演示为了符合安全策略的更改操作。

7e21c59d7f0a48ef9fc9464ee5ed3d3c.png

检查在双路由器演示中配置的SNMP字符串的命令是否遵循问题中概述的GitLab安全策略。

81bc3d4a61b1a24ea8d86ad5c9257269.png

接下来,返回问题看板,将该问题分配给自己。并将标签从待办事项切换到问题的右侧边栏。

创建合并请求

下一步是从问题创建合并请求(MR)。仔细检查"正在进行工作"(WIP)标志是否已经附加到你的MR中,这样它就不会过提前和master合并。

由于SNMP字符串的更改很小,所以可以直接在浏览器上通过Web IDE进行在线编辑,而无需本地操作。打开CI/CD演示部分,转到Ansible Playbook,并编辑SNMP部分,使其显示为:

-snmp-server community New-SNMP-DEMO1 RO

-snmp-server community Fun-SNMP-RW-STR RW

请注意,根据问题中概述的GitLab安全策略,RO和RW要设置为不同的字符串。

提交更改

更新SNMP字符串后,直接提交更改。提交后,打开该更改的并排比较,查看确认MR已经包含了新提交的更新。并排比较工具是一种方便快捷的浏览更新的可视化工具。

4473170b903d78cf799c35ba17112daa.png

测试执行

更改提交,会自动启动GitLab CI管道,执行以下任务:

语法检查

试运行

测试实验室/模拟环境的变化。

可以在GitLab CI管道中查看每个作业的进度和输出,以便执行SNMP更新。

90678b5d8f143329c90dd2c41ec32586.png

查看作业的输出,显示模拟环境中的SNMP更新成功。

7b318305295f479cb4e9bc004e69e89a.png

复选标记表示GitLab CI管道中的每个任务都已通过。接下来可以登录实验室路由器并查看更改。

e718ed624ed98f0b4b09d6140afaee15.png

RO和RW SNMP字符串的更改将反映在路由器中。

MR审查

该步骤是进行MR审查,需要对MR进行审批后才合并,可以预先检查提交的MR是否存在问题。

a1bd02172eb6fe82c3082f46de5d9e6d.png

合并到主分支

测试无误后,可以将更改合并到master主分支中。通过主分支来更新生产环境,这是Git流程中通用的惯例。

一切准备就绪后,单击"解决正在进行的工作"按钮。然后单击"合并"。这样修改WIP状态后,就可以进行MR合并操作,并结束问题。

新管道将在生产环境中运行playbook设置的各任务步骤,执行的所有测试。可以从管道屏幕查看进度和日志。完成此过程后,可以用同样的方法登录生产路由器并查看SNMP安全字符串是否已得到更新。

GitLab CI

整个过程都可以通过GitLab CI完成,而无需任何本地操作(除了登陆验证结果)。 GitLab CI管道是一系列栈式任务,可以执行测试和实现Ansible代码所需的一切。

GitLab CI中支持一个简单的YML配置文件,该文件位于存储库中,名为.gitlab-ci.yml,可通过Gitlab文件创建模版创建,并根据实际情况修改。本演示实例中的.gitlab-ci.yml文件包含三个阶段。

部署:这将在AWS中使用Ansible创建双路由器仿真网络。

演示:这将执行将更改SNMP字符串的playbook。

销毁:删除双路由器仿真网络。

4c99e585fcd639d0490168307a5e09ee.png

GitLab CI以基本镜像开始,在该实例中使用的Docker镜像已经包含所有必需的Ansible二进制文件和所有网络依赖项。在每个阶段执行运行的命令以及必要时的依赖关系。

下面是查看GitLab CI的演示阶段代码,它执行Ansible playbook

310876d8c995349f4ab8a009144ef93f.png

总结

本文通过对Gitlab CI管道进行了深入了解,展示利用GitLab CI 基础架构即代码的实例,无需安装任何依赖项目就可以创建一个路由器实验环境。这只是GitLab CI如何用于执行基础架构作为代码的一个示例。更多实例请查看gitlab的官方示例文档。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Jenkins、AnsibleGitLab都是软件开发和运维中常用的工具。 Jenkins是一款开源的持续集成工具,可以自动化构建、测试和部署软件。它可以与各种版本控制系统集成,如Git、SVN等,也可以与各种构建工具集成,如Maven、Gradle等。 Ansible是一款开源的自动化运维工具,可以用来自动化部署、配置和管理服务器。它使用SSH协议进行通信,可以轻松地管理大量服务器。 GitLab是一款开源的代码托管平台,类似于GitHub。它提供了代码仓库、问题跟踪、持续集成等功能,可以帮助团队协作开发软件。 这三款工具可以结合使用,例如使用Jenkins进行持续集成和部署,使用Ansible进行自动化部署和配置,使用GitLab进行代码托管和问题跟踪。这样可以提高软件开发和运维的效率和质量。 ### 回答2: Jenkins、AnsibleGitlab都是常用的DevOps工具,它们各自担负着不同的角色。 Jenkins是一种开源的自动化构建和测试工具,可用于自动化构建、测试和部署应用程序。Jenkins可以与许多其他DevOps工具集成,如GitHub、Gitlab等。它可以监控代码库的变化并自动构建、测试和部署应用程序,从而提高应用程序的可靠性和质量。Jenkins还提供了许多插件,可以方便地扩展其功能。 Ansible是一种自动化IT工具,它可用于部署、配置和管理应用程序。它可以自动化整个应用程序的部署过程,包括从基础设施到应用程序的所有方面。使用Ansible,我们可以使我们的应用程序更加容易部署、维护和扩展。它还提供了可重复使用的脚本和模板,可以为我们节省很多时间和精力。 Gitlab是一种源代码管理工具,它可用于跟踪、管理和共享代码库。它配备了许多有用的功能,如源代码版本控制、问题跟踪、项目管理等。Gitlab还提供了API,可以方便地与其他工具集成,如Jenkins、Ansible等DevOps工具。 综上所述,Jenkins、AnsibleGitlab分别担负着自动化构建和测试、自动化部署和配置以及源代码管理和跟踪的角色。结合使用它们可以使我们的DevOps过程更加高效、可靠和可维护。 ### 回答3: Jenkins、AnsibleGitLab都是现代化的持续集成和持续部署(CI/CD)工具,它们具有自动化构建、部署和测试软件的能力,可以显著提高开发团队的效率和软件的质量。 Jenkins是一款功能强大的持续集成工具,它支持各种项目类型,包括Java、.NET、Ruby、Python等,并且提供了大量的插件来扩展功能。Jenkins可以自动构建项目、运行单元测试、生成报告、发布到服务器等。同时,Jenkins还支持分布式构建,可以将构建任务分发到多台计算机上,提高构建效率。 Ansible是一款轻量级的自动化部署工具,它可以通过SSH协议远程管理多个服务器,并执行各种任务,例如应用程序部署、配置管理、负载均衡等。Ansible使用YAML语言编写任务,让配置和管理非常简单,并且可以自动化地部署更改,从而实现快速、可靠的软件部署。 GitLab是一款自托管的Git仓库管理工具,它可以帮助团队更好地管理版本控制,并且提供了CI/CD管道的能力。GitLab的CI/CD管道使用YAML语法编写,可以运行自定义的构建脚本,也可以利用Docker容器来管理应用程序的依赖项。 Jenkins、AnsibleGitLab可以集成使用,实现完整的CI/CD工作流。例如,Jenkins可以自动化构建、测试和打包应用程序,并将其发布到GitLab仓库。然后,使用Ansible自动化部署到生产服务器,并在部署过程中运行测试以确保应用程序的稳定性。集成这些工具可以让开发和运维团队更加协同工作,加速应用程序上线,提高软件质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值