jenkins学习与实战

本文详细介绍了Jenkins的学习与实战,包括软件开发生命周期、服务器规划、Jenkins的安装(Windows与Linux系统)、节点安装、gitlab安装、Pipeline项目创建、Docker相关插件的使用(dockerfile-maven-plugin与docker-maven-plugin)以及Harbor私服的配置。文章强调了Docker化的部署和Pipeline自动化在持续集成与交付中的重要性。
摘要由CSDN通过智能技术生成

jenkins学习与实战

软件开发生命周期

软件开发生命周期又叫做SDLC(Software Development Life Cycle),它是集合了需求分析、设计、开发、测试和部署等过程的集合。

软件生命周期又称为软件生存周期或系统开发生命周期,是软件的产生直到报废的生命周期,周期内有问题定义、可行性分析、总体描述、系统设计、编码、调试和测试、验收与运行、维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班、逐步推进,每个阶段都要有定义、工作、审查、形成文档以供交流或备查,以提高软件的质量。但随着新的面向对象的设计方法和技术的成熟,软件生命周期设计方法的指导意义正在逐步减少。

生命周期的每一个周期都有确定的任务,并产生一定规格的文档(资料),提交给下一个周期作为继续工作的依据。按照软件的生命周期,软件的开发不再只单单强调“编码”,而是概括了软件开发的全过程。软件工程要求每一周期工作的开始只能必须是建立在前一个周期结果“正确”前提上的延续;因此,每一周期都是按“活动-结果-审核-再活动-直至结果正确”循环往复进展的。

大致分为如下各个阶段:

  • 需求分析

    这是生命周期的第一阶段,根据项目需求,团队执行一个可行性计划的分析。项目需求可能是公司内部或者客户提出的。这阶段主要是对信息的收集,也有可能是对现有项目的改善和重新做一个新的项目。还要分析项目的预算多长,可以从哪方面受益及布局,这也是项目创建的目标。

  • 设计

    第二阶段就是设计阶段,系统架构和满意状态(就是要做成什么样子,有什么功能),和创建一个项目计划。计划可以使用图表,布局设计或者文者的方式呈现。

  • 实现

    第三阶段就是实现阶段,项目经理创建和分配工作给开者,开发者根据任务和在设计阶段定义的目标进行开发代码。依据项目的大小和复杂程度,可以需要数月或更长时间才能完成。

  • 测试

    测试人员进行代码测试 ,包括功能测试、代码测试、压力测试等。 在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。

  • 运行及维护

    最后进阶段就是对产品不断的进化改进和维护阶段,根据用户的使用情况,可能需要对某功能进行修改,bug修复,功能增加等。

服务器规划

所有服务器都需要安装docker

主机名 主机IP 备注
jenkins-153 192.168.198.153 安装jenkins主节点
agent-154 192.168.198.154 安装jenkins工作节点
gitlab-152 192.168.198.152 安装gitlab
harbor-155 192.168.198.155 需提前安装harbor

jenkins安装

jenkins官网

https://www.jenkins.io/zh/

中文文档

https://www.jenkins.io/zh/doc/

window系统(不推荐)
自动部署

下载官网提供的msi文件即可

https://www.jenkins.io/download/thank-you-downloading-windows-installer-stable/

手动部署一
java -jar jenkins.war
手动部署二
1.部署tomcat9

2.在官网下载jenkins.war
http://mirrors.jenkins.io/war-stable/2.235.5/jenkins.war

3.将war包放入apache-tomcat-9.0.34\webapps\目录中

4.启动tomcat
cmd
cd apache-tomcat-9.0.34\bin\

执行 startup.bat 启动tomcat

5.访问jenkins
http://localhost:8080/jenkins
linux系统
直接安装jenkins(不推荐)
1.安装JDK8
yum install java-1.8.0-openjdk* -y

2.yum方式安装
wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

yum install jenkins

3.或者采用rpm方式安装:在清华大学镜像源下载jenkins的rpm文件:jenkins-2.253-1.1.noarch.rpm
https://mirrors.tuna.tsinghua.edu.cn/jenkins/redhat/

上传centos服务器进行安装:
rpm -ivh jenkins-2.190.3-1.1.noarch.rpm

配置jenkins

1.修改Jenkins配置
vi /etc/syscofig/jenkins

修改内容如下:
JENKINS_USER="root"
JENKINS_PORT="8888"

2.启动Jenkins服务
systemctl start jenkins
systemctl enable jenkins

3.打开浏览器访问
http://192.168.198.153:8888

获取密码

获取并输入admin账户密码
cat /var/lib/jenkins/secrets/initialAdminPassword
容器化安装(推荐)
官方版

基础镜像最新版

docker pull jenkins/jenkins:2.347

docker pull jenkins/jenkins:2.347-alpine

运行镜像

给映射目录授权
mkdir -p /data/jenkins && chown -R 1000:1000 /data/jenkins

运行容器
docker run -itd --name jenkins -p 8080:8080 -p 50000:50000 -u root -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai --restart=always -v /data/jenkins/:/var/jenkins_home/ jenkins/jenkins:2.347-alpine

查看容器启动日志并找到jenkins初始化密码
docker logs -f jenkins

浏览器测试

http://192.168.198.153:8080

中文版

中文社区

官网地址:
https://bintray.com/jenkins-zh/generic/jenkins

docker官网地址:
https://hub.docker.com/r/jenkinszh/jenkins-zh

github官网地址:
https://github.com/jenkins-zh/jenkins-formulas

基础镜像

最新版本:790MB
docker pull jenkinszh/jenkins-zh:2.267

推荐版本:618MB
docker pull jenkinszh/jenkins-zh:2.221

安装jenkins

给映射目录授权
mkdir -p /data/jenkins && chown -R 1000:1000 /data/jenkins

启动
docker run -itd --name jenkins -p 8080:8080 -p 50000:50000 -u root -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai --restart=always -v /data/jenkins:/var/jenkins_home jenkinszh/jenkins-zh:2.267

查看容器启动日志并找到jenkins初始化密码
docker logs -f jenkins

浏览器测试

http://192.168.198.153:8080

制作jenkins镜像

由于jenkins默认插件下载地址都是国外,所以国内下载插件很困难,所以就需要手动制作jenkins镜像修改插件下载地址为中文社区的地址

制作步骤

制作步骤:
1.编写Dockerfile文件。
2.从下一步骤开始。所有文件都在jenkins中文社区寻找。但是不能在windows系统创建。因为系统文
件格式不同。jenkins启动时会报错。
3.创建init.groovy文件。
4.创建hudson.model.UpdateCenter.xml
5.创建mirror-adapter.crt
6.制作镜像
7.启动容器,试运行镜像
8.jenkins工作台操作,检验插件下载速度
9.停止容器
10.删除容器
备份镜像

基础镜像

docker pull jenkins/jenkins:2.221-alpine

配置文件准备

下载文件https://github.com/jenkins-zh/jenkins-formulas/tree/2.221

将init.groovy、hudson.model.UpdateCenter.xml、mirror-adapter.crt复制到/data目录下

Dockerfile

在基础镜像中增加时区修正。安装常用软件。更新jenkins插件为中文社区地址

FROM jenkins/jenkins:2.221-alpine
#自定义jenkins镜像
# 作者信息
MAINTAINER docker jenkins
# 修改源
USER root
RUN echo "https://mirrors.aliyun.com/alpine/v3.9/main/" > /etc/apk/repositories && \
echo "https://mirrors.aliyun.com/alpine/v3.9/community/" >> /etc/apk/repositories
# 安装需要的软件,解决时区问题
RUN apk --update add curl bash tzdata && \
	rm -rf /var/cache/apk/*
#修改镜像为东八区时间
ENV TZ Asia/Shanghai

ENV JENKINS_UC https://updates.jenkins-zh.cn
ENV JENKINS_UC_DOWNLOAD https://mirrors.tuna.tsinghua.edu.cn/jenkins

ENV JENKINS_OPTS="-Dhudson.model.UpdateCenter.updateCenterUrl=https://updates.jenkins-zh.cn/update-center.json"
ENV JENKINS_OPTS="-Djenkins.install.runSetupWizard=false"

COPY init.groovy /usr/share/jenkins/ref/init.groovy.d/init.groovy
COPY hudson.model.UpdateCenter.xml /usr/share/jenkins/ref/hudson.model.UpdateCenter.xml
COPY mirror-adapter.crt /usr/share/jenkins/ref/mirror-adapter.crt

制作镜像

docker build --rm -t edu/jenkins:2.221-alpine .

启动容器

创建映射目录
mkdir -p /data/jenkins && chown -R 1000:1000 /data/jenkins

运行容器
docker run -itd --name jenkins -p 8080:8080 -p 50000:50000 -u root -e JAVA_OPTS=-Duser.timezone=Asia/Shanghai --restart=always -v /data/jenkins/:/var/jenkins_home/ edu/jenkins:2.221-alpine

查看容器启动日志并找到jenkins初始化密码
docker logs -f jenkins

测试镜像并安装插件

http://192.168.198.153:8080

更换插件下载地址

如果插件无法安装就更新插件下载地址

清华大学:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

阿里云:https://mirrors.aliyun.com/jenkins/updates/update-center.json

华为云:https://mirrors.huaweicloud.com/jenkins/updates/update-center.json

更换步骤:
1.Manage Jenkins–>Manage Plugins->选择Advanced
2.Update Site处修改地址
3.点击submit
4.点击check now

删除镜像

停止容器
docker stop jenkins

删除容器
docker rm jenkins

备份镜像
docker save edu/jenkins:2.204.5-alpine -o edu.jenkins:2.204.5-alpine.tar

或者将镜像上传harbor私服

jenkins插件离线安装

清华大学镜像下载站:

https://mirrors.tuna.tsinghua.edu.cn/jenkins/

jenkins节点安装

jenkins分布式

master节点负责调度任务,agent节点负责执行任务。

配置固定节点

jenkins工作台->系统管理->节点管理->新增从节点

agent节点安装软件
进入opt目录
cd /opt
JDK8
下载地址:
https://download.oracle.com/otn/java/jdk/8u331-b09/165374ff4ea84ef0bbd821706e29b123/jdk-8u331-linux-x64.tar.gz?AuthParam=1652254982_becfd6af2ef4d07b772255e25aeabcf1

tar -zxf jdk-8u331-linux-x64.tar.gz

mv jdk1.8.0_331 jdk1.8
maven3.6
下载地址:
https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz

tar -zxf apache-maven-3.6.3-bin.tar.gz

mv apache-maven-3.6.3 maven
git2.28
1.安装依赖环境:
yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

2.删除yum方式安装的git:
添加依赖时自动yum安装了git1.8版本。需要先移除git1.8版本。
yum -y remove git

官网下载速度非常慢。国内加速地址大部分为windows版本。登录
https://github.com/git/git/releases查看git的最新版。不要下载带有-rc的,因为它代表了一个候选发布版本。
https://www.kernel.org/pub/software/scm/git/git-2.28.0.tar.gz

tar -zxvf git-2.28.0.tar.gz
cd git-2.28.0

配置git安装路径
./configure --prefix=/opt/git/

编译并且安装
make && make install
统一配置
vi /etc/profile

export PATH
export JAVA_HOME=/opt/jdk1.8
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export MAVEN_HOME=/opt/maven
export PATH=$MAVEN_HOME/bin:$PATH
export PATH=$PATH:/opt/git/bin

source /etc/profile
配置软连接
master节点ssh连接agent节点时需要/usr/bin/有java命令。配置java的软连接、同理配置maven、git的软连接。如果软件是yum安装的,则需要检查/usr/bin中是否有相关命令。如果没有,也需要做软连接。
ln -s /opt/jdk1.8/bin/java /usr/bin/
ln -s /opt/maven/bin/mvn /usr/bin/
ln -s /opt/git/bin/git /usr/bin
java方式连接agent

下载jar包

mkdir -p /data/workspaces
cd /data/workspaces

在google浏览器中复制jar地址
wget http://192.168.198.153:8080/jnlpJars/agent.jar

如果没有安装wget命令,选择yum方式安装:
yum install -y wget

启动连接

复制google浏览器中的启动命令:
java -jar agent.jar -jnlpUrl http://192.168.198.153:8080/computer/agent-154/slave-agent.jnlp -secret db7f1e3fc92b1d57af545cae7d836c110d3994f73b618abd94ab0d63c29cfe20 -workDir "/data/workspaces"

自由风格项目测试

配置好master和agent节点,创建一个自由风格项目,测试agent节点各种环境是否正常。
java -version
mvn -v
git version
docker version

jar包后台启动

vi jenkinsagentstart.sh

#!/bin/bash
nohup java -jar agent.jar -jnlpUrl http://192.168.198.153:8080/computer/agent-154/slave-agent.jnlp -secret db7f1e3fc92b1d57af545cae7d836c110d3994f73b618abd94ab0d63c29cfe20 -workDir "/data/workspaces" &

chmod +X jenkinsagentstart.sh

./jenkinsagentstart.sh

查看nohup启动日志:
tail -f nohup.out
SSH方式连接agent

免密配置

master节点要免密登录agent节点

生成秘钥
ssh-keygen -t rsa

按回车3次

复制公钥
ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.198.154

免密登录测试
ssh 192.168.198.154

配置凭据

jenkins工作台->系统管理->凭据管理(manager credentials)

类型:SSH Username with private key

选择类型
SSH Username with private key

输入描述
agent-154-ssh

Username
root

Passphrase
123456

复制私钥到Private Key
cat /root/.ssh/id_rsa

添加agent节点

jenkins工作台->系统管理->节点管理->选择agent节点->新建从节点

Number of executors->5
远程工作目录-
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值