Jenkins的安装和使用

一、Jenkins介绍

Jenkins 是一个开源的自动化构建与集成工具。它提供了一种易于使用的方式来持续集成和持续交付软件项目,以减少人工干预的需要并提高效率。Jenkins 可以与几乎所有编程语言和构建工具集成,包括 Java、C++、Python、Ruby、Node.js、Gradle、Maven 等等。

Jenkins 可以自动执行以下操作:

  1. 从版本控制系统中拉取代码。
  2. 自动构建代码并运行单元测试、集成测试等自动化测试。
  3. 部署应用程序到预先定义的环境中,如开发、测试、生产等。
  4. 发布构建报告和通知团队。

Jenkins 还提供了许多插件,可以扩展其功能,如支持代码静态分析与代码质量检查,版本控制系统的集成,自动部署到云端等。

二、Jenkins的下载和安装

1. 官网下载相应版本。

 [打开下载链接](https://www.jenkins.io/download/),这里分为两个目录,左边是稳定版,右边是最新版。这里使用docker安装jenkins
 docker search jenkins

在这里插入图片描述

2. 获取jenkins镜像

docker pull jenkins

3. 查看已下载的镜像

docker images
在这里插入图片描述

4. 修改目录权限

mkdir -p /home/local/docker/jenkins/jenkins_home
在这里插入图片描述

5. 构建Jenkins容器

docker run
-d
-u root
–name jenkins
-p 8080:8080
-v /usr/local/java/jdk1.8.0_381:/usr/local/java
-v /usr/local/maven/apache-maven-3.9.3:/usr/local/maven
-v /home/local/docker/jenkins/jenkins_home:/var/jenkins_home
–restart=always
jenkins/jenkins;
在这里插入图片描述
说明:
docker run
-d # 标识是让 docker 容器在后台运行
-u root 以root用户运行
–name jenkins # jenkins名字
-p 8080:8080 # jenkins的默认端口
-v /usr/local/java/jdk1.8.0_381:/usr/local/java # jdk的数据卷
-v /usr/local/maven/apache-maven-3.9.3:/usr/local/maven # maven的数据卷
-v /home/local/docker/jenkins/jenkins_home:/var/jenkins_home # jenkins工作空间目录
–restart=always 容器的重启策略
jenkins/jenkins # 构建jenkins容器基于的镜像及版本

创建完通过 docker ps -a 查看
在这里插入图片描述

6. 进入容器内部 docker exec -it jenkins bash

在这里插入图片描述
执行:cat /var/jenkins_home/secrets/initialAdminPassword,得到密码
在这里插入图片描述

7. 访问jenkins: http://154.152.67.170:8080/,输入上面的密码

在这里插入图片描述

8. 安装插件

在这里插入图片描述
在这里插入图片描述

9.创建管理员账户

在这里插入图片描述

10.配置实例

在这里插入图片描述
在这里插入图片描述

11.登录进入jenkins并配置全局工具JDK1.8和Maven

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、Jenkins Pipeline的使用

1.安装pipeline插件

在这里插入图片描述
在这里插入图片描述

2.配置SSH Server

在这里插入图片描述

3.新建一个pipeline项目

在这里插入图片描述
在这里插入图片描述

4.编写Jenkinsfile和deploy.sh

Jenkinsfile:

pipeline {
    agent any
    tools {
        maven 'maven'
    }
    stages {
        stage('Fetch Code') {
            steps {
                checkout scmGit(branches: [[name: '*/master']], extensions: [], userRemoteConfigs: [[credentialsId: '988081f7-b728-450b-9b37-2c27724437fe', url: 'https://gitee.com/xxx/spring-boot-demo.git']])
            }
        }
        stage('Maven Build') {
            steps {
                sh 'mvn clean package'
            }
        }
        stage('Deploy') {
            steps {
                sshPublisher(publishers: [sshPublisherDesc(configName: 'kk', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '/tmp/applications/spring-boot-demo/deploy.sh', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/tmp/applications/spring-boot-demo/', remoteDirectorySDF: false, removePrefix: 'target', sourceFiles: 'target/spring-boot-demo-0.0.1-SNAPSHOT.jar')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: true)])
            }
        }
    }
}

deploy.sh:

#!/bin/bash

source /etc/profile

basedir=/tmp/applications/spring-boot-demo
filename=spring-boot-demo-0.0.1-SNAPSHOT.jar
rundir=$basedir/run
logfile=$rundir/start.log

pid=`ps -ef | grep $filename | grep -v 'grep' | awk '{print $2}'`
echo "last pid: $pid"

if [ -n "$pid" ]
  then
    kill -9 $pid
else
    echo "no running application"
fi

cp -rf $basedir/$filename $rundir

cd $rundir

chmod 777 -R $rundir/$filename

sleep 5s
echo "execute run application command start"
nohup /usr/local/java/jdk1.8.0_381/bin/java -jar $rundir/$filename > $logfile 2>&1 &
echo "execute run application command end"
sleep 5s

pid=`ps -ef | grep $filename | grep -v 'grep' | awk '{print $2}'`

if [ -n "$pid" ]
  then
    echo "pid: $pid"
    echo "application started successfully"
else
    echo "application start failure"
fi

5.修改配置

在这里插入图片描述

6.点击立即构建

在这里插入图片描述

四、Jenkins 安装和使用过程中常见的问题

1.“/bin/bash^M: bad interpreter”

1.1 错误描述

bash: /tmp/applications/spring-boot-demo/deploy.sh: /bin/bash^M: bad interpreter: No such file or directory

1.2 根本原因

dos下创建的unix脚本

1.3 解决方法:

将脚本文件的格式转换为Unix格式,命令:dos2unix deploy.sh
如果没有安装dos2unix,则需先安装,安装命令:yum -y install dos2unix*

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值