在AWS EC2上搭建jenkins并且整合git+maven+docker自动化部署环境(三)

11 篇文章 5 订阅
8 篇文章 0 订阅

      前面几小节我们成功在AWS EC2上部署安装好了jenkins,这小节就来说下jenkins的一些基本配置以及如何与我们的git,maven还有docker一块串联起来构建我们的一键部署自动化构建的环境。

jenkins初始化配置

在前两节的基础之上,我们可以通过我们的浏览器去访问我们的jenkins,访问路径一般是http://ip:8080,如果你安装jenkins的时候这些都没修改的话,默认地址就是这个。

首次打开会让你输入验证码,可以从页面提示的路径中获取,输入密码,这个密码是一图中第二处划红线的的内容,也可以在 /root/.jenkins/secrets 目录下的initialAdminPassword获取,可以使用

cat /root/.jenkins/secrets/initialAdminPassword

填入后进入 Jenkins,Jenkins 会下载必要的插件(此过程可能会很长),然后让你设置一个账户和密码,设置完成后 Jenkins 会初始化一些配置相关信息(此过程可能会很长),一段时间后
刷新下,会出现登录页面,到此 Jenkins 安装完成。 Jenkins 登录页面:

输入用户名和密码进入如下页面:

配置Jenkins插件

jenkins拥有各种各样的插件,我们可以在插件管理里面下载安装自己所需要的插件,这里我们选择默认的方式,如果有需要安装的插件可以在控制台的系统管理中的插件管理中去安装。

2、 配置全局工具:
(1) 配置 JDK

(2) 配置 Git

(3)配置 MAVEN

3、 安装可选插件

(1) 安装 Maven Integration plugin 或者 Pipeline Maven Integration 插件, 理论上这两个插件一样,此次安装的是第一种, 也可以不安装此插件,不安装此插件可以在创建任务时选择 Freestyle project, 选择了 Freestyle project,那么构建Java 项目时要用脚本,调用 mvn 命令打包, 因为 Java 项目现在基本都是 Maven项目所以安装此插件。
选择可选插件,过滤 Maven, 然后找到插件,勾选插件, 点击直接安装
 

(2)安装 Publish Over SSH 插件, 此插件可以把构建好的项目包发送到其他服务器上,本次就是把构建好的项目包发送到 Docker 服务器上, 安装步骤类似上一个,不再赘述。
4、 系统配置:
 

(1)这里可以修改下,修改成自己的 Jenkins 访问路径

(2)可以配置一下 Github 服务器

配置 Github 服务器不是重点,重点关注 “覆盖 Hook URL”, 以此方式与 Github结合, 可以做到代码提交就自行激活 Jenkins 进行构建。

GitHub中的结合:

(3)配置 Publish over SSH

Passphrase:登录另一台服务器的密码, SSH 的密码
Path to key: SSH 私钥的文件路径,私钥文件的路径,可以是绝对路径,也可以是相对$JENKINS_HOME 的相对路径
Key:私钥私钥导出后的文本内容
如果“Key”和“Path to key”都设置, 则“Key”的优先级较高
Disable exec:禁止在目标机上执行命令
SSH Server 配置:
指定远程服务器的 ip,存放目录。可以配置多个 ssh server , jenkins 自动将打包成果发送到多个远程服务器
内部参数说明
Name:SSH 节点配置的名称, 在 Job 中使用 Publish over SSH 插件时, 此名称将出现在“SSH Server”中“Name”的下拉列表中
Hostname:通过 SSH 连接到的机器的主机名或 IP
Username:SSH 服务使用的用户名,使用 key 进行连接时为 key 指定的用户名
Remote Derictory:运程机器上真实存在的目录, 并且“Username”指定的用户要有访问此目录的权限,插件将把文件传送到此目录下。
配置完成后, 可以 通过 “Test Configuration” 测试是否配置正确。
以上配置中: Key 本次没有填写也成功了,但是最好还是设置一个,通过做 SSH互信导出这个私钥。
至此配置结束

Jenkins 关联 Github,打包测试

1、创建构建任务

2、完成配置填写:
(1)填写 Github 项目地址,项目 URL 是在 Github 上复制来的

(2)配置源码管理

(3)配置构建触发器,根据需要配置, 本次没配置

build whenever a snapshot dependency is built:当job依赖的快照版本被build时,执行本job。

build after other projects are built:当本job依赖的job被build时,执行本job

build periodically:隔一段时间build一次,不管版本库代码是否发生变化。可以如下进行配置:0 2 * * *  (每天2:00 必须build                                   一次源码)

poll scm:隔一段时间比较一次源代码如果发生变更,那么就build。否则,不进行build

 

(4)配置构建环境,根据需要配置, 本次没配置

(5)选择构建项目前操作选项,有执行脚本等操作(把构建好的项目放到别处也可以在此利用脚本完成)

(6)配置构建操作,配置构建 pom.xml 和能用到的全局参数和命令

Goals and options 填写 clean package -Dmaven.test.skip=true,跳过构建项目的(测试阶段)
(7) 配置构建项目后操作,有执行脚本等操作,根据需求选择单选按钮


(8)构建设置,可以配置 Email

这里可以设置你每次构建后需不需要发送邮件提醒

(9)配置构建后操作,在这里配置 SSH 操作

参数说明
Name:下拉选择一个 系统设置已配置的名字。
Transfer Set Source files:需要上传的文件(注意:相对于工作空间根目录。
工作区根目录配置:系统管理->系统设置->主目录->高级->工作空间根目录看后面的配置可以填写多个,默认用,分隔,)
target/test-0.0.1-SNAPSHOT.jar
Remove prefix:
Source files”配置的路径中要移除的前缀,即: target
Remote directory:远程目录, 此目录是相对于“SSH Server”中的“Remote directory”的, 如果不存在将会自动创建。
Exec command:通过 ssh 连接远程服务器后,在远程服务器上执行的脚本。
(10) 配置完成后保存和应用


以上步骤都配置完之后就可以开始构建了,是不是挺激动的,下图是小编自己构建的历史记录,都有列表记录展示出来

我们点进去看下其中一个记录,我们就选择#6这个构建历史,查看下构建的历史日志,都一目了然:

我们选中一下控制台输出,看下具体日志:

Jenkins 关联 Docker 容器发布项目

1、 在配置 Jenkins 任务时,最后一步是 SSH 操作,上次构建没有加入这步,本次加入这步。 配置好必要的配置(请参考 Jenkins 任务配置),最重要的是配置好 Exec
command 中 docker 服务器上的脚本。本次的脚步: startup_jar.sh,内容如下:

#!/bin/sh
image_name=springboottest
container_name=mytest
container_id=`docker ps -a | grep $container_name | awk '{print $1}'`
echo $container_id
for id in $container_id
do
docker kill $id
echo "killed container $id"
docker rm "$container_name"
echo "remove container $container_name"
done
image_id=`docker images -a | grep $image_name | awk '{print $3}'`
echo $image_id
for id in $image_id
do
docker rmi $id
echo "remove image $id"
done
docker build -t $image_name /usr/local/src/docker_sl/
docker run --name $container_name -p 8088:8088 -d $image_name

这里还需要一个Dockerfile文件去构建你项目的镜像,这里写的比较简单,你可以根据你项目打包的业务需求进行编写,我的Dockerfile文件内容如下:(想要比较详细地了解Dockerfile的命令,可以参考这篇博客:https://www.cnblogs.com/dazhoushuoceshi/p/7066041.html)

From java:8-alpine
ADD springboot-demo-0.0.1-SNAPSHOT.jar test.jar
EXPOSE 8088
ENTRYPOINT ["java","-jar","/test.jar"]

2、 配置好后重新构建
构建成功
3、我们访问下浏览器,验证下我们的构件是否真的有效果了

 注意事项、 遇到的问题和遗留事情

1、 防火墙一定要关彻底,关闭服务并禁止开机启动,禁止内核防火墙,如果你是专业人士此条忽略。
2、 如果虚拟机启动后网络有错误,请按照文章中所写进行设置,还是不行就重复设置,肯定会成功,如果是动态 IP,那么动态 IP 可能会发生变化。
3、 时间同步可以选做,建议还是做一下
4、 Jenkins 获取插件错误,不要担心,一般都是因为网络的问题,重试几次就可以,是在不行就重装,或者用安装版
5、 Jenkins 配置任务配置,在配置 git 时错误: Unable to find remote helper for 'https,去查看 gitcore, git 目录下 libexec/git-core/,如果缺少 git-remote-http, gitremote-https,说明安装的不正确,缺少必要的支持包,请重新安装。
6、 Docker 错误: WARNING: IPv4 forwarding is disabled. Networking will notwork. 需要重启 docker
7、 技术上很多的一些其他的内容还要研究

以上就是小编完整构建的过程,有不到之处还望多多指正,按照小编的步骤一步一步操作,基本没什么问题,后续可能还会补充一些自动化构建项目的一些比较细节的地方,比如对每一步构建配置每项内容的具体介绍等等,或许以上写的有点啰嗦,请不要介意,后面继续改进!!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值