云服务器中安装docker+jenkins部署接口自动化测试(java)

在安装和配置前需要对Linux命令有一定的了解。

在Linux中安装jdk与环境变量配置

官网下载需要注册一个账号
下载jdk地址https://www.oracle.com/java/technologies/downloads/
jdk8地址https://www.oracle.com/java/technologies/downloads/#java8
我这里下载的是:jdk-8u321-linux-x64.tar.gz
在/usr/local下新建目录java,同时把后面要安装的git、maven、allure目录都创建了,如果已存在目录则不需要创建(ls或ll查看)

# 进入/usr/local目录
cd /usr/local
# 创建目录java文件夹
mkdir java
# 同时把后面要安装的git、maven、allure目录都创建了
mkdir git
mkdir maven
mkdir allure

将下载好的jdk包上传到java目录下,在/usr/local目录下执行以下命令解压jdk-8u321-linux-x64.tar.gz

# 解压命令
tar zxvf jdk-8u321-linux-x64.tar.gz

查看解压后的目录
在这里插入图片描述

配置环境变量

vim /etc/profile

输入完毕并回车,在文件尾部添加如下信息:

export JAVA_HOME=/usr/local/java/jdk1.8.0_321
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin

在这里插入图片描述

注意:第一行的JAVA_HOME=/usr/local/jdk/jdk1.8.0_321 此处等号右边的是自己的jdk实际解压目录。如果不是该目录则需要改成自己的实际目录,其他不变。
编辑完之后,保存并退出,然后输入以下指令,刷新环境配置使其生效:

source /etc/profile

查看jdk是否安装成功,输入指令java -version,回车出现对应的版本,则安装与配置完成
在这里插入图片描述
此时可以把jdk-8u321-linux-x64.tar.gz压缩包删除以节省空间

在Linux中安装git与环境变量配置

git编译好的包本人没有,只能从github下载源码编译安装
登录github查看自己想要安装的版本https://github.com/git/git/tags
在这里插入图片描述
源码编译安装Git,我选择最新版的v2.35.3,安装步骤如下:
进入Linux服务器,执行下载,命令为:

wget https://github.com/git/git/archive/v2.35.3.tar.gz
#在gitee上的地址https://gitee.com/mirrors/git/releases,毕竟github有时连不上可以手工下载

在这里插入图片描述
解压压缩包命令

tar zxvf v2.35.3.tar.gz

安装编译源码所需依赖,命令如下,出现提示输入y,耐心等待安装即可。

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

安装依赖时,yum自动可能安装了Git,需要卸载旧版本Git,命令为: yum remove git 出现提示输入y即可,没有自动安装执行命令也不影响;我的是没有自动安装。

#cd 进入解压后的git-2.35.3目录
cd git-2.35.3

执行编译命令如下:

make prefix=/usr/local/git all

安装Git至/usr/local/git路径,命令如下:

make prefix=/usr/local/git install

配置环境变量

vim /etc/profile

在底部加上Git相关配置信息:

 export PATH=$PATH:/usr/local/git/bin

编辑完之后,保存并退出,然后输入以下指令,刷新环境配置使其生效:

source /etc/profile

查看git是否安装成功,输入指令git–version,回车出现对应的版本,则安装与配置完成
在这里插入图片描述
此时可以将v2.35.3.tar.gz下载到本地保留,下次就不用在去github下载编译啦,毕竟github并不是每次都能愉快的连上。

在Linux中安装maven与环境变量配置

下载maven包地址https://maven.apache.org/download.cgi
在这里插入图片描述
前面已经建好maven目录,下载后直接直接上传到maven目录下解压,在配置环境变量即可。
解压命令如下:

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

cd进入apache-maven-3.8.5目录下,创建maven仓库目录,执行以下命令

mkdir localRepository

在这里插入图片描述
进入cd conf目录,设置阿里镜像仓库,一定要配置一下,国内的下载jar快很多。

cd conf            # 进入conf目录
vim settings.xml 	# settings.xml文件

配置仓库目录

#/usr/local/maven/apache-maven-3.8.5/localRepository 为仓库的绝对路径
<localRepository>/usr/local/maven/apache-maven-3.8.5/localRepository</localRepository>

在这里插入图片描述

配置阿里镜像仓库

<mirror>
  <id>alimaven</id>
  <name>aliyun maven</name>
   <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>
</mirror>

在这里插入图片描述

配置maven环境变量

# 编辑/etc/profile 文件
vim /etc/profile

在文件最后面加上以下内容

export MAVEN_HOME=/usr/local/maven/apache-maven-3.8.5
export PATH=$PATH:$MAVEN_HOME/bin

重新加载一下,source /etc/profile 使新增配置生效

source /etc/profile

查看配置是否成功,出现对应的版本说明安装与配置已完成。

mvn -v

在这里插入图片描述

在Linux中安装allure与配置环境变量

下载地址https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/
选择自己想要的版本下载
在这里插入图片描述
下载好以后上传到/usr/lacal/allure目录下解压解压命令如下:

tar zxvf allure-commandline-2.13.0.tgz

在这里插入图片描述
配置allure环境变量

# 编辑/etc/profile 文件
vim /etc/profile

在文件最后面加上以下内容

export ALLURE_HOME=/usr/local/allure/allure-2.13.0
export PATH=$PATH:$ALLURE_HOME/bin

重新加载一下,source /etc/profile 使新增配置生效

source /etc/profile

查看配置是否成功,出现对应的版本说明安装与配置已完成。

allure --version

在这里插入图片描述

Linux 上安装docker与配置

安装

安装命令如下:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

各种 Linux 系统的手动安装步骤见官方文档
安装好 docker 服务后还应该把 docker 服务设置为开机启动命令如下:

# 查看是否设置开机启动
systemctl list-unit-files | grep docker.service.*enabled

# 设置开机启动
systemctl enable docker.service

# 关闭开机启动
systemctl disable docker.service

修改镜像加速

修改/etc/docker/daemon.json 文件,如果没有先建一个即可。

sudo vim /etc/docker/daemon.json

修改配置文件内如下:

{
"registry-mirrors": ["https://registry.docker-cn.com"]
}

然后重启服务

sudo systemctl daemon-reload
sudo systemctl restart docker

jenkins安装

安装命令(需要将前面安装的jdk、git、maven、allure映射到容器中):

#先下载到仓库再安装也可以直接安装
#docker pull jenkins/jenkins:alpine
#docker run -d -u root --restart=always --name jenkins-server -v /var/jenkins_home:/var/jenkins_home -v $(which docker):/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -p 8181:8080 -p 50000:50000 jenkins/jenkins:alpine

#docker run -d -u root --restart=always --name jenkins-server -v /usr/bin/virtualenv:/usr/bin/virtualenv -v /usr/bin/python:/usr/bin/python -v /usr/bin/pip:/usr/bin/pip -v /usr/local/python:/usr/local/python -v /usr/local/allure:/usr/local/allure -v /usr/local/git:/usr/local/git -v /usr/local/maven:/usr/local/maven -v /usr/local/java:/usr/local/java -v /var/jenkins_home:/var/jenkins_home -v $(which docker):/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v /etc/localtime:/etc/localtime -p 8181:8080 -p 50000:50000 jenkins/jenkins:alpine

docker run -d -u root --restart=always --name jenkins-server -v /usr/local/allure:/usr/local/allure -v /usr/local/git:/usr/local/git -v /usr/local/maven:/usr/local/maven -v /usr/local/java:/usr/local/java -v /var/jenkins_home:/var/jenkins_home -v $(which docker):/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock -v /etc/localtime:/etc/localtime -p 8181:8080 -p 50000:50000 jenkins/jenkins:alpine

访问 jenkins
容器创建成功后,在宿主机上访问 http://主机IP:8181 即可访问容器中的 jenkins。
如果是在云服务器则需要添加安全组(开发访问端口)。
在这里插入图片描述
这如果没有映射到宿主机需要进入jenkins容器查看,如果做了映射直接在宿主机查看即可。
安装插件,选择推荐即可。

# 在宿主机
cat /var/jenkins_home/secrets/initialAdminPassword

# 进入容器的方式查看
docker exec -it jenkins-server /bin/bash	#jenkins-server为容器名称或ID
cat /var/jenkins_home/secrets/initialAdminPassword

在这里插入图片描述
选择推荐的即可
在这里插入图片描述
等待安装即可
在这里插入图片描述
创建一个管理员或点击右下角使用admin账户继续。
在这里插入图片描述
保存并完成
在这里插入图片描述
至此jenkins已安装完成,可以开始登录了
在这里插入图片描述
首次登录使用admin建议先修改admin管理员密码,下次登录就可以直接使用修改后的密码登录而不需要再查看initialAdminPassword文件;如果忘记改也没关系去查initialAdminPassword文件就可以啦!!!
在这里插入图片描述
在这里设置你的密码
在这里插入图片描述

jenkins中的配置

如果选择的是中文版的jenkins,在配置前可以重启一下,就都是中文了,不重启有部分是英文。

插件安装

我们需要一些插件支持
Git plugin(管理项目源代码)
Allure Jenkins Plugin(Jenkins集成Allure报告)
Email Extension Plugin(邮件通知)
系统管理-插件管理里进行安装即可(可以在已安装中查看是否已经安装,已安装的可以不用再安装);这里只安装我需要用到的插件,如果需要别的插件,自行安装;所有插件安装好后需要重启jenkins。
在这里插入图片描述
选择可选插件,搜索需要安装的插件进行安装,可以先在已安装中搜索查看是否已经安装,有一些默认已经安装了,已安装的插件不用再安装。

例如:git有代替品,不需要安装
在这里插入图片描述
在这里插入图片描述
Allure Jenkins Plugin没有安装,需要安装。
在这里插入图片描述
搜索出来有可能会有多个,选择自己需要的进行安装。
在这里插入图片描述
静静的等待安装完成。
在这里插入图片描述
Email Extension Plugin默认已经安装就不需要再安装了。
在这里插入图片描述
至此我们需要的插件已经安装完成。

jenkins工具配置JDK、Maven、Allure

Jenkins在运行中需要使用各种工具,包括JDK、Maven、Allure等。
在这里插入图片描述
在这里插入图片描述
前面安装的JDK、maven、Allure这里就要用到了,默认时勾选了自动安装,需要去掉勾选。
如果出现黄色提示的请查看jenkins安装时做的映射是否正确;因为jenkins容器安装时默认有jdk和git,没有安装或配置不对,有时也能正常构建和运行。
jdk的配置
在这里插入图片描述
git的配置
在这里插入图片描述
maven的配置
在这里插入图片描述
allure的配置
在这里插入图片描述

配置邮件通知

进入Manage Jenkins -> Configure System
在这里插入图片描述
配置系统管理员邮箱地址:
在这里插入图片描述
配置Extended E-mail Notification:
如果使用的不是qq邮箱,自行查阅smtp server与smtp port,比较新的jinkens这里需要点击高级-添加,配置管理员的名称和邮箱秘钥,这不是管理员的登录密码,
qq开启smtp服务就可以拿到秘钥,别的邮箱自行百度。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
可以选择通过发送测试邮件测试配置,测试邮件是否能发成功。
在这里插入图片描述

Jenkins配置Git密钥

Jenkins在执行时需要从Git服务器拉取代码,所以我们需要在Jenkins端配置Git的密钥(私钥在id_rsa文件中),这样就不需要使用用户名密码的方式访问Git了。
进入到Jenkins,选择Manage Jenkins->Manage Credetials -> Jenkins -> 全局凭据 -> Add
Credentials,添加全局凭证:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
配置任务终于完成,下面开始新建任务了

任务配置

在这里插入图片描述
Maven Integration plugin
默认自动跳转到下面的页面,如果没有跳转页没关系,可以从我的视图里点击进入后配置。
在这里插入图片描述

从我的视图页面点击,还有别的方式这里就不介绍了。
在这里插入图片描述

这里先验证一下能发从git构建项目,我的视图-选择对应的项目-立即构建
在这里插入图片描述
可以点进去-控制台输出,出现Finished: SUCCESS说明已经构建成功
在这里插入图片描述
配置项目运行
在这里插入图片描述
在这里插入图片描述
配置好再点击立即构建,这里会下载pom.xml中的依赖需要有耐心,如果没有在settings.xml中配置镜像仓库,下载可能会失败
在这里插入图片描述

配置生成allure测试报告

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

配置完再构建一次就有测试报告生成了
在这里插入图片描述

配置每次生成测试报告后发送邮件

在这里插入图片描述
在这里插入图片描述
设置每次都发送邮件
在这里插入图片描述
在这里插入图片描述
再构建时就能收到测试报告的邮件啦
在这里插入图片描述
收到的邮件,点击邮件中的链接可以查看报告和日志(需要有jenkins账号)
在这里插入图片描述
配置定时执行构建测试
在这里插入图片描述
在这里插入图片描述
构建触发器
构建触发器是Jenkins启动一个任务构建的条件,当条件满足时,任务构建执行。
build periodically
隔一段时间构建一次,不管版本库代码是否发生变化。
poll scm
隔一段时间比较一次源代码如果发生变更,那么就构建,否则不进行构建。
时间表达式
时间表达式是由五部分组成,每一部分中间由空格隔开,如下:
MINUTE HOUR DOM MONTH DOW
MINUTE: 分钟(0–59)
HOUR: 小时(0–23)
DOM: 每月的第几天(1–31)
MONTH: 月份(1–12)
DOW: 周几(0–7, 0和7都代表周天)
每一部分还可以设置为以下的值:
*:指所有的值
M-N:指一个范围区间内的值
M-N/X 或 */X:指(在一个范围内/所有)满足间隔X的值
A,B,…,Z:列举了这一部分所有的值
示例:

  1. 每天的晚上八点钟:
    0 20 * * *
  2. 每月的第10号晚上零点:
    0 0 10 * *
  3. 每天晚上的八点10分到15分
    10-15 20 * * *
  4. 每间隔10分钟
    */10 * * * *
  5. 每间隔1小时
  • */1 * * *
  1. 前三十分钟内每间隔5分钟
    0-30/5 * * * *
  2. 每天的20,21,23点执行
    0 20,21,23 * * *

问题记录

  1. 没有设置jdk、maven、git、allure映射

    git全局工具配置报错
    在这里插入图片描述
    没有映射git构建报错如下:

    ERROR: Workspace has a .git repository, but it appears to be corrupt.
    hudson.plugins.git.GitException: Error performing git command: /usr/local/git/bin/git rev-parse --resolve-git-dir /var/jenkins_home/workspace/autotest/.git
    	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2679)
    	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2601)
    	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2597)
    	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1968)
    	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommand(CliGitAPIImpl.java:1980)
    	at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.hasGitRepo(CliGitAPIImpl.java:395)
    	at hudson.plugins.git.GitAPI.hasGitRepo(GitAPI.java:241)
    	at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1201)
    	at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1294)
    	at hudson.scm.SCM.checkout(SCM.java:540)
    	at hudson.model.AbstractProject.checkout(AbstractProject.java:1217)
    	at hudson.model.AbstractBuild$AbstractBuildExecution.defaultCheckout(AbstractBuild.java:647)
    	at jenkins.scm.SCMCheckoutStrategy.checkout(SCMCheckoutStrategy.java:85)
    	at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:519)
    	at hudson.model.Run.execute(Run.java:1897)
    	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44)
    	at hudson.model.ResourceController.execute(ResourceController.java:101)
    	at hudson.model.Executor.run(Executor.java:442)
    

    maven全局工具配置报错
    在这里插入图片描述
    没有映射maven构建报错如下:

    FATAL: Couldn’t find any executable in /usr/local/maven/apache-maven-3.8.5
    

    jdk全局工具配置报错
    在这里插入图片描述
    没有映射jdk构建报错如下:

    The JAVA_HOME environment variable is not defined correctly,
    this environment variable is needed to run this program.
    

    allure全局工具配置报错在这里插入图片描述
    没有映射allure构建报错如下:

    ERROR: Step ‘Allure Report’ aborted due to exception: 
    java.io.IOException: Can't find allure commandline <null>
    	at ru.yandex.qatools.allure.jenkins.tools.AllureCommandlineInstallation$GetMajorVersion.call(AllureCommandlineInstallation.java:74)
    	at ru.yandex.qatools.allure.jenkins.tools.AllureCommandlineInstallation$GetMajorVersion.call(AllureCommandlineInstallation.java:65)
    	at hudson.remoting.LocalChannel.call(LocalChannel.java:47)
    	at ru.yandex.qatools.allure.jenkins.tools.AllureCommandlineInstallation.getMajorVersion(AllureCommandlineInstallation.java:63)
    	at ru.yandex.qatools.allure.jenkins.ReportBuilder.build(ReportBuilder.java:52)
    	at ru.yandex.qatools.allure.jenkins.AllureReportPublisher.generateReport(AllureReportPublisher.java:312)
    	at ru.yandex.qatools.allure.jenkins.AllureReportPublisher.perform(AllureReportPublisher.java:231)
    	at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
    	at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:79)
    	at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20)
    	at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:816)
    	at hudson.model.AbstractBuild$AbstractBuildExecution.performAllBuildSteps(AbstractBuild.java:765)
    	at hudson.model.Build$BuildExecution.post2(Build.java:179)
    	at hudson.model.AbstractBuild$AbstractBuildExecution.post(AbstractBuild.java:709)
    	at hudson.model.Run.execute(Run.java:1922)
    	at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:44)
    	at hudson.model.ResourceController.execute(ResourceController.java:101)
    	at hudson.model.Executor.run(Executor.java:442)
    
  2. maven中settings.xml注释错误,–与>中带空格会报下面的错:

    [ERROR] Error executing Maven.
    [ERROR] 1 problem was encountered while building the effective settings
    [FATAL] Non-parseable settings /usr/local/maven/apache-maven-3.8.5/conf/settings.xml: in comment after two dashes (--) next character must be > not   (position: START_TAG seen ...</blocked>\r\n    </mirror>\r\n     -- ... @168:9)  @ /usr/local/maven/apache-maven-3.8.5/conf/settings.xml, line 168, column 9
    

    在这里插入图片描述

  3. jenkins自带jdk和git处理
    有的新版本jenkins自带jdk和git,导致映射到容器中的不生效,目前没有什么好的办法解决,如果存在自带的就用自带的;因为我想卸载容器自带的,容器中缺少很多命令无法卸载;如果哪位大佬有好的方法提供万分感谢。

  4. maven中没有设置镜像仓库
    待补充。。。
    遇到其他问题欢迎留言。。。

  • 3
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值