IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> CI/CD介绍与jenkins部署 -> 正文阅读

[系统运维]CI/CD介绍与jenkins部署

CI/CD介绍与jenkins部署

CI/CD简介

互联网软件的开发和发布,已经形成了一套标准流程,假如把开发工作流程分为以下几个阶段:

编码 --> 构建 --> 集成 --> 测试 --> 交付 --> 部署

在软件开发和运维领域,我们经常会听到很多概念,比如DevOps,持续集成(CI,Continuous Integration),持续交付(CD,Continuous Delivery),持续部署(CD,Continuous Deployment)等等。这些新的概念、方法论和工具的出现,主要是为了应对目前业务的挑战。主要是要求业务推出和运维即“快”又“稳”:

  • 快:比竞争对手更快的创新、试验和部署业务的能力。快速推出业务、快速获取反馈、快速迭代、快速试错。
  • 稳:快速、频繁地特性发布,同时保证业务和系统的稳定性、可用性和持久性。

下面我们稍微解释一下持续集成(CI,Continuous Integration),持续交付(CD,Continuous Delivery),持续部署(CD,Continuous Deployment)的概念。

  • 持续集成(CI,Continuous Integration):持续集成指的是,频繁地(一天多次)将代码集成到主干。持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。
  • 持续交付(CD,Continuous Delivery):持续交付指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。
  • 持续部署(CD,Continuous Deployment):持续部署是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。

三个概念:
持续集成CI: 代码合并,构建,部署,测试都在一起,不断的执行这个过程,并对结果进行反馈。

通过这个过程,在未上线前去反复测试,减少上线后出现bug的几率

持续部署CD: 部署到测试环境,预生产环境,生产环境。

持续交付:CD: 把最终的产品发布到生产环境中,让用户去使用,在使用的过程中反馈结果。

这个过程涉及到运维,开发,测试。

CI/CD的最终目的是为了减少人工干预,实现自动化,提高产品交付的效率和质量。

注意:发布前一定要备份文件

jenkins是什么?

? Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。

Jenkins的功能

Jenkins的主要功能是将项目中重复执行的工作自动化的执行。如软件的建造(构建)和在配置文件下设置的job。具体功能大概有:

1.软件的持续构建和测试,Jenkins提供了一个系统,使开发人员可以很容易的将改变集成到工程中。自动化的,持续的构建有利于提高开发效率。

2.监视job的执行,job可以实现很多的功能,Jenkins可以对这些项目进行显示,让用户更清楚的注意到这些损毁的job。

3.项目源代码修改的检测,jenkins能够从项目的Subversion/CVS生成最近修改的集合列表,且不会增加Subversion/CVS Repository的负载。

4.分布式构建,Jenkins可以将工程构建到多台机器,更好地利用硬件资源,节省时间。

其他,Jenkins代码开源,用户可以自己编写插件。所以jenkins可以实现很多的功能。

jenkins部署

安装jdk开发环境

[root@server2 ~]# yum -y install java-11-openjdk*
[root@server2 ~]# java -version
openjdk version "11.0.12" 2021-07-20 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.12+7-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.12+7-LTS, mixed mode, sharing)

下载包jenkins.war

https://get.jenkins.io/war-stable/2.303.2/jenkins.war

下载tomcat

[root@server2 ~]# wget https://archive.apache.org/dist/tomcat/tomcat-10/v10.0.12/bin/apache-tomcat-10.0.12.tar.gz

解压

[root@server2 ~]# tar xf apache-tomcat-10.0.12.tar.gz  -C /usr/local/tomcat
[root@server2 ~]# ls
anaconda-ks.cfg
apache-tomcat-9.0.54.tar.gz
jenkins.war

进入 /usr/local目录

[root@server2 local]# pwd
/usr/local
[root@server2 local]# ls
bin  games    lib    libexec  share  tomcat
etc  include  lib64  sbin     src

开启服务

[root@server2 tomcat]# /usr/local/tomcat/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@server2 tomcat]# ss -antl
State   Recv-Q  Send-Q          Local Address:Port                    Peer Address:Port                 
LISTEN  0       128                   0.0.0.0:22                           0.0.0.0:*                    
LISTEN  0       100                         *:8080                               *:*                    
LISTEN  0       128                         *:80                                 *:*                    
LISTEN  0       128                      [::]:22                              [::]:*                    
LISTEN  0       1          [::ffff:127.0.0.1]:8005                               *:*     

访问网页

在这里插入图片描述

关闭服务

[root@server2 ~]# /usr/local/tomcat/bin/shutdown.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
[root@server2 ~]# ss -antl
State    Recv-Q   Send-Q       Local Address:Port                     Peer Address:Port                 
LISTEN   0        128                0.0.0.0:22                            0.0.0.0:*                    
LISTEN   0        128                      *:80                                  *:*                    
LISTEN   0        128                   [::]:22                               [::]:*                    
[root@server2 ~]# ps -ef | grep  tomcat
root      154340   26434  0 22:00 pts/2    00:00:00 grep --color=auto tomcat

移动目录

[root@server2 tomcat]#  pwd
/usr/local/tomcat
[root@server2 tomcat]#  ls
BUILDING.txt     README.md      conf  webapps
CONTRIBUTING.md  RELEASE-NOTES  lib   work
LICENSE          RUNNING.txt    logs
NOTICE           bin            temp
[root@server2 tomcat]#  mv webapps/* /opt/
[root@server2 tomcat]#  cd  webapps/
[root@server2 webapps]# mkdir ROOT
[root@server2 webapps]# mv ~/jenkins.war .
[root@server2 webapps]# ls
ROOT  jenkins.war


访问网页

在这里插入图片描述

重启tomcat服务

[root@server2 ~]# /usr/local/tomcat/bin/shutdown.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
[root@server2 webapps]#  /usr/local/jenkins/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/jenkins
Using CATALINA_HOME:   /usr/local/jenkins
Using CATALINA_TMPDIR: /usr/local/jenkins/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/jenkins/bin/bootstrap.jar:/usr/local/jenkins/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@server2 webapps]# 
[root@server2 webapps]# 
[root@server2 webapps]# ls
ROOT  jenkins  jenkins.war   #会自动解压
[root@server2 webapps]# ss -antl
State   Recv-Q  Send-Q          Local Address:Port                    Peer Address:Port                 
LISTEN  0       128                   0.0.0.0:22                           0.0.0.0:*                    
LISTEN  0       128                      [::]:22                              [::]:*                    
LISTEN  0       1          [::ffff:127.0.0.1]:8005                               *:*                    
LISTEN  0       100                         *:8080                               *:*                    
LISTEN  0       128                         *:80                                 *:*                   

访问网页 192.168.131:8080/jenkins

在这里插入图片描述

查看密码

[root@server2 webapps]# cat /root/.jenkins/secrets/initialAdminPassword
cbc03f2a340b44cbad25ed48cdc8f155
[root@server2 webapps]# 

输入密码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-10-19 12:18:43  更:2021-10-19 12:19:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 19:43:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码