Jenkins 是一款开源的自动化服务器,用于实现持续集成(CI)和持续交付/部署(CD)。它通过自动化构建、测试和部署流程,帮助团队快速、可靠地发布软件。
CI/CD 是软件开发中的核心实践:
- 持续集成(CI):频繁将代码合并到主分支,并自动运行测试,确保每次提交的代码质量。
- 持续交付(CD):在CI基础上,自动将代码打包为可部署版本,随时准备手动发布到生产环境。
- 持续部署(CD):进一步自动化,通过审核的代码自动发布到生产环境,无需人工干预。
Jenkins与CI/CD的关系:
Jenkins是支持CI/CD流程的工具,通过插件集成各类开发工具(如Git、Maven、Docker),实现从代码提交到部署的全流程自动化,提升效率并减少人为错误。
1.环境准备
1.1安装操作系统
此文以openeuler23.09为例,安装教程
1.2配置hostname
[root@localhost ~]# hostnamectl set-hostname jenkins
1.3配置ip
[root@jenkins ~]# nmcli connection modify ens32 ipv4.method manual ipv4.addresses "192.168.1.99/24" ipv4.gateway 192.168.1.254 ipv4.dns "8.8.8.8,114.114.114.114" connection.autoconnect yes
[root@jenkins ~]# nmcli connection up ens32
1.4配置yum源
[root@jenkins ~]# cd /etc/yum.repos.d/
[root@jenkins yum.repos.d]# mkdir bak
[root@jenkins yum.repos.d]# mv * bak/
[root@jenkins yum.repos.d]# cat > myopenEuler.repo << 'EOF'
[osrepo]
name=osrepo
baseurl=https://mirrors.huaweicloud.com/openeuler/openEuler-23.09/everything/x86_64/
enabled=1gpgcheck=1
gpgkey=https://mirrors.huaweicloud.com/openeuler/openEuler-23.09/everything/x86_64/RPM-GPG-KEY-openEulerEOF
[root@jenkins yum.repos.d]# yum clean all
[root@jenkins yum.repos.d]# yum makecache
1.5安装常用软件
[root@jenkins ~]# yum -y install wget tar
1.6安装JDK
#下载安装包,安装 Java 17 或 21
[root@jenkins ~]# wget https://download.oracle.com/java/17/archive/jdk-17.0.12_linux-x64_bin.tar.gz#解压安装包
[root@jenkins ~]# tar -xvf jdk-17.0.12_linux-x64_bin.tar.gz -C /usr/local#配置环境变量
[root@jenkins ~]# cat >> /etc/profile << "EOF"#Set for java
export JAVA_HOME=/usr/local/jdk-17.0.12
export PATH=$PATH:$JAVA_HOME/bin
EOF#让配置环境变量生效
[root@jenkins ~]# source /etc/profile#验证
[root@jenkins ~]# java -version
java version "17.0.12" 2024-07-16 LTS
Java(TM) SE Runtime Environment (build 17.0.12+8-LTS-286)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.12+8-LTS-286, mixed mode, sharing)
jenkins_89">2.安装jenkins
jenkins_91">2.1下载jenkins
[root@jenkins ~]# wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
jenkins_97">2.2启动jenkins
[root@jenkins ~]# mkdir /usr/local/jenkins
[root@jenkins ~]# mv jenkins.war /usr/local/jenkins/[root@jenkins ~]# nohup java -jar /usr/local/jenkins/jenk