Jenkins从Ubuntu迁移至AlmaLinux问题及相关解决记录
相关背景
之前在Ubuntu平台上搭建了Jenkins(在Ubuntu机器上使用war包安装Jenkins),现在由于一些需求,需要将系统迁移到AlmaLinux平台。由于AlmaLinux属于CentOS系列,与Ubuntu所属的Debian系列不同,在此记录一下迁移中遇到的问题。
问题1:账号没有sudo权限
现象:根据Linux机器自建账号并赋予sudo权限,同时修改远程端口创建CentOS的账号并加入wheel组后,发现新账号无法sudo
解决:/etc/sudoers文件中,wheel组的sudo权限被默认注释,需取消注释使其生效
文件默认为只读,可通过chmod u+w /etc/sudoers增加写权限,编辑完成后通过chmod u-w /etc/sudoers撤销写权限,也可以编辑后使用:wq!来强制保存
%wheel ALL=(ALL) ALL
或者可以选择将用户加入sudoers组,不过用户在sudo时会不需要输入密码
gpasswd -a <username> sudoers
问题2:ssh无法通过密码登录
现象:/etc/ssh/sshd_config中PasswordAuthentication设为yes,但ssh远程时,依旧提示公钥验证失败,只能通过在authorized_keys中添加公钥来登录
解决:sshd_config中include了sshd_config.d文件夹中的配置,该配置优先级高于sshd_config文件,其中将PasswordAuthentication设为了no,修改对应配置后可以通过密码远程
问题3:中文显示乱码,且执行yum命令时提示“Failed to set locale, defaulting to C.UTF-8”
现象:拷贝到系统中的文件中,中文显示乱码,本地执行yum命令,第一行会提示“Failed to set locale, defaulting to C.UTF-8”
解决:调整系统语言环境
首先切换至root账号,并安装语言包
yum install glibc-langpack-zh
yum install glibc-langpack-en
然后设置语言环境
echo "export LC_ALL=en_US.UTF-8" >> /etc/profile
source /etc/profile
之后再运行yum命令就不会有该提示了,中文也能正常显示
问题4:启动jenkins提示权限不够
现象:根据在Ubuntu机器上使用war包安装Jenkins添加jenkins.sh后,执行./jenkins.sh start提示权限不够
解决:文件没有执行权限,先执行一次chmod +x jenkins.sh后,即可执行
问题5:maven执行时,未使用系统指定的jdk
现象:系统执行java -version和javac -version返回的是jdk 8,但执行mvn -v返回使用的是jdk 11
解决:通过查看/usr/bin/mvn的内容可以发现,当系统环境变量未指定JAVA_HOME时,会使用/etc/java/maven.conf中的配置,而yum安装maven时,会默认附带安装jdk 11,并在其中将配置指向jdk 11,注释掉该配置后,会使用系统默认jdk
问题6:jenkins无法通过ssh私钥连接node机器
现象:之前未解决问题2时,无法通过密码连接节点机,因此改用密钥形式,在节点机authorized_keys添加公钥,jenkins添加私钥凭据,但是连接节点机失败
解决:旧版本jenkins(我的是2.356)不支持较新的ssh密钥,之前是通过ssh-keygen -t rsa -C "almallinux jenkins"来生成密钥,现改用旧版本的密钥生成方式
ssh-keygen -m PEM -t rsa -C "almalinux jenkins"
问题7:Jenkins Start Job(Jenkins中HTML报告无法正常显示问题解决)执行失败
现象:执行job时,报错“org.jenkinsci.plugins.scriptsecurity.scripts.UnapprovedUsageException: script not yet approved for use”
解决:在Manage Jenkins → In-process Script Approval中审批通过该脚本
问题8:Jenkins控制台输出中文显示乱码,且代码中中文无法正常展示,中文名任务无法在节点机创建目录
现象:Jenkins控制台输出无法正常显示中文,脚本中有中文无法执行,发送邮件中文乱码,执行中文名称任务会直接失败
解决:修改环境变量和启动配置
- 节点机配置中,JVM选项设置
-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8 - 启动Jenkins的脚本中,增加JVM参数
-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8(原文章中的脚本已修改) - Jenkins系统设置的全局属性中,增加环境变量,键为JAVA_TOOL_OPTIONS,值为
-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8 - 设置系统环境变量
echo "export JAVA_TOOL_OPTIONS=\"-Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8\"" >> /etc/profile
source /etc/profile
Jenkins从Ubuntu迁移至AlmaLinux问题及相关解决记录的更多相关文章
- Centos7安装Jenkins和目录迁移
Centos7安装Jenkins和目录迁移 内容: 安装Jenkins和相关的配置 尝试目录迁移,模拟磁盘空间不足 1. 安装Jenkins和配置 安装 根据Jenkins的官方安装指引,安装步骤如下 ...
- Ubuntu安装出现左上角光标一直闪解决方式
Ubuntu安装出现左上角光标一直闪解决方式: 01下载ubunu http://cn.ubuntu.com/download/ 02.软碟通 http://pan.baidu.com/s/1qY8O ...
- VMware下 Ubuntu 看不到共享文件夹之解决办法
VMware下 Ubuntu 看不到共享文件夹之解决办法 初学Linux,在VMWare 上装了Ubuntu10.04,主机端和虚拟机相互间的访问是必不可少的,途径有许多,其中vmware tool提 ...
- Ubuntu下与菜单和图标相关的几个文件夹
转自UBUNTU下与菜单和图标相关的几个文件夹 /usr/share/icons 系统图标文件夹 /usr/share/applications 系统菜单文件夹,要在左上角的应用程序菜单中添加一项 ...
- Ubuntu jdk报Picked up JAVA_TOOL_OPTIONS信息解决
下面是摘自http://www.cnblogs.com/coderbean/p/4522182.html 以下是我在网上找了好久找到的: Ubuntu jdk报Picked up JAVA_TOOL_ ...
- 【转】Asp.Net Core2.0获取客户IP地址,及解决发布到Ubuntu服务器获取不到正确IP解决办法
1.获取客户端IP地址实现方法(扩展类) using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.ModelBinding; u ...
- Asp.Net Core2.0获取客户IP地址,及解决发布到Ubuntu服务器获取不到正确IP解决办法
1.获取客户端IP地址实现方法(扩展类) using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc.ModelBinding; u ...
- 在VMware上安装Ubuntu软件步骤与遇到的相关问题及解决方案
图解演示环境版本: 本机系统: WIN10 虚拟机:VMware Workstation 12(中文版) 安装目标:Ubuntu Desktop 12.04 LTS (请点击这里)先下载好iso镜像 ...
- Ubuntu中Android SDK Manager无法更新解决办法
Ubuntu中Android SDK Manager无法更新解决办法http://hi.baidu.com/petercao2008/item/d7a64441f04668e81e19bc1a
- Ubuntu下Firefox无法播放视频的解决方法
Ubuntu为Firefox安装Adobe Flash Player 解决方法(解决火狐浏览器安装了三个flash插件中的第二个或者第三个插件而无法安装第一个adobe flash插件的方法):在新立 ...
随机推荐
- [django]数据的导入和导出
除了使用mysqldump或者MySQL客户端进行数据导出,django也提供了类似的功能. 导出 # 导出整个数据库并保存为json文件 python manage.py dumpdata > ...
- 《高级程序员 面试攻略 》RabbitMQ 如何实现可靠性
RabbitMQ 提供了多种机制来实现消息传递的可靠性.下面是一些常见的方法: 1. 持久化消息:RabbitMQ 允许将消息标记为持久化,以确保即使在发生故障或重启后,消息也不会丢失.通过将消息的` ...
- 使用MediatR和FluentValidation实现CQRS应用程序的数据验证
本文将重点介绍如何通过MediatR的管道功能将FluentValidation集成到项目中实现验证功能. 什么是CQRS? CQRS(Command Query Responsibility Seg ...
- 【opencv】传统目标检测:Haar检测器实现人脸检测
传统目标分类器主要包括Viola Jones Detector.HOG Detector.DPM Detector,本文主要介绍VJ检测器,在VJ检测器基础上发展出了Haar检测器,Haar检测器也是 ...
- 微服务集成redis并通过redis实现排行榜的功能
默认你已经看过我之前的教程了,并且拥有上个教程完成的项目, 之前的教程 https://www.cnblogs.com/leafstar/p/17638933.html 由于redis的安装网上教程很 ...
- Vue源码学习(一):数据劫持(对象类型)
好家伙,了解一下Vue如何实现数据劫持 1.Vue中data的使用 首先,我得搞清楚这玩意的概念,我们先从vue的使用开始吧 想想看,我们平时是如何使用vue的data部分的? 无非是这两种情况 (你 ...
- GDB苹果网页一键打包工具(IOS,IPA,苹果应用网页打包,WINDOWS平台)
工具简介 GDB苹果网页一键打包工具(IOS,IPA,苹果应用网页打包,Windows平台)可以把本地HTML项目或者网站打包为一个苹果应用IPA文件,无需编写任何代码,支持在苹果设备上安装运行.作为 ...
- Scrapy官方文档爬取
最近想爬点啥东西看看, 所以接着学习了一点Scrapy, 学习过程中就试着去爬取Scrapy的官方文档作为练习之用, 现在已经基本完成了. 实现原理: 以 overview.html 为起点,通过 r ...
- AOP(面向切面编程)
什么是AOP AOP(Aspect Oriented Programming,面向切面编程),通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术. AOP的作用 利用AOP编程可以对业务逻 ...
- Python比较字符串格式类型时间大小
已知的格式是 06/24/2021 15:47:01.491 时间比较的思路是,把数据转换成时间戳比较: 第一步是把 06/24/2021 15:47:01.491 格式转换称 2021-06-24 ...