【服务器部署篇】Linux下Jenkins安装和配置

作者介绍:本人笔名姑苏老陈,从事JAVA开发工作十多年了,带过刚毕业的实习生,也带过技术团队。最近有个朋友的表弟,马上要大学毕业了,想从事JAVA开发工作,但不知道从何处入手。于是,产生了写一个博客专栏想法,介绍当前互联网企业JAVA项目开发如何快速入门。

本文收录于《30天企业JAVA项目开发实战入门》专栏,该专栏内容以当前互联网软件企业中的项目实战为线索,介绍企业JAVA项目开发中涉及到的开发流程、技术、工具、规范要求等等。帮助想从事JAVA开发的大学生或新人,更快、更好的入门JAVA后端开发工作。

文章目录

    • 一、前言
    • 二、下载&安装
    • 三、配置
    • 四、总结

一、前言

本文介绍在Linux环境下使用Docker方式如何安装Jenkins。

  • Jenkins是什么?

    Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。它是基于Java开发的一种CI持续集成、CD持续部署工具,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。它的前身Hudson是一个可扩展的持续集成引擎,可用于自动化各种任务,如构建,测试和部署软件等等。

    Jenkins官网地址:https://www.jenkins.io/zh/
    在这里插入图片描述

二、下载&安装

首先,从Jenkins官方Docker镜像仓库中,下载Jenkins的镜像安装包。

Jenkins官方Docker仓库地址:https://hub.docker.com/r/jenkins/jenkins

在这里插入图片描述

从官网上可以看到,当前最新的稳定版本是 jenkins/jenkins:lts-jdk17。

所以,我们这里,执行docker pull命令,下载该版本的Jenkins的镜像安装包;

docker pull jenkins/jenkins:lts-jdk17

之后,新增一个Jenkins的工作目录;

mkdir -p /docker/jenkins_home

之后,设置Jenkins工作目录的文件权限,即设置文件的属主或者拥有者为Jenkins。(PS:因为"docker"用户在宿主机上的uid默认是"1000")

chown -R 1000 /docker/jenkins_home

之后,执行docker run命令,开始安装Jenkins。

docker run -d \
-p 8888:8080  \
-p 50000:50000  \
-v /usr/bin/docker:/usr/bin/docker  \
-v /docker/jenkins_home:/var/jenkins_home  \
-v /etc/localtime:/etc/localtime   \
--privileged=true  \
--restart=always \
--name=jenkins \
jenkins/jenkins:lts-jdk17

命令参数详解如下:

  • -run -d :后台运行容器;
  • -p 8888:8080 将容器的 8080 端口映射到服务器的 8888端口上;
  • -p 50000:50000 将容器的 50000 端口映射到服务器的 50000 端口上;
  • -v /usr/bin/docker:/usr/bin/docker 将容器中 docker目录挂载到宿主机上,方便调用宿主机的docker命令;
  • -v /docker/jenkins_home:/var/jenkins_home 将容器中 Jenkins 的工作目录挂载到宿主机上;
  • -v /etc/localtime:/etc/localtime 设置容器使用跟宿主机同样的时间设置;
  • –privileged=true 赋予容器root权限,便于进入容器;
  • -restart=always 设置容器自动重启;
  • -name=jenkins 给容器起的别名;
  • jenkins/jenkins:lts-jdk17 镜像名称加版本号;

之后,安装完成,可以使用docker ps命令,查看Jenkins容器的运行状态;

docker ps

在这里插入图片描述

如果Jenkins容器状态显示为UP,表示Jenkins启动成功。

三、配置

安装完成后,下面开始配置。

在开始配置之前,首先,修改Jenkins插件下载源地址,设置为国内的镜像源地址,比如清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json (PS:这个很重要,否则会导致插件安装失败。)

cd  /docker/jenkins_homevi hudson.model.UpdateCenter.xml 

在这里插入图片描述

之后,登录阿里云控制台,设置ECS安全组规则,对外开放8888端口访问。(PS:因为我们在上面的安装过程中,把Jenkins的8080端口映射到宿主机服务器上的8888端口了。所以对外开放8888端口的访问,后续浏览器才能正常访问Jenkins页面。)
在这里插入图片描述

之后,打开浏览器访问Jenkins,进入Jenkins配置引导界面。(PS:地址,http://你的ECS服务器外网IP地址:8888。)
在这里插入图片描述

如上图所示,解锁Jenkins,需要管理员密码。

之后,使用docker ps命令,查看你的Jenkins容器ID。

docker ps

在这里插入图片描述

之后,使用docker logs命令,查看管理员密码。

docker logs 你的Jenkins容器ID

在这里插入图片描述

之后,在安装引导页面中,输入上图中管理员密码,点击继续,进入插件安装页面,点击安装推荐的插件;
在这里插入图片描述
之后,进入安装插件进度界面。
在这里插入图片描述
之后,插件安装完成,开始创建管理员用户,输入用户的账号信息,点击保存并完成。
在这里插入图片描述
之后,进入实例配置界面,建议使用默认值,点击保存并完成。
在这里插入图片描述
之后,提示“Jenkins已就绪”,点击开始使用Jenkins。
在这里插入图片描述
至此,Jenkins安装配置完成了,系统自动登录并进入Jenkins控制台主页面。
在这里插入图片描述
至此,Jenkins安装配置完成了。

四、总结

以上介绍了在Linux环境下使用Docker方式如何安装Jenkins。

在Jenkins安装的过程中,出现了插件安装失败的错误。由于需要安装的插件的数量很多,如果手动安装的话,确实很痛苦。所以,这里整理一下插件安装失败错误的解决方案。

错误描述如下
在Jenkins的安装配置引导页面,安装推荐的插件时,出现部分插件安装失败错误。
在这里插入图片描述
另外,当点击继续跳过后。登录Jenkins控制台,在插件管理页面,可用的插件列表中,出现很多红色的警告信息。

Warning: This plugin is built for Jenkins 2.361.4 or newer. Jenkins will refuse to load thisplugin if installed.

在这里插入图片描述

解决方案如下
首先,需要选择合适的Jenkins的镜像版本,建议下载最新的稳定版本。这样的在自动安装插件时,可以避免出现Jenkins版本过低的问题。比如这里选择Jenkins官网发布的 jenkins/jenkins:lts-jdk17版本的docker镜像。

之后,在Jenkins容器启动成功后,及时修改插件的镜像源地址为国内的镜像源地址。这样在安装配置引导页面,自动安装插件时,可以从国内的镜像源中快速的下载插件。比如,这里修改镜像源地址为清华大学开源软件镜像站:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/620327.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java反序列化Commons-Collections-CC1链

环境搭建 JDK8u71以下,这个漏洞已经被修复了,这个JDK的以上版本都修复了漏洞 JDK8u65 下载地址 https://www.oracle.com/cn/java/technologies/javase/javase8-archive-downloads.html这个时候来到 pom.xml 配置Maven依赖下载CommonsCollections3.2.…

【HTML】制作一个简单的实时字体时钟

目录 前言 HTML部分 CSS部分 JS部分 效果图 总结 前言 无需多言,本文将详细介绍一段HTML代码,具体内容如下: 开始 首先新建文件夹,创建一个文本文档,两个文件夹,其中HTML的文件名改为[index.html]&am…

SpringSecurity源码分析3--UserDetail部分

UserDetailsService.class DaoAuthenticationProvider.class AbstractUserDetailsAuthenticationProvider.class 一个允许子类重写和处理UserDetails对象的基AuthenticationProvider。该类旨在响应UsernamePasswordAuthenticationToken身份验证请求。 AuthenticationProvider…

树莓派安装Nginx服务结合内网穿透实现无公网IP远程访问

文章目录 1. Nginx安装2. 安装cpolar3.配置域名访问Nginx4. 固定域名访问5. 配置静态站点 安装 Nginx(发音为“engine-x”)可以将您的树莓派变成一个强大的 Web 服务器,可以用于托管网站或 Web 应用程序。相比其他 Web 服务器,Ngi…

负载均衡(理解/解析)

目录 什么是负载均衡 应用场景 网络服务和应用: 云计算和虚拟化: 负载均衡分类 硬件负载均衡器 软件负载均衡器 部署方式 硬件部署: 软件部署: 云部署: 路由模式: 算法实现 轮询法(Round R…

【详细介绍下火绒安全】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

如何做信创测试

信创测试是一种系统化的方法,旨在评估和验证创意和创新项目的潜力和可行性。进行信创测试可以帮助企业在投入大量资源之前,对创意进行客观、科学的评估,以减少失败的风险并最大化成功的可能性。以下是一般性的信创测试步骤: 确定…

Web前端 JavaScript笔记4

1、元素内容 属性名称说明元素名.innerText输出一个字符串,设置或返回元素中的内容,不识别html标签元素名.innerHTML输出一个字符串,设置或返回元素中的内容,识别html标签元素名.textContent设置或返回指定节点的文本内容&#x…

Pygame经典游戏:贪吃蛇

------------★Pygame系列教程★------------ Pygame经典游戏:贪吃蛇 Pygame教程01:初识pygame游戏模块 Pygame教程02:图片的加载缩放旋转显示操作 Pygame教程03:文本显示字体加载transform方法 Pygame教程04:dra…

【uniapp】vscode安装插件、ts校验、允许json文件注释

1、vscode安装的插件: uni-create-viewuni-hlperuniapp小程序扩展 2、ts校验 安装插件: pnpm i -D types/wechat-miniprogram uni-helper/uni-app-types配置tsconfig.json {"extends": "vue/tsconfig/tsconfig.json","compi…

基于数据库现有表导出为设计文档

1.查询 SELECTCOLUMN_NAME 字段名,COLUMN_COMMENT 字段描述,COLUMN_TYPE 字段类型,false as 是否为主键 FROMINFORMATION_SCHEMA.COLUMNS wheretable_NAME region -- 表名2.查询结果 3.导出为excel