1987WEB视界-分享互联网热门产品和行业

您现在的位置是:首页 > WEB开发 > 正文

WEB开发

centos7环境搭建Jenkins平台

1987web2023-10-06WEB开发152

概述

Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。本文以 CentOS7 环境为例,简单介绍下jenkins。


1、安装 Jenkins

官网: https://jenkins.io/

1.1 安装 JDK/Maven

Jenkins 自身采用 Java 开发,所以要必须安装 JDK;

本文集成的项目基于 Maven 构架,所以 Maven 也必须安装;

export JAVA_HOME=/usr/java/jdk1.8.0_111
export MAVEN_HOME=/usr/local/apache-maven-3.3.9

1.2 安装 Jenkins

以下2种方法任选一种,推荐第一种。

1.2.1 离线安装

wget http://pkg.jenkins-ci.org/redhat/jenkins-2.39-1.1.noarch.rpm  下载(也可以Windows下载再转过来)
sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins.io.key  公钥
sudo yum -y install jenkins-*.noarch.rpm

1.2.2 在线安装

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
sudo yum -y install jenkins

1.3 调整配置文件

sudo vim /etc/sysconfig/jenkins
JENKINS_USER="root"  原值 "jenkins" 必须修改,否则权限不足
JENKINS_PORT="8080"  原值 "8080" 可以不修改
 还有开启 HTTPS 相关参数,此处不打算开启,故不作说明

安装目录: /usr/lib/jenkins

工作目录: /var/lib/jenkins(对应于环境变量 JENKINS_HOME)

1.4 启动

sudo systemctl enable jenkins
sudo systemctl restart jenkins

查看日志文件: sudo tail -f/var/log/jenkins/jenkins.log

启动后会生成文件hudson.model.UpdateCenter.xml,需要修改它,

否则浏览器首次进入时会卡在Jenkins 正在启动,请稍后…

sudo cat /var/lib/jenkins/hudson.model.UpdateCenter.xml
sudo sed -i s/updates.jenkins-ci.org/mirror.xmission.com\/jenkins\/updates/g /var/lib/jenkins/hudson.model.UpdateCenter.xml
sudo cat /var/lib/jenkins/hudson.model.UpdateCenter.xml
sudo systemctl restart jenkins

1.5 防火墙放行

sudo vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
 重启生效: sudo systemctl restart iptables

2、测试访问

浏览器进入 http://centos:8080/

首次进入需要输入初始密码来解锁,初始密码查看方法: sudo cat/var/lib/jenkins/secrets/initialAdminPassword


目前大多数公司都是用jenkins来实现代码一键构建,大家也可以在自己虚拟机搭一套平台模拟,后面会分享更多关于devops方面的内容,感兴趣的朋友可以关注下!!

上图中,不难发现,我们这里的Jenkins Master是大脑,控制分配任务,3个Slave扮演的是Worker的角色,分布在不同的Node节点的Pod内。

那么回到我们这个话题上来,上图中,使用Jenkins的K8s插件为了就是要实现上图的分布式Slave通信机制。下图中,清晰地描述了这个思路,细心的朋友能发现纹身这波操作可以帮助我们节约不少服务器资源。

This is why we should use k8s plugin to implement dynamic M-S architecture of Jenkins.

3. 使用方法

这里我就简单说几个步骤,具体的如何去配置K8s插件的问题,百度上有很多帖子,这里就不浪费大家时间了。

四、Jenkins并行构建

1. 并行构建是个什么玩意?

Jenkins构建项目工程的时候,往往一般我们会采用以下几个基本步骤。

实战内容

本次实战要体验Jenkins集群同时执行两个任务,都是编译构建GitHub上的热门开源项目:

  1. 在agent1上编译和构建spring-cloud-alibaba,再通过scp命令将构建结果传输到master电脑的/usr/local/build_result目录下;
  2. 在agent2编译和构建spring-framework,再通过scp命令将构建结果传输到master电脑的/usr/local/build_result目录下;

准备工作

要做以下准备工作才能顺利执行后续的任务:

docker exec -it agent /bin/bash