一.jenkins安装部署
1.jenkins运行环境
硬件配置:4cpu+4Gmemory
ip:172.25.254.20
hostname:jenkins-node
2.jenkins安装
下载jenkins
[root@jenkins-node ~]# wget https://mirrors.aliyun.com/jenkins/rpm-
stable/jenkins-2.568.3-1.noarch.rpm
安装jenkins的依赖关系
[root@jenkins-node ~]# yum install fontconfig java-21-openjdk git -y
安装jenkins
[root@jenkins-node ~]# dnf install jenkins-*.rpm -y
启动jenkins
[root@jenkins-node ~]# systemctl enable --now jenkins
3.初始化jenkins
[root@jenkins-node ~]# cd /var/lib/jenkins/
[root@jenkins-node jenkins]# ls
config.xml jobs secret.key
updates
hudson.model.UpdateCenter.xml nodeMonitors.xml secret.key.not-so-secret
userContent
jenkins.telemetry.Correlator.xml plugins secrets
users
[root@jenkins-node jenkins]# ls plugins/ #插件目录,启动服务后默认为
空
#解压插件到jenkins插件目录
[root@jenkins-node jenkins]# ls /root/
jenkins-2.568.3-1.noarch.rpm plugin.tar.gz
[root@jenkins-node jenkins]# tar zxf /root/plugin.tar.gz -C /var/lib/jenkins/
[root@jenkins-node jenkins]# ls plugins/
ant jackson2-api.jpi pipeline
model-extensions
antisamy-markup-formatter jackson3-api pipeline
model-extensions.jpi
antisamy-markup-formatter.jpi jackson3-api.jpi pipeline
stage-step
ant.jpi jackson-annotations2-api pipeline
stage-step.jpi
apache-httpcomponents-client-4-api jackson-annotations2-api.jpi pipeline
stage-tags-metadata
apache-httpcomponents-client-4-api.jpi jakarta-activation-api pipeline
stage-tags-metadata.jpi
asm-api jakarta-activation-api.jpi plain
credentials
asm-api.jpi jakarta-mail-api plain
credentials.jpi
bootstrap5-api jakarta-mail-api.jpi plugin
util-api
bootstrap5-api.jpi jakarta-xml-bind-api plugin
util-api.jpi
bouncycastle-api jakarta-xml-bind-api.jpi prism
api
bouncycastle-api.jpi javax-activation-api prism
api.jpi
branch-api javax-activation-api.jpi resource
disposer
branch-api.jpi jaxb resource
disposer.jpi
build-timeout jaxb.jpi scm-api
build-timeout.jpi jjwt-api scm
api.jpi
caffeine-api jjwt-api.jpi script
security
caffeine-api.jpi joda-time-api script
security.jpi
checks-api joda-time-api.jpi
snakeyaml-api
checks-api.jpi jquery3-api
snakeyaml-api.jpi
cloudbees-folder jquery3-api.jpi
snakeyaml-engine-api
cloudbees-folder.jpi json-api
snakeyaml-engine-api.jpi
commons-lang3-api json-api.jpi ssh
credentials
commons-lang3-api.jpi json-path-api ssh
credentials.jpi
commons-text-api json-path-api.jpi ssh
slaves
commons-text-api.jpi jsoup ssh
slaves.jpi
credentials jsoup.jpi structs
credentials-binding junit
structs.jpi
credentials-binding.jpi junit.jpi theme
manager
credentials.jpi ldap theme
manager.jpi
dark-theme ldap.jpi
timestamper
dark-theme.jpi localization-support
timestamper.jpi
display-url-api localization-support.jpi token
macro
display-url-api.jpi localization-zh-cn token
macro.jpi
durable-task localization-zh-cn.jpi trilead
api
durable-task.jpi mailer trilead
api.jpi
echarts-api mailer.jpi variant
echarts-api.jpi matrix-auth
variant.jpi
eddsa-api matrix-auth.jpi woodstox
core-api
eddsa-api.jpi matrix-project woodstox
core-api.jpi
email-ext matrix-project.jpi workflow
aggregator
email-ext.jpi mina-sshd-api-common workflow
aggregator.jpi
font-awesome-api mina-sshd-api-common.jpi workflow
api
font-awesome-api.jpi mina-sshd-api-core workflow
api.jpi
git mina-sshd-api-core.jpi workflow
basic-steps
git-client okhttp-api workflow
basic-steps.jpi
git-client.jpi okhttp-api.jpi workflow
cps
github pipeline-build-step workflow
cps.jpi
github-api pipeline-build-step.jpi workflow
durable-task-step
github-api.jpi pipeline-github-lib workflow
durable-task-step.jpi
github-branch-source pipeline-github-lib.jpi workflow
job
github-branch-source.jpi pipeline-graph-view workflow
job.jpi
github.jpi pipeline-graph-view.jpi workflow
multibranch
git.jpi pipeline-groovy-lib workflow
multibranch.jpi
gradle pipeline-groovy-lib.jpi workflow
scm-step
gradle.jpi pipeline-input-step workflow
scm-step.jpi
gson-api pipeline-input-step.jpi workflow
step-api
gson-api.jpi
step-api.jpi
instance-identity
support
instance-identity.jpi
support.jpi
ionicons-api
cleanup
ionicons-api.jpi
cleanup.jpi
jackson2-api
pipeline-milestone-step
pipeline-milestone-step.jpi
pipeline-model-api
workflow
workflow
workflow
pipeline-model-api.jpi
pipeline-model-definition
pipeline-model-definition.jpi
[root@jenkins-node jenkins]# systemctl restart jenkins.service




修改密码

二.gitlab与jenkins的整合
1.在jenkins中新建项目


2.在jenkins中生成密钥
[root@jenkins-node ~]# ssh-keygen
[root@jenkins-node ~]# cat /root/.ssh/id_ed25519.pub
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMAGGKXmK0GIxytO1TGh6I9fj8T3mNHqQ2D3QbdyEMcv
root@jenkins-node
3.上传公钥到gitlab



3.上传私钥到jenkins中
设定jenkins自动接收远程身份认证


上传私钥
[root@jenkins-node .ssh]# cat id_ed25519-----BEGIN OPENSSH PRIVATE KEY----
b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAACDABhil5itBiMcrTtUxoeiPX4/E95jR6kNg90G3chDHLwAAAJhah6h6Woeo
egAAAAtzc2gtZWQyNTUxOQAAACDABhil5itBiMcrTtUxoeiPX4/E95jR6kNg90G3chDHLw
AAAEAovP0kVVod7uvbm8HUmfwn2i+V47N4SqTVw8QnCaCnhMAGGKXmK0GIxytO1TGh6I9f
j8T3mNHqQ2D3QbdyEMcvAAAAEXJvb3RAamVua2lucy1ub2RlAQIDBA==-----END OPENSSH PRIVATE KEY----



4.配置jenkins中的timinglee项目
[root@jenkins-node .ssh]# dnf install git -y
#安装git工具



构建信息

三.gitlab出发jenkins build
1.安装gitlab插件


2.设定触发方式


3.设定gitlab主动通知jenkins




4.测试
[root@code-node timinglee]# echo update test >> lee
[root@code-node timinglee]# git commit -a -m "lee v3"
[main 9eb16bb] lee v3
1 file changed, 1 insertion(+)
[root@code-node timinglee]# git push origin main
枚举对象中: 5, 完成.
对象计数中: 100% (5/5), 完成.
使用 2 个线程进行压缩
压缩对象中: 100% (2/2), 完成.
写入对象中: 100% (3/3), 292 字节 | 292.00 KiB/s, 完成.
总共 3(差异 0),复用 0(差异 0),包复用 0(来自 0 个包)
To 172.25.254.10:root/timinglee.git
558dc0c..9eb16bb main -> main