Clay

用进废退 | 工字不出头

  • 主页
  • 归档
  • 随笔
  • 搜索
所有文章

Clay

用进废退 | 工字不出头

  • 主页
  • 归档
  • 随笔

Jenkins入门教程之二Jenkins与SVN搭建CI-CD环境

发表于:2019-01-23
字数统计:2.1k
阅读量统计:

前言

本教程实战演示基于SVN + Jenkins + Maven + JDK + Docker搭建CI/CD环境,其中SVN基于Debian镜像手动安装,而Jenkins、Maven、JDK则基于Tomcat镜像手动安装。如果仅为了快速体验使用Jenkins的功能,可以直接Pull Jenkins官方的Docker镜像,然后创建并启动Docker容器来体验Jenkins相关功能,此时可忽略下面教程中的大部分操作步骤。

Docker环境安装与配置

  • 站内教程:Docker介绍与安装

基于Docker搭建SVN服务器

  • 站内教程:通过Apache、Subversion搭建SVN服务器,实现使用HTTP/SVN协议访问SVN仓库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 拉取Debian镜像
# docker pull debian

# 创建并启动容器,80是Apache端口,3690是Subversion端口,/var/lib/svn是所有SVN仓库的父目录
# docker run -it -p 9126:80 -p 4690:3690 --name svn-httpd \
-v /container/svn-server:/var/lib/svn \
-d debian

# 连接容器
# docker exec -it svn-httpd /bin/bash

# 修改系统时间
# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# 参考上面给出的本站教程,使用Apache、Subversion搭建SVN服务器

# 断开容器连接,不停止运行容器
# ctrl + p + q

# 最后如果Subversion容器能正常工作,建议执行commit操作生成Docker备份镜像
# docker commit -a "clay@gmail.com" -m "commit jenkins-svn-httpd image" svn-httpd clay/jenkins-svn-httpd:1.0

基于Docker搭建Tomcat服务器

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# 拉取Tomcat8的镜像
# docker pull tomcat:8

# 创建并启动容器
# docker run -p 8888:8080 --name tomcat8 \
-v /container/tomcat8/logs:/usr/local/tomcat/logs \
-d tomcat:8

# 连接容器
# docker exec -it tomcat8 /bin/bash

# 更新系统并安装常用软件,Docker官方的Tomcat镜像默认安装了Open-JDK、Tomcat Native、APR,具体安装细节可以参考官方镜像的Dockerfile文件
# apt-get -y update
# apt-get -y upgrade
# apt-get -y install git vim htop telnet net-tools

# 修改系统时间
# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

# 配置Tomcat8的管理用户,编辑Tomcat8对应的配置文件,在<tomcat-users>标签内添加以下内容
# vim /usr/local/tomcat/conf/tomcat-users.xml
<tomcat-users>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="123456" roles="admin-gui,admin-script,manager-gui,manager-script,manager-jmx,manager-status"/>
</tomcat-users>

# 关于Tomcat配置管理用户,不同版本的Tomcat配置方法有差异,上面仅演示Tomcat8版本的配置方法。
# 由于Tomcat8默认启用了网段限制,默认只有127网段局域网的机器才拥有有访问权限,如果是其他网段登陆,如172,10网段会报403错误,因此需要按照下面的方法修改对应的context.xml配置文件。
# 出于安全考虑,在生产环境中建议启用默认的网段限制,即只允许在本地访问Tomcat服务器的管理页面。

# 编辑manager项目下的META-INF/context.xml配置文件,将<Valve>标签的内容替换为以下文本
# vim /usr/local/tomcat/webapps/manager/META-INF/context.xml
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="\d+\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

# 编辑host-manager项目下的META-INF/context.xml配置文件,将<Valve>标签的内容替换为以下文本
# vim /usr/local/tomcat/webapps/host-manager/META-INF/context.xml
<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="\d+\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />

# 断开容器连接
# exit

# 重启容器使配置生效
# docker restart tomcat8

# 通过浏览器访问Tomcat的管理页面,测试是否配置成功

# 最后如果Tomcat容器能正常工作,建议执行commit操作生成Docker备份镜像
# docker commit -a "clay@gmail.com" -m "commit jenkins-server image" tomcat8 clay/jenkins-server:1.0

Tomcat容器内安装与配置Oracle JDK、Maven

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# 提示:这里安装的Oracle JDK、Maven,在后面Jenkins的全局工具配置中会用到

# 连接容器
# docker exec -it tomcat8 /bin/bash

# 下载Oracle JDK8
# wget -P /usr/local --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3a%2F%2Fwww.oracle.com%2Ftechnetwork%2Fjava%2Fjavase%2Fdownloads%2Fjdk8-downloads-2133151.html; oraclelicense=accept-securebackup-cookie;" "https://download.oracle.com/otn-pub/java/jdk/8u201-b09/42970487e3af4f5aa5bca3f542482c60/jdk1.8.0_201-linux-x64.tar.gz"

# 解压Oracle JDK8
# tar -xvf /usr/local/jdk1.8.0_201-linux-x64.tar.gz

# 下载Maven
# wget -P /usr/local/ http://mirrors.shu.edu.cn/apache/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz

# 解压Maven
# tar -xvf /usr/local/apache-maven-3.6.0-bin.tar.gz

# 删除下载文件
# rm /usr/local/jdk1.8.0_201-linux-x64.tar.gz
# rm /usr/local/apache-maven-3.6.0-bin.tar.gz

# 创建Java命令的软链接,如果安装了Open-JDK,会覆盖Open-JDK相关命令
# ln -s -f /usr/local/jdk1.8.0_201/bin/java /usr/bin/java
# ln -s -f /usr/local/jdk1.8.0_201/bin/javac /usr/bin/javac

# 配置JDK、Maven的环境变量,在配置文件末尾追加以下内容即可
# 注意,在/etc/profile配置文件中添加环境变量后,重启Docker容器后环境变量会失效,建议在DockerFile中添加环境变量,然后通过DockerFile构建得到Docker镜像
# vim /etc/profile

JAVA_HOME=/usr/local/jdk1.8.0_201
JRE_HOME=/usr/local/jdk1.8.0_201/jre
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASSPATH PATH

MAVEN_HOME=/usr/local/apache-maven-3.6.0
PATH=$PATH:$MAVEN_HOME/bin
export MAVEN_HOME PATH

# 使环境变量生效
# source /etc/profile

# 验证环境变量是否生效
# mvn -version
# java -version
# javac -version

# 最后如果上面的配置都生效了,建议执行commit操作生成Docker备份镜像
# docker commit -a "clay@gmail.com" -m "commit jenkins-server image" tomcat8 clay/jenkins-server:1.1

Tomcat容器内安装Jenkins

Jenkins本质是一个Java开发的Web项目,官方发布方式有War文件、Native包、安装程序、Docker镜像,Jenkins官方下载页面。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 连接容器
# docker exec -it tomcat8 /bin/bash

# 下载War文件到Tomcat的webapps目录
# wget -P /usr/local/tomcat/webapps https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.150.2/jenkins.war

# 编辑server.xml配置文件,修改Tomcat URI地址的编码解码字符集为UTF-8
# vim /usr/local/tomcat/conf/server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="UTF-8"/>

# 断开容器连接
# exit

# 重启容器
# docker restart tomcat8

# 浏览器访问以下地址测试Jenkins是否启动成功,首次访问Jenkins的管理页面,会提示进行解锁操作
http://127.0.0.1:8888/jenkins

# 如果Jenkins启动失败,可以通过输入以下地址查看Jenkins的日志信息或者查看Tomcat的日志信息来定位问题
http://localhost:8888/jenkins/log/all

# 提示:Jenkins默认的数据目录是:/root/.jenkins

解锁Jenkins

1
2
3
4
5
# 连接容器
# docker exec -it tomcat8 /bin/bash

# 查看Jenkins自动生成的管理密码,并将管理密码填写到Jenkins的解锁页面中,这里的管理密码同时也是admin账号的登录密码
# cat /root/.jenkins/secrets/initialAdminPassword

安装Jenkins插件

解锁后会跳转到“自定义Jenkins”页面,页面中选择哪种方式来安装插件都不会对后续操作有太大影响;因为有需要的插件可以在后续有针对性地安装,本文选择“安装推荐的插件”。


创建Jenkins管理员用户

根据页面提示创建管理员用户,表单填写完后点击”Save and Continue”按钮保存设置,这里的管理员用户区别于Jenkins自动创建的admin用户。

配置Jenkins实例

一般使用默认的Jenkins URL即可。

登录Jenkins管理后台

浏览器输入Jenkins管理后台的登录地址,填写上面创建的管理员或者admin账号和密码即可登录。如果登录后的页面只显示空白页面,可以尝试重启Tomcat服务器再访问URL:http://127.0.0.1:8888/jenkins/login

Jenkins支持中文界面

Manage Jenkins –> Manage Plugins –> Available –> 搜索关键字”Local” –> 选中Local插件进行安装,建议安装完之后手动重启Tomcat服务器。


Jenkins开启用户注册功能

Manage Jenkins –> Configure Global Security –> 勾选”Allow users to sign up” –> 点击”Save”按钮保存设置。如果是处于学习或者测试阶段,还可以勾选“Anyone can do anything”,这样更方便测试Jenkins的功能。出于安全考虑,生产环境下记得取消勾选此项。


Jenkins全局工具配置

Manage Jenkins –> Global Tool Configuration –> 指定Maven的配置文件路径、JDK的安装路径、Maven的安装路径 –> 点击”Save”按钮保存设置。不要选择自动安装,因为上面已经手动安装并配置好Maven、Oracle JDK。



安装deploy to container插件

到此为止,基于SVN + Jenkins + Maven + JDK + Docker的CI/CD环境已经搭建完成。

下篇:Jenkins入门教程之三Jenkins与SVN持续集成实战

本文作者: Clay
发布时间: 2019-01-23 20:51:23
最后更新: 2019-07-21 22:13:53
本文链接: https://www.techgrow.cn/posts/44bda657.html
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
赏

谢谢你的支持

支付宝
微信
  • CI/CD

扫一扫,分享到微信

微信分享二维码
Docker之十三资源隔离与资源限制介绍
Jenkins入门教程之一Jenkins介绍
© 2021 Clay
本站总访问量  人次
载入天数...载入时分秒...
粤ICP备19024664号
  • 所有文章

显示标签:

  • AI
  • C/C++
  • CI/CD
  • CentOS
  • Centos
  • Docker
  • HarmonyOS
  • Java
  • Linux
  • Manjaro
  • Python
  • Web服务器
  • 企业面试
  • 分布式
  • 前端
  • 区块链
  • 开发工具
  • 开源
  • 微服务
  • 数据库
  • 架构
  • 树莓派
  • 爬虫
  • 版本控制
  • 知识图谱
  • 算法与数据结构
  • 缓存
  • 网络攻防
  • 随笔

    [^_^] 出错啦!请重新刷新页面!