Jenkins介绍
Jenkins 是一个开源的自动化服务器,广泛用于持续集成(CI)和持续交付(CD)的实践中。它帮助开发人员自动化构建、测试和部署过程,从而提高开发效率、代码质量和项目交付速度。通过丰富的插件支持、分布式构建以及强大的自动化功能,Jenkins能够满足各种复杂的DevOps需求。
1.Jenkins主要功能
持续集成(CI)
Jenkins允许开发人员频繁地将代码集成到主干中,通过自动构建和测试,及时发现和解决问题。这样可以减少集成的风险,提高开发效率。
持续交付(CD)
Jenkins不仅用于持续集成,还可以将构建好的应用自动部署到测试环境、生产环境等,帮助实现自动化的交付流程。
插件支持
Jenkins拥有丰富的插件生态系统,可以与各种工具和服务集成,如版本控制系统(Git、SVN)、构建工具(Maven、Gradle)、容器(Docker、Kubernetes)等。
分布式构建
Jenkins支持分布式构建,可以将构建任务分配给多台机器,提升构建效率,减少构建时间。
可扩展性
由于Jenkins是开源的,用户可以根据自己的需求开发插件和功能,满足不同项目的要求。
自动化任务
Jenkins可以用来自动化许多任务,如代码质量检查、部署、通知、数据库迁移等。通过配置"Job",用户可以设置一系列任务来实现自动化。
2. Jenkins的工作原理
Jenkins的工作流程通常包括以下几个步骤:
代码提交(触发器)
当开发人员将代码提交到版本控制系统(如Git)时,Jenkins会监听版本库中的变更事件,触发自动构建和测试。
构建(Build)
Jenkins会从版本控制系统拉取最新的代码,并使用指定的构建工具(如Maven、Gradle等)编译和打包代码。
自动化测试(Test)
在构建完成后,Jenkins会自动执行单元测试、集成测试等,以验证代码是否正确,确保没有破坏现有功能。
部署(Deploy)
Jenkins可以将经过测试的构建自动部署到开发、测试、预生产或生产环境,减少人工干预,提高交付效率。
通知(Notify)
Jenkins能够通过邮件、Slack、Webhook等方式通知相关人员构建和部署的状态。
Jenkins的安装
1.基础环境准备
由于Jenkins对CentOS系统关闭了维护,为确保实验的可行性以及长远角度看,本文实验不再使用CentOS7系统,选择Rocky9系统作为实验系统。
关闭防火墙与selinux:
[root@localhost ~]# systemctl stop firewalld && systemctl disable firewalld Removed "/etc/systemd/system/multi-user.target.wants/firewalld.service". Removed "/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service". [root@localhost ~]# setenforce 0 |
替换阿里云yum源:
[root@jenkins .ssh]# sed -e 's|^mirrorlist=|#mirrorlist=|g' \ -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \ -i.bak \ /etc/yum.repos.d/[Rr]ocky*.repo |
2. 安装JDK
Jenkins是基于java编写的软件,所以在安装之前需要在主机上安装Java的运行环境,及安装jdK,我们选择安装JDK17版本
[root@localhost ~]# wget https://download.oracle.com/java/17/archive/jdk-17.0.6_linux-x64_bin.rpm |
[root@localhost ~]# yum install -y jdk-17.0.6_linux-x64_bin.rpm |
3. 安装Jenkins
添加yum源文件:
[root@localhost ~]# vi /etc/yum.repos.d/jenkins.repo [jenkins] name=Jenkins baseurl=http://pkg.jenkins.io/redhat gpgcheck=0 |
安装Jenkins
[root@localhost ~]# yum -y install jenkins |
4. 启动Jenkins
[root@localhost ~]# systemctl start jenkins #自体缺失问题:下载字体 yum groupinstall -y "Fonts" yum install -y xorg-x11-fonts-* |
查看端口:
5. 浏览器初始化Jenkins
浏览器访问http://192.168.100.10:8080/
需要解锁Jenkins,密码存放在/var/lib/jenkins/secrets/initialAdminPassword之下,复制添加即可。
[root@localhost ~]# cat /var/lib/jenkins/secrets/initialAdminPassword d9c12316f3ea4b568bb0d5fa1d8417e9 |
选择安装推荐的插件,并等待安装:
插件安装完成后,会出现“创建第一个管理员用户”页面,填写正确信息后,点击“保存并完成”,这样第一个管理员用户就创建完毕了
至此,Jenkins的基础安装完成。
Jenkins 推送镜像至Harbor仓库
1 .搭建Docker
[root@jenkins ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo [root@jenkins ~]# dnf -y install docker-ce |
添加镜像加速
[root@jenkins ~]# vi /etc/docker/daemon.json { "registry-mirrors": [ "https://rtgofewn.mirror.aliyuncs.com", "https://docker.m.daocloud.io"], "exec-opts": ["native.cgroupdriver=systemd"] } [root@jenkins ~]# systemctl daemon-reload [root@jenkins ~]# systemctl restart docker |
2. 搭建Harbor仓库
安装Docker-compose
[root@Jenkins harbor]# curl -L "https://github.com/docker/compose/releases/download/v2.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 下载Docker-compose二进制文件 |
[root@docker Jenkins]# chmod +x /usr/local/bin/docker-compose赋予执行权限 |
上传文件:harbor-offline-installer-v2.1.3.tgz
解压文件:
[root@jenkins ~]# tar -zxvf harbor-offline-installer-v2.1.3.tgz -C /usr/local/ [root@jenkins ~]# cd /usr/local/harbor/ 上传镜像 修改配置文件: [root@jenkins harbor]# cp harbor.yml.tmpl harbor.yml [root@jenkins harbor]# vi harbor.yml |
在镜像加速文件添加仓库地址:
[root@jenkins harbor]# vi /etc/docker/daemon.json { "registry-mirrors": [ "https://rtgofewn.mirror.aliyuncs.com", "https://docker.m.daocloud.io"], "insecure-registries":["192.168.100.10"], "exec-opts": ["native.cgroupdriver=systemd"] } [root@jenkins ~]# systemctl daemon-reload [root@jenkins ~]# systemctl restart docker |
安装Harbor仓库
[root@jenkins harbor]# docker load -i harbor.v2.1.3.tar.gz [root@jenkins harbor]# ./prepare [root@jenkins harbor]# ./install.sh |
启动成功后可以使用Docker命令检查一下容器是都正常启动.
浏览器登陆harbor仓库:ip
初始账户admin,Harbor12345登陆账户
3. 创建Dockerfile
[root@jenkins ~]# mkdir /dockerfile/ [root@jenkins ~]# cd /dockerfile/ [root@jenkins dockerfile]# vi dockerfile FROM nginx:latest LABEL maintainer="1550988597@qq.com" EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] #构建一个简单的镜像用于实验 |
4. 创建项目
新建一个项目
设置源码管理
gitee的一个开源仓库即可
新建Build Steps
增加命令:
#进入DockerFile目录 cd /dockerfile #登陆Harbor仓库 docker login 192.168.100.10 -u admin -p Harbor12345 #创建镜像 docker build -t hzynginx:latest . #给镜像打标签 docker tag hzynginx:latest 192.168.100.10/jenkins/hzynginx:latest #上传镜像 docker push 192.168.100.10/jenkins/hzynginx:latest |
应用并保存。
5. 构建项目并验证
构建项目:
进入Harbor仓库进行验证:
上传成功。
本篇文章至此结束,各位债见。