让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】

环境

  • centos 7
  • Java 1.8
  • maven 3.6.3
  • Jenkins 2.46.3

Jenkins相关依赖环境

Java环境

虽然我们是采用docker的方式安装Jenkins,所有的依赖镜像都已经打包好了。但是我们在后续使用Jenkins的过程中,会采用Jenkins主机上的Java运行环境,所以我们还是要安装一下java JDK8、并且配置一下环境变量。

推荐文章:https://segmentfault.com/a/11...

maven环境

推荐文章:https://segmentfault.com/a/11...

部署docker

推荐文章:https://segmentfault.com/a/11...

部署jenkins(基于docker)

我们可以自己在本机上部署jenkins,也可以使用docker进行部署,这次我们选择docker来部署。

  1. 备份一下/usr/local/java目录和/usr/local/apache-maven-3.6.3目录里面的

    cp -r /usr/local/java /usr/local/java_bak
    cp -r /usr/local/apache-maven-3.6.3 /usr/local/apache-maven-3.6.3_bak
  2. 执行以下命令即可:

    docker run -d -p 8001:8080 -p 8002:50000 -v /usr/local/jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime -v /etc/local/java:/etc/local/java -v /usr/local/apache-maven-3.6.3:/usr/local/apache-maven-3.6.3 --name jenkins jenkins:2.46.3

    其中要注意的是:

    • 挂载/usr/local/jenkinsHome是jenkins的主目录
    • 挂载/etc/localtime目录是为了容器内的jenkins与主机时间一致;
    • 挂载/etc/local/java是同步主机的java到容器中的jenkins(不然后面会有坑)
    • 挂载/usr/local/apache-maven-3.6.3是同步主机的maven到容器中的jenkins(不然后面会有坑)

    下面是命令的解释:

    docker run -d   
     -p 8001:8080\ # 将容器中的端口8080,挂载到主机端口8001
     -p 8002:50000\ # 将容器中的端口50000,挂载到主机端口8002
     -v /usr/local/jenkins:/var/jenkins_home\ # 将容器中的目录/var/jenkins_home,挂载到主机目录/usr/local/jenkins
     -v /etc/localtime:/etc/localtime\ # 将容器中的目录/etc/localtime,挂载到主机目录/etc/localtime
     -v /etc/local/java:/etc/local/java\ # 将容器中的目录/etc/local/java,挂载到主机目录/etc/local/java
     -v /usr/local/apache-maven-3.6.3:/usr/local/apache-maven-3.6.3\ # 将容器中的目录/usr/local/apache-maven-3.6.3,挂载到主机目录/usr/local/apache-maven-3.6.3
     --name jenkins\ # 给容器命名为jenkins
     jenkins:2.46.3 # 选择镜像
  3. 执行命令docker ps,我们会发现jenkins并没有被启动起来。这是因为我们刚才挂载的目录,jenkins容器并没有访问启动。所以,我们需要给挂载的目录给予权限。

    chown -R 1000:1000 /usr/local/java
    chown -R 1000:1000 /usr/local/apache-maven-3.6.3
    chown -R 1000:1000 /usr/local/jenkins
    chown -R 1000:1000 /etc/localtime
  4. 重新执行下面命令,以启动jenkins。

    docker run -d -p 8001:8080 -p 8002:50000 -v /usr/local/jenkins:/var/jenkins_home -v /etc/localtime:/etc/localtime -v /usr/local/java:/usr/local/java -v /usr/local/apache-maven-3.6.3:/usr/local/apache-maven-3.6.3 --name jenkins jenkins:2.46.3
  5. 查看jenkins是否启动成功,执行命令docker ps,查看是否有jenkins
    image.png
  6. 在浏览器访问http://主机ip:8001,如果出现下面页面表示成功
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第1张图片
  7. 执行命令docker logs jenkins,复制日志文件中的密码。
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第2张图片
  8. 浏览器访问http://主机ip:8001,到刚才复制的密码,粘贴到输入框中。
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第3张图片
  9. 点击continue,出现以下页面,选择默认选项(安装推荐插件),继续即可。
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第4张图片
  10. 等待插件安装完成,如果有安装失败的,多试几次就行。(也可以后面再安装)
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第5张图片
  11. 插件安装完毕后,会自动进入到创建账号的页面。我们这里为了快速进行,直接选择使用admin账户继续
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第6张图片
  12. 设置jenkins的路径,我们默认继续即可
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第7张图片
  13. 点击开始使用jenkins,即可进入jenkins管理面板
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第8张图片
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第9张图片

使用Jenkins部署Java项目

  1. 点击Manage Jenkins,进入jenkins管理
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第10张图片
  2. 选择Manage Plugins,进入jenins插件管理
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第11张图片
  3. 选择Available,进行插件搜索安装
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第12张图片
  4. 搜索maven,勾选第一个Maven Integration,最后选择Download now...restart.
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第13张图片
  5. 等待插件下载完成,最后选择空闲时重启即可
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第14张图片
    jenkins安装插件可能重启可能会出现挂掉的情况,这个时候我们只需要手动执行docker start jenkins即可。
  6. 同理安装插件Publish Over SSH
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第15张图片
  7. 重启进入jenkins后,我们重新进入Manager Jenkins,点击进入管理用户
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第16张图片
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第17张图片
  8. 选择admin旁边的小齿轮,然后下滑找到密码项。修改密码,保存即可。
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第18张图片
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第19张图片
  9. 重登jenkins,点击进入Manage Credentials,进行全局账号密码配置
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第20张图片
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第21张图片
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第22张图片
  10. 选择添加一些凭证,设置账号密码
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第23张图片
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第24张图片

    • 其中id,为凭证的唯一标识符,只要保证唯一不重复即可。
    • 描述用于标识这个凭证是干什么的,例如图中的host@xiaoYan,就意思为xiaoYan 主机的账号密码
  11. 按照上一步,我们同样添加一条用于gitlab认证的凭证记录
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第25张图片
  12. 再次进入Manager Jenkins,点击进入系统配置。然后一直下拉到最后,找到SSH Servers配置项,点击新增。按照下图指示配置完毕后,点击保存退出即可。
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第26张图片
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第27张图片

    • name: 给主机起一个名字
    • Hostname: 主机ip
    • Username: 主机用户名
    • Remote Directory: 主机默认目录
    • Passphrase / Password:主机用户密码
  13. 这次我们来配置全局工具配置
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第28张图片
    首先配置全局默认maven配置文件,路径填写jenkins同主机上的maven配置文件路径
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第29张图片
    然后配置Java目录,如果出现图中的提示,表示主机的Java目录并没有挂载到docker容器的Jenkins中。所以需要我们进行将/usr/local/java手动挂载到Jenkins中。(如果前面的命令没有错,这里不会出现这种情况的。但是我自己执行的过程中命令有偏差,导致了java目录没有被正确挂载上)

    手动挂载Docker目录:https://segmentfault.com/a/11...
    在配置git目录。在jenkins主机上执行whereis git,得到git命令所在目录。
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第30张图片
    最后配置一下maven目录。
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第31张图片
    保存退出即可。
  14. 终于到了配置Java项目的时候了,点击新建项目
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第32张图片
  15. 选择maven风格,输入项目名称(这个名称会是jenkins下workspeace的工程目录)
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第33张图片
  16. 添加描述
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第34张图片
  17. 配置gitlab地址,其中Credentials选择我们之前在全局Credentials配置的gitlab认证,分支选择我们需要打包部署的分支。
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第35张图片
  18. 配置SSH Publishers,即jar包打包的动作
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第36张图片
  19. 配置Build,即构建需要的项目pom.xml文件,和打包命令。
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第37张图片
  20. 保存退出,点击立即构建。等等出现绿色小对钩,即表示构建成功。
    让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】_第38张图片
  21. 登录部署jar包的服务器,查看jar包有没有被正确的打包发送过指定得目录。java服务有没有被正确的启动起来。
    image.png

完美收工!

你可能感兴趣的:(让我们优雅的持续部署开发SpringBoot-Jenkins【超级详细的实战教程】)