快速容器化搭建一主多从Jenkins

目录

简介

本篇主要记录的是内网环境持续集成工具Jenkins整个搭建过程,包括基础镜像(外网docker pull jenkins,我们使用2.222.1版本)的搭建以及自定义镜像的搭建(DockerFile 基于jenkins基础镜像 添加一些需要的配置,如plugins、tools 。

PS:由于网络环境限制,相应操作的截图需要处理后传上。

Jenkins主节点安装

互联网准备好基础镜像包:

docker pull jenkins

docker tag imageId jenkins:base

docker save -o jenkins.tar jenkins:base

将 jenkins.tar 拷入内网,内网需要docker、docker-compose

docker load -i jenkins.tar

docker tag imageId jenkins:base

准备好docker-compose

vim jenkins-compose.yml

version: "3" #定义版本,不指定默认为版本1,新版本功能更多
services:
	jenkins:
		image: jenkins:base
		container_name: jenkins #启动后容器名称
		user: root 	#可以定义为jenkins用户
		privileged: true #解决权限问题
		restart: always # 同 --restart 参数
		ports: 
			- 9000:9000
			- 51000:50000
		environment:
			TZ: Asia/Shanghai
		volumes:
			- /var/run/docker.sock:/var/run/docker.sock
			- /mydata/jenkins/jenkins_home:/var/jenkins_home
			- /mydata/jenkins/local:/home
			- /etc/localtime:/etc/localtime:ro
			

这样其实已经可以完成Jenkins的docker-compose一键启动。

docker-compose -f jenkins-compose.yml up -d

停:

docker-compose -f jenkins-compose.yml down

插件包:

cp plugins.tar.gz /mydata/jenkins/jenkins_home/plugins

cd /mydata/jenkins/jenkins_home/plugins

tar -xvf /mydata/jenkins/jenkins_home/plugins/plugins.tar.gz

工具包(maven,node,sonar-scanner,jacoco,gradle,android sdk,git,jdk等 ):

cp tools.tar.gz /mydata/jenkins/local

cd /mydata/jenkins/local

tar -xvf tools.tar.gz

工具安装就不详细说了,就是一些解压操作,git还会有编译操作

./configure --prefix="git路径"

make && make install

设置环境变量

vim /etc/profile

添加:

export JAVA_HOME=/opt/xxxxx

export GIT_HOME=/opt/xxxx

export PATH=$GIT_HOME/bin:$PATH

重复操作就不多写了

source /etc/profile

验证环境变量

mvn -v

git --version

重启docker-compose

docker-compose -f jenkins-compose.yml restart

从节点配置

主从互信

主节点机器执行

ssh-keygen

一路回车

cd ~/.ssh/

ssh-copy-id -i id_rsa.pub root@从IP

测试是否配置成功
ssh 登录从节点机器~不需要输入密码 则配置成功

私钥id_rsa需要在 JENKINS WEB服务上配置凭据,选择SSH Username with private key

ID 可以选择一个明显的标识表明私钥是用来干什么的

从节点工具配置

同主节点工具安装。

需要在主节点WEB服务添加节点,具体图片后续补充。

对于内网的插件包:

1、搭建互联网Jenkins后 下载插件,手动导出,得到plugins.zip/ plugins.tar.gz

2、 搭建内网Jenkins插件库,利用互联网出口搭建插件库(可以是nexus或者artifactory甚至可以是FTP)

实验利用DockerFile 构建自定义镜像,启动后的JENKINS不需要手动拷贝工具介质~

FROM jenkins:base
MAINTAINER luke@foxmail.com.cn
USER root
WORKDIR /opt
ADD ./tool/jdk-8u192-linux-x64.tar.gz /opt/
ADD ./tool/apache-maven-3.5.4-bin.tar.gz /opt/
# 这里node 有的人会把node 放到/usr/local目录下
ADD ./tool/node-v10.15.1-linux-x64.tar.gz /opt/ 
ADD ./tool/jacoco-0.8.5.zip /opt/
ADD ./tool/sonar-scanner-cli-4.2.0.1873-linux.zip /opt/
ADD ./tool/gradle-5.4.1-all.zip /opt/
ADD ./tool/git-2.30.1.tar.gz /opt/
ADD ./tool/plugins.tar.gz /opt/
ENV GIT_HOME=/opt/git-2.30.1
ENV JAVA_HOME=/opt/jdk-8u192-linux-x64
ENV MAVEN_HOME=/opt/apache-maven-3.5.4-bin
ENV NODE_HOME=/opt/node-v10.15.1-linux-x64
ENV PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin:$NODE_HOME/bin:$GIT_HOME/bin:/opt/sonar-scanner-cli-4.2.0.1873-linux/bin:/opt/gradle-5.4.1-all/bin
# 补充npm 源
RUN npm config set registry=xxxxx
# 如果有用Node-sass 需要补充sass源,linux编译需要node-sass的linux binding.node
RUN npm config set sass_binary_site= xxxx
RUN npm config set cache "/opt/npm/npm_cache"
RUN npm config set global "/opt/npm/npm_global"
#如果需要旧的配置信息  ADD ./tool/config.xml /opt

构建镜像 -t 指定输出镜像名称 -f 指定dockerfile

docker build -t new/jenkins -f dockerfile

这样构建好自动义的Jenkins镜像后,参照之前的安装步骤启动即可。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值