容器云管理平台CI/CD GitLab+Jenkins+Maven+Tomcat
主机规划
名称 IP 端口 服务
docker 10.0.0.6 8085 rancher 平台
docker2 10.0.0.7 开启很多映射端口 rancher 客户机
docker2 10.0.0.7 8888 tomcat
docker2 10.0.0.7 8889 gitlab
docker2 10.0.0.7 8810 jenkins
一、rancher服务端部署
拉取镜像:
docker pull rancher/server
运行容器:
docker run -p 8080:8080 -d --restart=always --name rancher rancher/server
浏览器访问:ip:8080

创建账号

添加环境



切换到test环境下,选择基础架构-->主机




在客户端部署

点击关闭即可看到添加的主机

点击主机名字进入详细信息

容器功能

二 gitlab部署

选择gitlab




查看:应用-->gitlab-->gitlab-server


容器操作

端口

访问结果

主机中管理

拉取项目
https://gitee.com/94fzb/zrlog

三 Tomcat部署
选择主机



访问

四 安装jenkins
应用商店 搜索 jenkins

更改端口 (因为rancher 占用了8080)



会有三个容器:
第一个容器是 jenkins 服务
第二个是 给 1000 权限 (如果不给,会有权限问题)
第三个 是 安装jenkins插件

点击访问


解决访问不了的问题
进入第一个容器内执行


执行命令
whereis jenkins
cd /usr/share/jenkins
/usr/local/bin/jenkins.sh

再次访问
用户名 admin
(在此处查看密码) 密码 cat /var/lib/docker/jenkins-ci/secrets/initialAdminPassword

五 对jenkins 的操作
5.1 对 Jenkins 进行升级


应该选择latest


docker exec -it -u root e273ac9fdcb2 bash(root用户进入jenkins容器)
cd /usr/share/jenkins
mv jenkins.war jenkins.war.bak (备份)
wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/latest/jenkins.war

5.2 修改 Jenkins 源为清华源,下插件快
一 显示页面
cd /var/lib/docker/jenkins-ci
vim hudson.model.UpdateCenter.xml
######################
<?xml version='1.1' encoding='UTF-8'?>
<sites>
<site>
<id>default</id>
<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url> (改为清华源)
</site>
</sites>
#######################
二 加速插件下载
cd /var/lib/docker/jenkins-ci/updates
cp default.json default.json.bak
(替换 default.json 中的源)
sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json
&& sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
退出容器,重启
docker restart Jenkins 容器_id
六 进入 Jenkins 并进行配置
账户:admin
密码:cat /var/lib/docker/jenkins-ci/secrets/initialAdminPassword

6.1 安装插件
下载插件时可能有一些重要的插件无法下载,所以我们需要去更新一下容器内部环境
apt-get update



Gitlab 、 Gitlab Hook 、 Gitlab Authentication 、 Publish Over SSH
Maven Integration plugin 、 Build Authorization Token Root

6.2 全局配置
1 jdk 环境
进入容器 找jdk
一般 jdk 都在 /usr/lib/jvm/下 找
Snipaste_2020-03-08_21-54-41.jpg

2 git
进入容器 输入 whereis git
root@jenkins-ci-jenkins-primary-1:/usr/local# whereis git
git: /usr/bin/git /usr/share/man/man1/git.1.gz
Snipaste_2020-03-08_21-58-30.jpg
3 maven
Maven 默认是没有安装的,要先进入容器部署maven
docker exec -it -u root e273ac9fdcb2 bash
a、下载安装包并解压. 进入容器 到 /usr/local 目录里
cd /usr/local
wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz
tar -xf apache-maven-3.5.4-bin.tar.gz
mv apache-maven-3.5.4 /usr/local/maven
b、设置环境变量
apt-get install vim -y
vim /etc/profile
###########
export M2_HOME=/usr/local/maven
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$M2_HOME/bin:$PATH
###########
Snipaste_2020-03-08_11-56-00.jpg
source /etc/profile
c、测试:mvn -v
root@jenkins-ci-jenkins-primary-1:~# mvn -v
Apache Maven 3.5.4 (1edded0938998edf8bf061f1ceb3cfdeccf443fe; 2018-06-
17T18:33:14Z)
Maven home: /usr/local/maven
Java version: 1.8.0_151, vendor: Oracle Corporation, runtime: /usr/lib/jvm/java-8-
openjdk-amd64/jre
Default locale: en, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-957.el7.x86_64", arch: "amd64", family: "unix"
在进入全局配置maven
root@jenkins-ci-jenkins-primary-1:~# whereis maven
maven: /usr/local/maven
Snipaste_2020-03-08_22-07-08.jpg
Snipaste_2020-03-08_22-07-59.jpg
6.3 系统配置
因为我们要用 Publish Over SSH 这个插件
在 ssh server 处 配置 tomcat



在 高级处 填写密码
如上图 最后还有个 测试 配置文件 点击 , 出现sucesss 表示连接成功

七 Jenkins 创建 maven 项目










Tomcat端查看
Snipaste_2020-03-08_22-38-56.jpg
最终构建成功,项目被打包成 war 包推送在
tomcat 的目录下
问题.构建Jenkins任务时候下载jar包过慢
解决:更换阿里源
Snipaste_2020-03-08_22-40-05.jpg
Snipaste_2020-03-08_22-40-37.jpg
Snipaste_2020-03-08_22-41-41.jpg
网友评论