Devops 初探,JenKins安装,配置关联gitee

Devops 是什么

DevOps即Development和Operations的组合词,是一组过程、方法与系统的统称,用于促进开发应用程序或软件工程、技术运营和质量保障QA部门之间的沟通、协作与整合。

DevOps是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化,它促进开发和运营团队之间的协作,以自动化和可重复的方式更快地将代码部署到生产中。

DevOps有助于提高组织提供应用程序和服务的速度。它使组织能够更好地为客户服务,并在市场中更有竞争力。

简而言之,DevOps可以定义为开发和IT运营的一致性,以及更好的沟通和协作。

如图

image-20220602175601380

为什么需要DevOps

在DevOps之前:

● 开发和运营团队完全孤立。

● 测试和部署是在设计构建之后完成的独立活动。因此,他们比实际构建周期消耗更多时间。

● 在不使用DevOps的情况下,团队成员将大量时间花在测试,部署和设计上,而不是构建项目。

● 手动代码部署会导致生产中出现人为错误

● 开发和运营团队有各自的时间表,不同步导致进一步的延误。

在DevOps 模式下,开发团队和运营团队都不再是“孤立”的团队。有时,这两个团队会合为一个团队,他们的工程师会在应用程序的整个生命周期(从开发测试到部署再到运营)内相互协作,开发出一系列不限於单一职能的技能。

devops的目的

  • DevOps 突出重视软件开发人员和运维人员的沟通合作,通过自动化流程来使得软件构建、测试、发布更加快捷、频繁和可靠。

  • DevOps 希望做到的是软件产品交付过程中 IT 工具链的打通,使得各个团队减少时间损耗,更加高效的协同工作。

CI 、CD 是什么?

  • 持续集成(Continuous Integration):持续集成是指软件个人研发的部分向软件整体部分交付,频繁进行集成以便更快、更早的发现其中的错误。持续集成源自于极限编程(XP),是 XP 最初的 12 种实践之一。持续集成需要具备

    • 全面的自动化测试:这是实践持续集成 && 持续部署的基础,与此同时,选择合适的自动化测试工具也极为重要。
    • 灵活的基础设施容器、虚拟机 的存在让开发人员和 QA 人员不必再大费周折。
    • 版本工具工具:如 Git、SVN 等。
    • 自动化的构建和软件发布流程工具:如 Jenkins 等。
    • 反馈机制:构建、测试失败的时候,可以快速的反馈到相关负责人,以便尽快的解决问题,使得产品能更早的达到稳定的版本。
  • 持续交付(Continuous Delivery):持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的『类生成环境』中。持续交付优先于整个产品生命周期的软件部署,建立在高水平自动化持续集成之上。持续交付的优点和持续集成非常类似:

    • 快速发布:能够应对业务需求,更快的实现软件价值。
    • 编码、测试、上线、交付的频繁迭代周期缩短,同时获得迅速反馈。
    • 高质量的软件发布标准:整个交付过程标准化、可重复、可靠。
    • 整个交付过程进度可视化:方便团队人员了解项目成熟度。
    • 更先进的团队协作方式:从需求分析、产品的用户体验到交互设计、开发、测试、运维等角色的密切协作,相比于传统的瀑布式软件团队,更少浪费。
  • 持续部署(Continuous Deployment):持续部署是指当交付的代码通过评审之后,自动部署到生产环境中。持续部署是持续交付的最高阶段。这意味着,所有通过了一系列的自动化测试的改动都将自动部署到生产环境。

开发人员提交代码,持续集成服务器获取代码,执行单元测试,根据测试结果决定是否部署到预演环境,如果成功部署到预演环境,进行整体验收测试,如果测试通过,自动部署到生产环境。整个过程自动化高效运转。

推荐常用的CI/CD工具

Jenkins

专业的CI/CD工具,可扩展自动化服务器、安装配置简单、丰富的插件库、分布式架构设计、支持所有的平台、可视化的管理页面。

images

GitLab

端到端DevOps工具,常用功能:代码审查、问题跟踪、动态订阅、易于扩展、项目wiki、多角色项目管理、项目代码在线编译预览、CI/CD工具集成。

images

提交合并代码集成 :通过git push 进行操作或者在GitLab Web页面操作。

发布应用到服务器 : 获取制品库中的应用,然后用salt、ansible发布部署到服务器。

完全自动化: 提交代码-> 构建部署 -> 发布

gitlab虽然强大但是过于庞大,并且gitlab一般是用于git私有存储库来使用,所以这里还是使用Jenkins

Jenkins

Docker 安装 Jenkins

# 端口是 8080
docker run      \
       -u root  \
       --name=jenkins  \
       -d \
       -p 8080:8080 \
       -p 50000:50000 \
       -v jenkins-data:/var/jenkins_home \
       -v /etc/localtime:/etc/localtime:ro \
       -v /var/run/docker.sock:/var/run/docker.sock \
       --restart=always \
       jenkinsci/blueocean

image-20220602182123077

初始化Jenkins

等待安装完成即可,安装完毕之后通过 浏览器访问如我的

http://192.168.176.100:8080

image-20220602182325544

这个密码,在日志可以找到

docker logs jenkins

image-20220602182511696

已经找到了密码,输入密码即可进去

image-20220602182609473

安装插件

image-20220606094003930

image-20220606094453865

创建管理员用户

image-20220606094654919

配置实例,一般会自己获取,没有获取就自己填写

image-20220606094801974

完成重启

image-20220606094844971

刷新页面,用刚刚创建的管理员用户登录

image-20220606095327907

这下就进去了

image-20220606095430624

安装插件

  • Docker、Docker Pipeline:安装 Docker Pipeline 会自动安装 Docker 插件,Docker Pipeline 插件允许我们自定义 agent 使用 Docker 环境。

  • Git Parameter:解析 git 参数,允许我们选择分支进行构建。

  • Active Choices:可以做到参数的级联选择。

  • Generic Webhook Trigger:通用的 webhook 触发器,构建更强大的 webhook 功能。

  • Role-based Authorization Strategy:RBAC 权限控制。

  • List Git Branches Parameter:列出分支参数。

  • Build With Parameters:基于自定义参数构建。

  • Jersey 2 APIGitee:Gitee 插件。

image-20220606095705070

image-20220606095814384

docker系列

image-20220606095959828

git系列

image-20220606101929099

后面就不一一演示了,上面几个插件都要安装

安装完成后勾选重启,重启完成即可

准备git 项目并配置Jenkis 关联 Gitee

以 gitee 为例,因为 github 实现是太慢了,自己随便建一个项目

这里我也是随便建了一个

https://gitee.com/makalochen/devop-test

Jenkis 关联 Gitee

申请gitee私人令牌

image-20220606100622788

image-20220606100751128

image-20220606100847830

Jenkins 配置 Gitee API 令牌

image-20220606101307607

image-20220606101339157

image-20220606101409630

image-20220606101432554

image-20220606101455053

image-20220606104553385

image-20220606104610341

Jenkins 配置关联 Gitee

image-20220606104758045

下划找到gitee配置

image-20220606105052965

最后别忘了保存

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章