Jenkins安装配置

幻昼 2020年12月02日 214次浏览

Docker环境下的安装

  • 下载Jenkins的Docker镜像:
sudo docker pull jenkins/jenkins:lts
  • 在Docker容器中运行Jenkins:
sudo docker run -p 8080:8080 -p 50000:5000 --name jenkins \
-u root \
-v /mydata/jenkins_home:/var/jenkins_home \
-d jenkins/jenkins:lts

Jenkins的配置

  • 运行成功后访问该地址登录Jenkins,第一次登录需要输入管理员密码:http://39.108.231.131:8080/

  • 使用管理员密码进行登录,可以使用以下命令从容器启动日志中获取管理密码:

sudo docker logs jenkins 
  • 从日志中获取管理员密码:

image

  • 选择安装插件方式,这里我们直接安装推荐的插件:

  • 进入插件安装界面,联网等待插件安装:

image.png

  • 安装完成后,创建管理员账号:

image.png

  • 进行实例配置,配置Jenkins的URL:

image.png

  • 点击系统管理->插件管理,进行一些自定义的插件安装:

image.png

  • 确保以下插件被正确安装:

    • 根据角色管理权限的插件:Role-based Authorization Strategy

    • 远程使用ssh的插件:SSH plugin、Publish Over SSH

      image.png

      image.png

  • 通过系统管理->全局工具配置来进行全局工具的配置,比如maven的配置:

    image.png

  • 新增maven的安装配置:

  • 在系统管理->系统配置中添加全局ssh的配置,这样Jenkins使用ssh就可以执行远程的linux脚本了,若点击添加没有反应,可去凭据管理添加:

    image.png

打包部署SpringBoot应用

这里我们使用nacos-consumer项目代码来演示下如何使Jenkins一键打包部署SpringBoot应用。

将代码上传到Git仓库

  • image.png

有一点需要注意,要将pom.xml中的dockerHost地址改成你自己的Docker镜像仓库地址:

image.png

执行脚本准备

  • nacos-consumer.sh脚本文件上传到/mydata/stuv目录下,脚本内容如下:
#!/usr/bin/env bash
app_name='nacos-consumer'
sudo docker stop ${app_name}
echo '----stop container----'
sudo docker rm ${app_name}
echo '----rm container----'
sudo docker run -p 20012:20012 --name ${app_name} \
        -v /etc/localtime:/etc/localtime \
        -v /mydata/app/${app_name}/logs:/var/logs \
        -d stuv/${app_name}:0.0.1-SNAPSHOT
echo '----start container----'

给.sh脚本添加可执行权限:

chmod 775 nacos-consumer.sh
  • windows下的.sh脚本上传到linux上使用,需要修改文件格式,否则会因为有特殊格式存在而无法执行:
#使用vim编辑器来修改
sudo vim nacos-consumer.sh
# 查看文件格式,windows上传上来的默认为dos
:set ff
#修改文件格式为unix
:set ff=unix
#保存并退出
:wq
  • 执行.sh脚本,测试使用,可以不执行:
./nacos-consumer.sh

在Jenkins中创建执行任务

  • 首先我们需要新建一个任务:

image.png

  • 设置任务名称后选择构建一个自由风格的软件项目:

image.png

image.png

  • 此时需要添加一个凭据,也就是我们git仓库的账号密码:

    image.png

  • 填写完成后选择该凭据,就可以正常连接git仓库了;

  • 之后我们需要添加一个构建,选择调用顶层maven目标,该构建主要用于把我们的源码打包成Docker镜像并上传到我们的Docker镜像仓库去:

  • 选择我们的maven版本,然后设置maven命令和指定pom文件位置:

    image.png

  • 之后添加一个执行远程shell脚本的构建,用于在我们的镜像打包完成后执行启动Docker容器的.sh脚本:

    image.png

  • 需要设置执行的shell命令如下:/mydata/stuv/nacos-consumer.sh

  • 改maven镜像为aliyun镜像

cd /mydata/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/maven3.6.3/conf
sudo vim settings.xml
  • 添加阿里云镜像

    image.png

  • 之后点击保存操作,我们的任务就创建完成了,在任务列表中我们可以点击运行来执行该任务;

    image.png

    image.png

    image.png

    调用测试,可以看到服务返回的hystix 服务降级返回:

    image

Jenkins国内镜像:

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

基于docker的jenkins maven配置地址

/var/jenkins_home/tools/hudson.tasks.Maven_MavenInstallation/