记录一下虚拟机CentOS中Jenkins的离线安装部署及配置过程
首先就是相关安装包的下载与获取
使用版本:jenkins-2.346.3 百度网盘地址:网盘链接
提取码:jk23
其中包括:jenkins-2.346.3-1.1.noarch.rpm
和 plugins.zip
安装与配置
下面是安装及配置的 Linux执行命令
。
# 创建一个安装的文件路径
mkdir -p /opt/soft/jenkins
cd /opt/soft/jenkins
#将 `jenkins-2.346.3-1.1.noarch.rpm` 和 `plugins.zip` 放到创建的文件夹下
# 对RPM包进行安装
rpm -ivh jenkins-2.346.3-1.1.noarch.rpm
#配置 Jenkins 服务在系统启动时的环境变量和选项
vim /etc/sysconfig/jenkins
修改{
JENKINS_USER="root"
JENKINS_PORT="8900"
}
#配置 Jenkins 服务在 Systemd 上的的启动选项、环境变量
vim /usr/lib/systemd/system/jenkins.service
修改{
User=root
Group=root
Environment="JENKINS_PORT=8900"
}
#在/usr/bin/java下创建一个软连接(快捷方式) : 非必要执行
#因为虚拟机中同时安装了JDK1.8和JDK17 所以创建了两个
ln -s /opt/soft/jdk1.8.0_391/bin/java /usr/bin/java
ln -s /opt/soft/jdk-17.0.10/bin/java /usr/bin/java17
#重新加载 systemd 的配置
systemctl daemon-reload
#启动 Jenkins 服务
systemctl start jenkins
#设置 Jenkins 服务在系统启动时自动启动
systemctl enable jenkins
#创建Jenkins 的工作空间文件夹
mkdir -p /opt/soft/jenkins/workspace
#设置目录的权限为 777 777:所有用户都具有读取、写入和执行权限。
chmod 777 /opt/soft/jenkins/workspace
#修Jenkins的工作空间配置
vim /var/lib/jenkins/config.xml
#修改workspaceDir:
<workspaceDir>/opt/soft/jenkins/workspace/${ITEM_FULL_NAME}</workspaceDir>
#同时如果jdk也可以在这里配置多个
#因为项目中使用的是17 所以将1.8修改成17了
<jdk>
<name>jdk17</name>
<home>/opt/soft/jdk-17.0.10</home>
<properties/>
</jdk>
#重启Jenkins服务
systemctl restart jenkins
//配置防火墙
firewall-cmd --list-ports
firewall-cmd --zone=public --add-port=8900/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-ports
进入页面初始化配置
1.现在就可以打开页面 ip:8900 进行初始化, 输入密码
#查看密码
cat /var/lib/jenkins/secrets/initialAdminPassword
2.自定义 jenkins 选选择插件来安装, 然后选无, 点击右下角安装
3.创建第一个管理员用户, 输入完账号密码后保存并完成
4.实例配置, 直接点保存并完成
5.打开 Manage Jenkins
-> Global Tool Configuration
配置Maven 及JDK
Maven Configuration
:Default settings provider
和Default global settings provider
都填上Maven的settings文件路径(填入自己实际的settings文件路径即可,eg:/opt/soft/apache-maven-3.8.6/conf/settings.xml)JDK
:Name
填 jdk17,JAVA_HOME
填 /opt/soft/jdk-17.0.10 (填入自己实际的JDK路径即可)
Maven
:name
填maven
,MAVEN_HOME
填 /opt/soft/apache-maven-3.8.6 (填入自己实际的Maven路径即可)
如果界面全是英文只是因为中文插件还没有安装,看下一Part,离线安装插件之后重启就可以了
离线安装Jenkins插件
这里使用离线安装的方式,所以将一些用的到的插件(包括SSH、GIT、中文等Jenkins插件)打包了,就是plugins.zip
只需要将其解压到Jenkins的plugins下(/var/lib/jenkins/plugins)然后重启即可
#清除原本的插件
rm -rf /var/lib/jenkins/plugins
#解压到/var/lib/jenkins/plugins下
unzip -q -d /var/lib/jenkins/ /opt/soft/jenkins/plugins.zip
#重启Jenkins服务
systemctl restart jenkins
使用Jenkins自动编译部署服务(通过shell脚本)
本文中Jenkins是通过GIT拉取仓库代码通过本地Maven进行编译成Jar包然后通过SSH保存到服务器并通过SSH调用服务器上的shell脚本来自动编译部署的。
因为这里是通过SSH调用服务器上的shell脚本来更新服务的,所以首先需要去Configure System
->Publish over SSH
->SSH Servers
下面添加一个SSH Server后保存
Name
、Hostname
、Username
填自己服务器IP地址即可,同时确保服务器可以通过ssh访问
接下来开始进入工作台添加一个任务,填写任务名称及描述,然后源码管理
GIT中填写GIT代码仓库地址及登录GIT的账号密码,Branches to build
中指定分支,例如我这里是测试环境,所以填写的 */dev
如果源码管理中没有GIT的选项,说明服务器上未安装GIT或配置全局变量,需要先安装GIT并配置
然后构建
中添加一个构建步骤,本文中使用的是shell的编译方法,所以选择执行 shell
,命令中编写自己的Maven打包脚本即可,例如:
#!/bin/bash -lex
BUILD_ID=dontKillMe
# 对 你的服务 模块进行打包,指定 profile : dev
mvn clean package -Pdev -pl yourself-service -am -Dmaven.test.skip=true -U
最后在构建后操作
中选择Send build artifacts over SSH
,SSH Publishers
选择我们刚刚添加的SSH Server即可,如果这里下拉没有则返回本Part开始处看如何添加SSH Publishers。这里填完之后就可以保存然后取点击立即构建
啦。如果构建出现失败,记得看一下控制台输出定位问题然后解决即可。
Source files
:填写编译输出后的jar文件路径即可Remove prefix
:后面需要移除的文件前缀Remote directory
:即服务器上需要放置的Jar包地址Exec command
:Jar包放到服务器上之后执行的启动命令脚本
常见问题
ERROR: Error cloning remote repo 'origin'
: 检查GIT地址配置或者登录信息,可在Jenkins部署的服务器上手动git clone 测试是否可以连接到GIT仓库地址Unknown host maven.aliyun.com: Name or service not known
:阿里云Maven仓库地址无法解析,同样先在服务器上curl -I 或ping测试是否可以连接阿里云Maven仓库地址,如果也不能就是DNS解析有问题,需要首先检查一下服务器网络环境。PS:建议添加阿里云公共 DNS223.5.5.5
、223.6.6.6
,比谷歌的8.8.8.8
更适合,由阿里云提供,为中国用户优化的 DNS 解析服务git: 'remote-https' is not a git command.
:大概率是因为 Git 安装中缺少对 HTTPS 支持的部分,先检查你的 Git 安装目录下是否存在 git-remote-https 文件,如果文件不存在,则说明你的 Git 安装可能缺少了该组件。
ls /opt/deploy/soft/git/libexec/git-core/git-remote-https