环境搭建|第二篇:Docker+Jenkins实现自动化部署

目录

    • 1.前言
    • 2.系统环境
    • 2.docker 安装jenkins
    • 3.jenkins配置
    • 4.jenkins插件安装
    • 5.配置项目
    • 6.常见问题

1.前言

一直想写一个系列,将平时工作中使用的环境、技术都写进同一系列中,目的主要使自己知识成体系,初步规划内容有《Docker+Nexus搭建Maven私服》、《Docker+Jenkins实现自动化部署》、《Springcloud系列》、《k8s服务编排》,后续可能还会有新的动西加入,涉及的动西比较多,时间会比较长,希望自己能坚持写完。


2.系统环境

1.环境搭建均使用Docker安装,故需要Docker相关知识,对于Docker不熟悉的童鞋可参见我的另一篇文章Docker学习笔记之基础知识
2.以下ip非腾讯云真实ip,大家根据自己实际情况填写,此处只是方便后续使用

环境 版本
腾讯云系统 centos7
ip 192.168.1.100
Docker 18.09.6
jenkinsci/blueocean latest

2.docker 安装jenkins

以下涉及docker基本操作
1.docker pull:指从docker仓库拉取jenkins镜像
2.docker run:指启动jenkins镜像

# 拉取镜像 
$ docker pull jenkinsci/blueocean
# 启动镜像
$ docker run -d --name jenkins -p 8080:8080 -p 8010:8010 -p 50000:50000 -v /home/milk/docker/jenkins_home:/var/jenkins_home ba607c18aeb7

3.jenkins配置

jenkins安装完成后,浏览器键入http://192.168.1.100:8080看到如下界面表示jenkins安装完成

  • 解锁jenkins

根据下边显示地址找到密码cat /var/jenkins_home/secrets/initialAdminPassword

环境搭建|第二篇:Docker+Jenkins实现自动化部署_第1张图片

  • 预装插件

建议选择左边推荐插件

环境搭建|第二篇:Docker+Jenkins实现自动化部署_第2张图片

  • 创建账户

设置登录账户名及密码

环境搭建|第二篇:Docker+Jenkins实现自动化部署_第3张图片

4.jenkins插件安装

  • 修改jenkins下载插件路径

1.进入挂载的jenkins本地路径 :cd /home/milk/docker/jenkins_home
2.修改文件hudson.model.UpdateCenter.xml,将url改为如下网址即可

<sites>
  <site>
    <id>defaultid>
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.jsonurl>
  site>
sites>
  • 自定义插件安装

根据自己需要安装插件,此处只安装本将演示所需插件,后需若有需求会继续更新至此处
1.安装 Maven Integration
2.安装 Git Parameter Plug-In

环境搭建|第二篇:Docker+Jenkins实现自动化部署_第4张图片

  • 安装jdk

系统管理->系统设置
1.进入docker中的jenkins查看jdk位置
$ docker exec -it e179907190b9 /bin/bash
2.查看jdk位置
$ echo $JAVA_HOME

  • 安装maven

1.配置maven路径,提前将下载好的maven放至挂载路径下
2.进入docker中jenkins_home文件夹中的maven所在处
3.pwd显示当前路径,将该路径填至下书第二个箭头即个,下书第一个箭头的name可自行定义

环境搭建|第二篇:Docker+Jenkins实现自动化部署_第5张图片

  • 配置全局settings.xml

settings.xml位置为上述配置的maven路径下的conf文件夹中,在此settings.xml文件中可修改maven仓库路径

环境搭建|第二篇:Docker+Jenkins实现自动化部署_第6张图片

5.配置项目

  • 新建项目

说明:必须安装上述插件项中的Maven Integration 才会现下述的"构建一个Maven项目"选项

环境搭建|第二篇:Docker+Jenkins实现自动化部署_第7张图片

  • 配置参数化构建

配置此参数后,在后续构建时,可会弹出选择构建那一个分支

环境搭建|第二篇:Docker+Jenkins实现自动化部署_第8张图片

  • 配置git

1.填入项目地址
2.配置git账户名及密码,比较简单,就不截图展示了

环境搭建|第二篇:Docker+Jenkins实现自动化部署_第9张图片

  • 配置执行maven命令

配置构建时执行的命令

在这里插入图片描述

  • 配置执行脚本

配置此脚本后,在上述项目打包完成后执行此脚本

#!/bin/bash
#服务名称
SERVER_NAME=stock-server
# 源jar路径,mvn打包完成之后,target目录下的jar包名称,也可选择成为war包,war包可移动到Tomcat的webapps目录下运行,这里使用jar包,用java -jar 命令执行
JAR_NAME=stock-server-1.0-SNAPSHOT
# 源jar路径
#/usr/local/jenkins_home/workspace--->jenkins 工作目录
#demo 项目目录
#target 打包生成jar包的目录
JAR_PATH=/var/jenkins_home/workspace/stock-server/target
# 打包完成之后,把jar包移动到运行jar包的目录
JAR_WORK_PATH=/var/jenkins_home/wk_path

echo "查询进程id-->$SERVER_NAME"
PID=`ps -ef | grep "$SERVER_NAME" | awk '{print $2}'`
echo "得到进程ID:$PID"
echo "结束进程"
for id in $PID
do
    kill -9 $id
    echo "killed $id"
done
kill -9 8088
echo "结束进程完成"

#复制jar包到执行目录
echo "复制jar包到执行目录:cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH"
cp $JAR_PATH/$JAR_NAME.jar $JAR_WORK_PATH
echo "复制jar包完成"
cd $JAR_WORK_PATH
#修改文件权限
chmod 777 $JAR_NAME.jar

nohup java -Dhudson.util.ProcessTree.disable=true  -jar $JAR_NAME.jar

6.常见问题

  • 启动时报无权限写入文件
    • Can not write to /var/jenkins_home/copy_reference_file.log. Wrong volume permissions?

    解决:
    1.给挂载文件夹的权限设置为jenkins,本文挂载地址为/home/milk/docker/jenkins_home,即执行命令chown -R 1000:1000 jenkins_home
    2.查看selinux状态:sestatus
    3.关闭selinux
    3.1:临时关闭:setenforce 0
    3.2:永久关闭:vim /etc/selinux/config,将selinux设置为disable

    • 创建项目成功后,修改了全局配置,需重新配置创建好的项目

你可能感兴趣的:(开发实战)