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的官方示例文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值