centos7环境搭建Jenkins平台
概述
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安装插件
- K8s集群远程连接配置Kubernetes 地址Kubernetes 服务证书 key凭据Jenkins 地址Jenkins 通道
- Pod Templates 配置名称标签列表Container Template工作空间卷
- 验证远程连接
四、Jenkins并行构建
1. 并行构建是个什么玩意?
Jenkins构建项目工程的时候,往往一般我们会采用以下几个基本步骤。
- 拉代码
- 编译项目
- 代码质量检查
- 单元测试
-
基于K8s云原生Jenkins高可用设计思路(下)
一、回顾上篇主要概括地说了一下如何实现基于K8s云原生架构下Jenkins如何实现高可用的
-
下一篇
实战内容
本次实战要体验Jenkins集群同时执行两个任务,都是编译构建GitHub上的热门开源项目:
- 在agent1上编译和构建spring-cloud-alibaba,再通过scp命令将构建结果传输到master电脑的/usr/local/build_result目录下;
- 在agent2编译和构建spring-framework,再通过scp命令将构建结果传输到master电脑的/usr/local/build_result目录下;
准备工作
要做以下准备工作才能顺利执行后续的任务:
- 在master电脑上创建文件夹/usr/local/build_result
- 配置maven,在Jenkins网页上选择Global Tool Configuration,如下图红框所示:
- 新增一个maven配置,名为mvn-3.6.2,然后点击保存按钮,如下图:
- agent1和agent2上用scp命令传输文件到master上的时候,第一次ssh要在控制台输入"yes",为了避免执行任务的时候出现这个等待输入的操作,我们去手动执行一遍,后面就再也不用了,ssh登录agent1之后,执行以下命令进入容器:
docker exec -it agent /bin/bash
-
Jenkins集群下的pipeline实战
关于Jenkins集群