Jenkins自动部署

Posted royal6

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins自动部署相关的知识,希望对你有一定的参考价值。

1. 准备代码,提交到码云Git库

代码中需要包含以下几部分内容:

(1)项目根目录代码中需要包含Dockerfile文件

文件内容:

FROM openjdk:8-jdk-alpine
VOLUME /tmp
COPY ./target/demojenkins.jar demojenkins.jar
ENTRYPOINT ["java","-jar","/demojenkins.jar", "&"]

(2)在项目pom文件中指定打包类型,包含build部分内容

<packaging>jar</packaging>
<build>
    <finalName>demojenkins</finalName>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

2. 安装JAVA 运行环境

第一步:上传或下载安装包

cd/usr/local

jdk-8u121-linux-x64.tar.gz

第二步:解压安装包

tar -zxvf jdk-8u121-linux-x64.tar.gz

第三步:建立软连接

ln -s /usr/local/jdk1.8.0_121/ /usr/local/jdk

第四步:修改环境变量

vim /etc/profile

export JAVA_HOME=/usr/local/jdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

通过命令source /etc/profile让profile文件立即生效

source /etc/profile

第五步、测试是否安装成功

使用java -version,出现版本

3. 安装maven

第一步:上传或下载安装包

cd/usr/local

apache-maven-3.6.1-bin.tar.gz

第二步:解压安装包

tar -zxvf apache-maven-3.6.1-bin.tar.gz

第三步:建立软连接

ln -s /usr/local/apache-maven-3.6.1/ /usr/local/maven

第四步:修改环境变量

vim /etc/profile

export MAVEN_HOME=/usr/local/maven

export PATH=$PATH:$MAVEN_HOME/bin

通过命令source /etc/profile让profile文件立即生效

source /etc/profile

第五步、测试是否安装成功

mvn –v

4. 安装git

yum -y install git

5. 安装docker

参考文档:

https://help.aliyun.com/document_detail/60742.html?spm=a2c4g.11174283.6.548.24c14541ssYFIZ

第一步:安装必要的一些系统工具

yum install -y yum-utils device-mapper-persistent-data lvm2

第二步:添加软件源信息

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

第三步:更新并安装Docker-CE

yum makecache fast

yum -y install docker-ce

第四步:开启Docker服务

service docker start

第五步、测试是否安装成功

docker -v

* 6. 安装Jenkins

第一步:上传或下载安装包

cd/usr/local/jenkins

jenkins.war

第二步:启动

nohup java -jar /usr/local/jenkins/jenkins.war >/usr/local/jenkins/jenkins.out &

第二步:访问

http://ip:8080

7. 初始化 Jenkins 插件和管理员用户

7.1访问jenkins

http://ip:8080

7.2解锁jenkins

获取管理员密码

cat /root/.jenkins/secrets/initialAdminPassword

注意:配置国内的镜像

官方下载插件慢 更新下载地址

cd {你的Jenkins工作目录}/updates #进入更新配置位置

sed -i ‘s/http://updates.jenkins-ci.org/download/https://mirrors.tuna.tsinghua.edu.cn/jenkins/g‘ default.json && sed -i ‘s/http://www.google.com/https://www.baidu.com/g‘ default.json

这是直接修改的配置文件,如果前边Jenkins用sudo启动的话,那么这里的两个sed前均需要加上sudo

重启Jenkins,安装插件

7.3选择“继续”

7.4选择“安装推荐插件”

7.5插件安装完成,创建管理员用户

7.6保存并完成

7.7进入完成页面

8. 配置 Jenkins 构建工具

8.1全局工具配置

8.1.1配置jdk

JAVA_HOME:/usr/local/jdk

8.1.2配置maven

MAVEN_HOME:/usr/local/maven

8.1.2配置git

查看git安装路径:which git

9. 构建作业

9.1点击创建一个新任务,进入创建项目类型选择页面

填好信息点击“确认”

9.2配置“General”

9.3配置“源码管理”

填写源码的git地址

添加git用户,git的用户名与密码

选择添加的用户,上面的红色提示信息消失,说明连接成功

9.4构建作业

到源码中找到docker脚本

选择“执行shell”

#!/bin/bash
#maven打包
mvn clean package
echo ‘package ok!‘
echo ‘build start!‘
cd ./infrastructure/eureka_server
service_name="eureka-server"
service_prot=8761
#查看镜像id
IID=$(docker images | grep "$service_name" | awk ‘{print $3}‘)
echo "IID $IID"
if [ -n "$IID" ]
then
    echo "exist $SERVER_NAME image,IID=$IID"
    #删除镜像
    docker rmi -f $service_name
    echo "delete $SERVER_NAME image"
    #构建
    docker build -t $service_name .
    echo "build $SERVER_NAME image"
else
    echo "no exist $SERVER_NAME image,build docker"
    #构建
    docker build -t $service_name .
    echo "build $SERVER_NAME image"
fi
#查看容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk ‘{print $1}‘)
echo "CID $CID"
if [ -n "$CID" ]
then
    echo "exist $SERVER_NAME container,CID=$CID"
    #停止
    docker stop $service_name
    #删除容器
    docker rm $service_name
else
    echo "no exist $SERVER_NAME container"
fi
#启动
docker run -d --name $service_name --net=host -p $service_prot:$service_prot $service_name
#查看启动日志
#docker logs -f  $service_name

保存上面的构建作业

9.5构建

构建作业之后,就可以执行构建过程了。

构建结构

第一列是 "上次构建状态显示",是一个圆形图标,一般分为四种:

  • 蓝色:构建成功;
  • 黄色:不确定,可能构建成功,但包含错误;
  • 红色:构建失败;
  • 灰色:项目从未构建过,或者被禁用;

如上显示蓝色,表示构建成功。

注意:手动触发构建的时间与自动定时构建的时间互不影响。

以上是关于Jenkins自动部署的主要内容,如果未能解决你的问题,请参考以下文章

自动代码质量分析(GitLab+JenKins+SonarQube)

如何用Jenkins实现自动化部署svn更新代码

Jenkins环境搭建部署实现代码自动化发布

jenkins自动化部署

jenkins自动部署

gitlab+jenkins自动化部署