Jenkins
一、介绍
Jenkins 是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins 采用Java 语言编写,可在 Tomcat 等流行的 servlet 容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。
二、安装
采用 Docker 的形式安装:
根据官网文档 推荐使用 jenkinsci/blueocean 镜像,我们就采用这个。
# 拉取镜像
docker pull jenkins/jenkins
# 创建容器
docker run -d -p 80:8080 -p 50000:50000 -v jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime --name jenkins jenkins/jenkins
参数说明:
-d 后台运行镜像 -p 80:8080 将镜像的8080端口映射到服务器的80端口
-p 50000:50000 将镜像的50000端口映射到服务器的50000端口
-v jenkins:/var/jenkins_home 冒号前面的jenkins表示的是docker卷名,冒号后面的 /var/jenkins_home目录为容器中jenkins工作目录
-v /etc/localtime:/etc/localtime 让容器使用和服务器同样的时间设置。
--name jenkins 给容器起一个别名
jenkins
和 jenkinsci/jenkins
镜像已经被弃用了,详情查看http://ip地址,将会显示如下页面:
需要我们输入密码,因为我们是通过Docker 安装的,所以宿主机中是没有这个路径的,我们需要进入容器中:
# 进入容器
docker exec -it jenkins /bin/bash
# 查看密码
cat /var/jenkins_home/secrets/initialAdminPassword
# 将密码拷贝到页面中,等待 jenkins 初始化
3.2 安装插件
这里我们先选默认推荐的,当然你对 Jenkins 比较了解的话,也可以选择需要的插件。
注:如果插件安装失败,可以先跳过这个环节,在进入 Jenkins 后可以更换插件地址下载
3.3 创建管理员用户
四、更换插件地址
因为某些因素会导致插件地址无法访问,我们可以更换地址来下载插件。
4.1 点击系统管理
4.2 选择管理插件
4.3 替换站点地址
替换为
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
五、汉化
5.1 安装插件
需要同时安装如下插件:
-
Locale plugin
-
Localization: Chinese (Simplified)
5.2 系统配置
在系统设置中配置语言为 zh_CN:
然后重启 jenkins。
六、配置集成环境
进入 系统管理 --> 全局工具配置。
注:这里我们因为是通过 Docker 安装的 jenkins,所以我们直接通过在容器中安装的形式配置 JDK 等信息。
6.1 配置 JDK
方式一:
镜像中自带了,我们进入容器查看安装路径:
# 进入容器
docker exec -it jenkins /bin/bash
# 查看路径
echo $JAVA_HOME
JDK 路径如下:
/usr/local/openjdk-8
方式二:
通过 jenkins 自动安装
这种方式需要设置 Oracle账号,分析一个 从 网上 查到一个 Oracle 账号:
账号: 1364262875@qq.com
密码: 7Jv?_ppXq9+j9n7
6.2 配置 Git
方式一:
镜像中自带了,我们进入容器查看安装路径:
# 进入容器
docker exec -it jenkins /bin/bash
# 查看路径
which git
Git 路径如下:
/usr/bin/git
方式二:
通过 jenkins 自动安装
6.3 配置 Maven
maven integration
6.5 安装 Maven Integration 插件
6.6 修改 Maven远程仓库地址
注: 需要先执行第七步,先安装完Maven。
自动安装的 Maven 默认是国外的地址 ,下载速度很慢,我们需要替换为国内的镜像。
docker exec -it jenkins /bin/bas
# 跳转到当前用户的家目录
cd ~
# 显示当前列表信息
ls -a
# 可以看到有个 .m2 目录,它是 Maven 默认安装的目录
cd .m2
# 进入 maven 安装目录,这个目录从 jenkins 第一次编译的日志中查询到
cd /var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven/conf/
# 编辑配置文件
vim settings.xml
在 **
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
七、Maven编译项目
7.1 新建 Maven 任务
7.2 配置 GIt 仓库地址
7.3 配置构建信息
7.4 保存后,点击立即构建
在右下角会显示进度
7.5 通过控制台输出,可以查看进度
从日志来看,进行了如下步骤:
- 安装 mavne
- 拉取代码
- 进行编译
八、Tomcat 部署
8.1 部署 Tomcat 容器
# 拉取镜像
docker pull tomcat:7-jre8
# 创建容器
docker run -di --name=mytocat -p 9000:8080 -v /usr/local/webapps:/usr/local/tomcat/webapps tomcat:7-jre8
8.2 为 Tomcat 添加用户及权限
# 进入容器
docker exec -it mytocat /bin/bash
# 进入Tomcat 配置目录
cd /usr/local/tomcat/conf/
# 编辑 tomcat 用户文件
vim tomcat-users.xml
新增用户 /密码都是 **tomcat **
8.3 注释来源受限控制
# 进入Tomcat 配置目录
cd /usr/local/tomcat/conf/
# 编辑 context 文件
vim context.xml
在
<?xml version='1.0' encoding='utf-8'?>
WEB-INF/web.xml
${catalina.base}/conf/web.xml
8.4 重启容器
# 退出容器
exit
# 重启容器
docker restart mytocat
访问 http://IP地址:7070/manager/html,输入用户 /密码 **tomcat ** ,能够正常打开说明配置正确。
九、自由风格项目构建
构建过程如下:
拉取代码
-->编译
-->打包
-->部署
9.1 安装部署插件
jenkins 本身是没有部署功能的,需要安装 Deploy to container 插件实现
9.2 配置 Mavne 全局变量
为避免出现编译时报 mvn: not found 错误,我们需要配置下 Mavne 全局变量。
打开 系统管理 --> 系统配置 在**全局属性.环境变量 ** 下配置如下内容:
MAVEN_HOME = /var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven
PATH = ${PATH}:${MAVEN_HOME}/bin
9.3 新建自由风格项目任务
9.4 配置 Git 仓库地址
9.5 配置构建步骤
9.6 配置部署
保存后,点击立即构建。
9.7 验证
部署成功后,浏览器访问 http://192.168.205.10:7070/test/test/hello?name=123 ,返回
hello 123
说明部署成功。