Jenkins与CI/CD

这篇具有很好参考价值的文章主要介绍了Jenkins与CI/CD。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简介

CI(持续集成)

Continuous  Integration是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。

CD(持续交付)

Continuous Delivery一种软件工程方法,通过自动化构建、测试和部署过程,使软件在短时间内可靠、快速地交付给用户。

SCM(版本管理工具)

源码控制管理软件,版本控制;常用的有Git、SVN

Jenkins

概述

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

目标

持续、自动地构建/测试软件项目;监控软件开发流程,快速问题定位及处理,提高开发效率

特性

  • 易于安装:只要把jenkins.war部署到servlet容器,不需要数据库支持。
  • 易于配置:所有配置都是通过其提供的web界面实现。
  • 集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知。
  • 生成JUnit/TestNG测试报告。
  • 分布式构建支持Jenkins能够让多台计算机一起构建/测试。
  • 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。
  • 插件支持:支持扩展插件,你可以开发适合自己团队使用的工具。

实验(Jenkins+Maven+Gitlab+Tomcat)

准备

192.168.29.141【主机名Gitlab】——Gitlab16.0   代码管理

192.168.29.142【主机名Jenkins】——Jenkins2.401.1 + Maven3.9.2 + JDK11.0.13 + Git2.27   持续集成

192.168.29.143【主机名Tomcat】——Tomcat9.0.76 + JDK11.0.13  应用服务器

192.168.29.144【主机名Git】——Git2.27  模拟个人开发机

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Gitlab主机安装Gitlab

安装脚本;GItlab安装过程参考Git——分布式版本控制系统_git分布式版本控制_笔落_惊风雨的博客-CSDN博客

#!/bin/bash
yum install -y curl policycoreutils openssh-server openssh-clients
yum -y install postfix
systemctl enable --now postfix.service
curl -fsSL https://packages.gitlab.cn/repository/raw/scripts/setup.sh | /bin/bash
EXTERNAL_URL="http://192.168.29.141:8080" yum install -y gitlab-jh
#将默认的密码文件另外保存一份
cat /etc/gitlab/initial_root_password > gitlabPWD.txt
#处理访问Gitlab时的502错误
sed -i "s/^.*puma.*8080/puma['port'] = 8989/g" /etc/gitlab/gitlab.rb
gitlab-ctl reconfigure
gitlab-ctl restart

访问http://192.168.29.141:8080;用户名:root 密码:cat gitlabPWD.txt

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

创建组 exampleForJenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

创建一个项目 One

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

创建一个普通用户,作为开发组成员,后面Jenkins使用此用户wenzi从Gitlab拉取代码

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

也可使用root用户修改普通用户密码

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

把新用户加入到exampleForJenkins群组

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkinsJenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

邀请时设置新用户角色权限,也可先邀请后续再设置

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

  • Guest:访客;拥有最小的权限。可发表留言
  • Reporter:报告者;可clone代码,不能commit
  • Developer:开发者;可clone、commit、push等
  • Maintainer:维护者;可创建编辑项目、调整分支、调整项目成员等
  • Owner:所有者;拥有最大的权限;可调整所有成员权限、删除项目等

退出使用新用户wenzi登录Gitlab,查看自己是否能访问到项目

Git主机安装Git

[root@Git ~]#yum -y install git
#配置SSH秘钥
[root@Git ~]#ssh-keygen
[root@Git ~]#cat .ssh/id_rsa.pub

将公钥复制到Gitlab中

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

#克隆Gitlab项目
[root@Git ~]#git clone git@192.168.29.141:exampleforjenkins/one.git
[root@Git ~]#cd one/
[root@Git one]#ll
total 8
-rw-r--r-- 1 root root 6214 Jun 24 03:19 README.md
[root@Git one]#echo "123" >  test1.txt
[root@Git one]#git config --global user.email "邮箱@qq.com"
[root@Git one]#git config --global user.name "wenzi"
[root@Git one]#git add test1.txt 
[root@Git one]#git commit -m "This is test"
[root@Git one]#git push origin main
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 277 bytes | 277.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
To 192.168.29.141:exampleforjenkins/one.git
   a55b791..0015149  main -> main

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

踩坑:

[root@Git one]#git push origin main
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 277 bytes | 277.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
remote: GitLab: You are not allowed to push code to protected branches on this project.
To 192.168.29.141:exampleforjenkins/one.git
 ! [remote rejected] main -> main (pre-receive hook declined)
error: failed to push some refs to '192.168.29.141:exampleforjenkins/one.git' 

Jenkins受保护的分支默认Developer没有权限push。

使用root登录Gitlab,进入项目——settings——Repository——Protected branches,在Allowed to push and merge中勾选Developer+Maintainer

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

 Tomcat主机安装Tomcat

#安装jdk11
[root@Tomcat ~]#ll
total 175796
-rw-------. 1 root root      1279 May 15 01:30 anaconda-ks.cfg
-rw-r--r--  1 root root  11677655 Jun 23 10:10 apache-tomcat-9.0.76.tar.gz
-rw-r--r--  1 root root 168329081 Jun 30 03:22 jdk-11.0.13_linux-x64_bin.tar.gz
[root@Tomcat ~]#tar -zx -f jdk-11.0.13_linux-x64_bin.tar.gz -C /usr/local/
[root@Tomcat ~]#ln -s /usr/local/jdk-11.0.13/ /usr/local/java
[root@Tomcat ~]#vim /etc/profile
...
#JDK11
JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
[root@Tomcat ~]#source /etc/profile
[root@Tomcat ~]#java --version 
java 11.0.13 2021-10-19 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.13+10-LTS-370)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.13+10-LTS-370, mixed mode)

#安装Tomca
[root@Tomcat ~]#tar -zx -f apache-tomcat-9.0.76.tar.gz -C /usr/local/
[root@Tomcat ~]#ln -s /usr/local/apache-tomcat-9.0.76/ /usr/local/tomcat
[root@Tomcat ~]#vim /etc/profile
...
#Tomcat
export CATALINA_HOME=/usr/local/tomcat
export PATH=$PATH:$CATALINA_HOME/bin
[root@Tomcat ~]#source /etc/profile
[root@Tomcat ~]#version.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java
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
Server version: Apache Tomcat/9.0.76
Server built:   Jun 5 2023 07:17:04 UTC
Server number:  9.0.76.0
OS Name:        Linux
OS Version:     4.18.0-193.el8.x86_64
Architecture:   amd64
JVM Version:    11.0.13+10-LTS-370
JVM Vendor:     Oracle Corporation

Jenkins主机安装Jenkins

配置Jenkins

官方文档Redhat Jenkins Packages

2.357(2022年6月)及更新的Java 11或Java 17

2.164(2019年2月)及更新的Java 8或Java 11

2.54(2017年4月)及更新的Java 8

1.612(2015年5月)及更新的Java 7

Jenkins默认端口8080;默认密码存储在 /var/lib/jenkins/secrets/initialAdminPassword

[root@Jenkins ~]#wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
[root@Jenkins ~]#rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
[root@Jenkins ~]#yum -y install fontconfig java-11-openjdk
[root@Jenkins ~]#yum -y install jenkins
[root@Jenkins ~]#systemctl enable --now jenkins.service
[root@Jenkins ~]#systemctl status jenkins.service 
● jenkins.service - Jenkins Continuous Integration Server
   Loaded: loaded (/usr/lib/systemd/system/jenkins.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2023-06-23 11:35:03 CST; 41s ago
 Main PID: 11433 (java)
    Tasks: 42 (limit: 4840)
   Memory: 340.7M
   CGroup: /system.slice/jenkins.service
           └─11433 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080

Jun 23 11:34:37 Jenkins jenkins[11433]: Jenkins initial setup is required. An admin user has been created and a password generated.
Jun 23 11:34:37 Jenkins jenkins[11433]: Please use the following password to proceed to installation:
Jun 23 11:34:37 Jenkins jenkins[11433]: 59753a60d30d415f9289bcce37d6430e
Jun 23 11:34:37 Jenkins jenkins[11433]: This may also be found at: /var/lib/jenkins/secrets/initialAdminPassword
Jun 23 11:34:37 Jenkins jenkins[11433]: *************************************************************
Jun 23 11:35:03 Jenkins jenkins[11433]: 2023-06-23 03:35:03.870+0000 [id=29]        INFO        jenkins.InitReactorRunner$1#onAttained: Completed initialization
Jun 23 11:35:03 Jenkins jenkins[11433]: 2023-06-23 03:35:03.941+0000 [id=22]        INFO        hudson.lifecycle.Lifecycle#onReady: Jenkins is fully up and running
Jun 23 11:35:03 Jenkins systemd[1]: Started Jenkins Continuous Integration Server.
Jun 23 11:35:08 Jenkins jenkins[11433]: 2023-06-23 03:35:08.949+0000 [id=44]        INFO        h.m.DownloadService$Downloadable#load: Obtained the updated data file for >
Jun 23 11:35:08 Jenkins jenkins[11433]: 2023-06-23 03:35:08.949+0000 [id=44]        INFO        hudson.util.Retrier#start: Performed the action check updates server succe>
#查看Jenkins默认密码
[root@Jenkins ~]#cat /var/lib/jenkins/secrets/initialAdminPassword

访问http://192.168.29.142:8080

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

根据提示设置管理员

Jenkins URL

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

配置Git

因为Jenkins需要从Gitlab拉取镜像

[root@Jenkins ~]#yum -y install git
[root@Jenkins ~]#which git
/usr/bin/git

配置Maven

可从阿里云镜像站下载 apache-maven-maven-3-3.9.2-binaries安装包下载_开源镜像站-阿里云

[root@Jenkins ~]#ll
total 9040
-rw-------. 1 root root    1279 May 15 01:30 anaconda-ks.cfg
-rw-r--r--  1 root root 9248920 Jun 23 14:36 apache-maven-3.9.2-bin.tar.gz
[root@Jenkins ~]#tar -zx -f apache-maven-3.9.2-bin.tar.gz -C /usr/local/
[root@Jenkins ~]#ln -s /usr/local/apache-maven-3.9.2/ /usr/local/maven
[root@Jenkins ~]#ll /usr/local/maven/
total 36
drwxr-xr-x 2 root root    97 Jun 23 14:37 bin
drwxr-xr-x 2 root root    76 Jun 23 14:37 boot
drwxr-xr-x 3 root root    63 May  8 17:04 conf
drwxr-xr-x 4 root root  4096 Jun 23 14:37 lib
-rw-r--r-- 1 root root 18652 May  8 17:04 LICENSE
-rw-r--r-- 1 root root  5036 May  8 17:04 NOTICE
-rw-r--r-- 1 root root  2533 May  8 17:04 README.txt

#配置环境变量
[root@Jenkins ~]#vim /etc/profile
...
#maven
export MAVEN_HOME=/usr/local/maven
export PATH=$PATH:$MAVEN_HOME/bin
[root@Jenkins ~]#source /etc/profile
[root@Jenkins ~]#mvn --version
Apache Maven 3.9.2 (c9616018c7a021c1c39be70fb2843d6f5f9b8a1c)
Maven home: /usr/local/maven
Java version: 11.0.13, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-11-openjdk-11.0.13.0.8-4.el8_5.x86_64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "4.18.0-193.el8.x86_64", arch: "amd64", family: "unix"

Jenkins插件管理

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

不可操作的行是已经升级,等待重启的。灰暗但可以选择的行是正在升级或升级失败的。

本地语言包

Jenkins根据浏览器的语言显示文本。它可以检测internet浏览器的语言。

请注意,根据浏览器和语言的不同,您可能需要下载插件。

您还可以通过使用Locale插件更改系统语言(在执行构建时使用)以及所有用户的用户界面语言。

在【安装推荐的插件】步骤时,自动安装了中文语言包

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

也可以自己再次安装Locale插件,选择 install without restart

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Credentials相关

凭据相关插件,在【安装推荐的插件】步骤时,已自动安装

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Role-based Authorization Strategy

使用基于角色的策略,启用用户授权,角色可全局定义 。Jenkins Role-based Authorization Strategy基于角色的访问权限控制_运维@小兵的博客-CSDN博客

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Git client

为Jenkins插件提供Git接口。fetch, checkout, branch, list, merge, tag

GitClient接口为git访问提供了主要入口点。它支持使用HTTP和HTTPS协议访问git存储库的用户名/密码凭证(例如,https://github.com/jenkinsci/git-client-plugin或https://git.example.com/your-repo.git)。它支持使用SSH协议访问git存储库的私钥凭证(例如,git@github.com:jenkinsci/git-client-plugin.git或SSH://git@github.com/jenkinsci/git-client-plugin.git)。凭证支持是由Jenkins Credentials Plugin提供的。

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Git

为Jenkins项目提供基本的Git操作。poll, fetch, checkout, branch, list, merge, tag, push

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Gitlab

允许Gitlab触发Jenkins构建并在Gitlab UI中显示

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Gitlab API

为其它插件提供Gitlab API

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Maven Integration

Jenkins利用Maven编译打包所需插件

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins
Deploy to container

项目构建后可选择Deploy war/ear to a container自动化将生成的war部署到Tomcat容器;

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Publish Over SSH

项目构建后可选择Send build artifacts over SSH将编译好的war/jar文件上传到远程linux指定的目录下,在远程执行脚本将拷贝的文件复制到tomcat的webapps文件夹下,重启tomact。

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

系统配置

tools工具

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

同时修改maven配置文件 /usr/local/maven/conf/settings.xml 中的maven本地仓库位置和maven下载jar包的源;Jenkins主机创建maven本地仓库目录 /jenkins/maven/repo

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

JDK,若配置有多个JDK,继续新增JDK。不勾选自动安装。按照官方安装步骤,在安装Jenkins时安装了JDK11,家目录位于/usr/lib/jvm/java-11-openjdk-11.0.13.0.8-4.el8_5.x86_64

[root@Jenkins ~]#vim /etc/profile
...
#JDK11
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.13.0.8-4.el8_5.x86_64

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Maven

[root@Jenkins ~]#vim /etc/profile
...
#JDK11
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.13.0.8-4.el8_5.x86_64

#MAVEN
export MAVEN_HOME=/usr/local/maven/
export PATH=$PATH:$MAVEN_HOME/bin

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Git

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

credential凭据

用来存储第三方应用的Gitlab、GitHub、Docker等的密码、秘钥、证书等,以便和其交互

Jenkins凭证/凭据管理详解_jenkins 凭据_运维@小兵的博客-CSDN博客

Jenkins主机创建秘钥,将公钥配置到Gitlab中,将私钥配置到Jenkins中

Gitlab配置公钥

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins配置私钥 

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

使用 SSH username with private key

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

给Jenkins指定项目地址

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

若出现红字报错

Failed to connect to repository : Command "git ls-remote -h git@xxx.git HEAD" returned status code 128:
stdout:
stderr: Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rightsand the repository exists.

设置如下

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

若还不行,可尝试登录Jenkins主机,切换到Jenkins用户,使用Jenkins用户生成秘钥,将公钥配置到Gitlab中。

​​​​Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins存放秘钥位置: /var/lib/jenkins/.ssh

#将秘钥复制到Jenkins下
[root@Jenkins ~]#cd /var/lib/jenkins/.ssh/
[root@Jenkins .ssh]#cp /root/.ssh/id_rsa ./
[root@Jenkins .ssh]#chown jenkins:jenkins id_rsa 
[root@Jenkins .ssh]#ll
total 8
-rw------- 1 jenkins jenkins 2602 Jul  1 13:15 id_rsa
-rw-r--r-- 1 jenkins jenkins  176 Jun 30 07:09 known_hosts

#将公钥传送至Tomcat
[root@Jenkins ~]#ssh-copy-id -i .ssh/id_rsa.pub root@192.168.29.143
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: ".ssh/id_rsa.pub"
The authenticity of host '192.168.29.143 (192.168.29.143)' can't be established.
ECDSA key fingerprint is SHA256:xSb6S5d6vUXcMbChlCKJyoCAQHH1hqHuH+tm+pV1Elk.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.29.143's password: 

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'root@192.168.29.143'"
and check to make sure that only the key(s) you wanted were added.

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

最终测试

重建Gitlab项目,文件https://github.com/bingyue/easy-springmvc-maven

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

在控制台输出中可以看到详细信息 

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

构建成功,验证各个文件

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins

Jenkins与CI/CD,运维工具,# Jenkins,linux,运维,jenkins文章来源地址https://www.toymoban.com/news/detail-526705.html

到了这里,关于Jenkins与CI/CD的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • jenkins容器内CI/CD 项目失败问题

    1.1 原因:jenkins容器内: docker.sock 权限 1.2 问题解决方案 文件权限如下: srw-rw---- 1 root 994 0 Jun 30 06:51 docker.sock 进行权限修改 最终权限修改成功为:srw-rw-rw- 1 root root 0 Jun 30 06:51 docker.sock 2.1 问题原因 项目为前端vue,依赖于nodejs 和 npm, 需要为容器安装npm, nodejs 2.2 问题解决方

    2024年02月13日
    浏览(16)
  • 基于 Jenkins 搭建一套 CI/CD 系统

    基于 Jenkins 搭建一套 CI/CD 系统

    一、CI/CD环境介绍 本次要实现如下效果,开发人员完成功能开发并提交代码到gitlab仓库,jenkins自动完成拉取代码、编译构建、代码扫描(sonarqube)、打包,再自动化完成部署到Tomcat服务器提供访问。 环境准备三台Centos7.6机器: 服务器 IP地址 配置 包含功能及版本 Gitlab 192.1

    2024年03月13日
    浏览(43)
  • Jenkins CI/CD 持续集成专题三 Jenkins 使用shell脚本打包组件配置流程

    Jenkins CI/CD 持续集成专题三 Jenkins 使用shell脚本打包组件配置流程

    第六步 查看编译状态和产物 到这里,jenkins 配置shell脚本打包组件的完整配置流程就已经完成

    2024年04月29日
    浏览(12)
  • gitlab+jenkins+harbor实现CI/CD(2)——初级

    gitlab+jenkins+harbor实现CI/CD(2)——初级

    git安装 jenkins主机上安装docker-ce 配置仓库证书 测试 创建项目 创建一个freestyle project 在jenkins主机获取密钥 在gitlab上传公钥 在jenkins上传私钥 输入测试命令后保存 点击立即构建 查看控制台输出 工作路径 构建触发器,定时触发 安装插件 gitlab和 Cloudbee docker 配置gitlab 在网络设

    2024年02月09日
    浏览(14)
  • 【CI/CD】基于 Jenkins+Docker+Git 的简单 CI 流程实践(上)

    【CI/CD】基于 Jenkins+Docker+Git 的简单 CI 流程实践(上)

    在如今的互联网时代,随着软件开发复杂度的不断提高,软件开发和发布管理也越来越重要。目前已经形成一套标准的流程,最重要的组成部分就是 持续集成 及 持续交付、部署 。在此,我们在京东云上以一个案例简单实践下 CI 流程。 1.1 CI/CD 持续集成 (Continuous Integration,

    2024年02月13日
    浏览(19)
  • [Docker实现测试部署CI/CD----Jenkins集成相关服务器(3)]

    [Docker实现测试部署CI/CD----Jenkins集成相关服务器(3)]

             SonarScanner 是一种代码扫描工具,专门用来扫描和分析项目代码质量。扫描和分析完 成之后,会将结果写入到 SonarQube 服务器的数据库中,并在 SonarQube 平台显示这些数 据。         在 SonarQube 官网的帮助文档中可以下载 SonarScanner。这里下载一个 Linux 系统下使

    2024年02月14日
    浏览(14)
  • nodejs前端项目的CI/CD实现(二)jenkins的容器化部署

    nodejs前端项目的CI/CD实现(二)jenkins的容器化部署

    docker安装jenkins,可能你会反问,这太简单了,有什么好讲的。 我最近就接手了一个打包项目,它是一个nodejs的前端项目,jenkins已在容器里部署且运行OK。 但是,前端组很追求新技术,不断地升级Nodejs的版本,之前是14,现在需要升级到16。 也就是说,原本运行顺畅的打包不

    2024年01月20日
    浏览(15)
  • Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践

    Rancher2.7 + Jenkins CI/CD全流程保姆级最佳实践

    CI方面,官方推荐的视频教程等多是使用极狐Gitlab CI,但社区版极狐每月仅400分钟构造时间,额外购买价格为1000分钟/68元,而私有化部署极狐Gitlab对比部署使用Jenkins,具有更高的成本、更狭窄的适用面,且如果个人使用其代码仓库功能,并不比Gitee可靠。 Gitee 同样提供CI服务

    2024年02月05日
    浏览(13)
  • Jenkins分布式实现: 构建弹性和可扩展的CI/CD环境!

    Jenkins分布式实现: 构建弹性和可扩展的CI/CD环境!

    Jenkins是一个流行的开源持续集成(Continuous Integration,CI)和持续交付(Continuous Delivery,CD)工具,它通过自动化构建、测试和部署过程,帮助开发团队更高效地交付软件。Jenkins的分布式实现允许将任务分散到多个计算机上执行,从而提高系统的弹性和可扩展性。本文将深入

    2024年02月01日
    浏览(49)
  • Gitlab CI/CD笔记-第一天-GitOps和以前的和jenkins的集成的区别

    Gitlab CI/CD笔记-第一天-GitOps和以前的和jenkins的集成的区别

    一、GitOps-CI/CD的流程图与Jenkins的流程图 从上图可以看到: GitOps与基于Jennkins技术栈的CI/CD流程,无法从Jenkins集成其他第三方开源的项目来实现换成了Gitlab来进行集成。 好处在于:CI 一个工具Gitlab就行了,但CD部分依旧是传统的云主机(虚拟机),物理及,docker单机容器或者

    2024年02月14日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包