官网:https://pkg.jenkins.io/redhat/
jdk版本要和jenkins对上!
安装官网进行操作:
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io-2023.key
若出现如下错误:
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
--2022-02-25 16:02:30-- https://pkg.jenkins.io/redhat-stable/jenkins.repo
正在解析主机 pkg.jenkins.io (pkg.jenkins.io)... 151.101.74.133, 2a04:4e42:11::645
正在连接 pkg.jenkins.io (pkg.jenkins.io)|151.101.74.133|:443... 已连接。
错误: 无法验证 pkg.jenkins.io 的由 “/C=US/O=Let's Encrypt/CN=R3” 颁发的证书:
颁发的证书已经过期。
要以不安全的方式连接至 pkg.jenkins.io,使用“--no-check-certificate”。
则根据提示在命令中添加–no-check-certificate参数,如下:
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo --no-check-certificate
yum install jenkins
如果安装过程中包[Errno 256] No more mirrors to try
执行命令yum clean all
yum makecache
然后重新执行yum install jenkins
卸载步骤
service jenkins stop
yum clean all
yum -y remove jenkins
find / -iname jenkins | xargs -n 1000 rm -rf
# find命令用来查找“/”下名称符合jenkins的文件
# -name name, -iname name : 文件名称符合 name 的文件。iname 会忽略大小写
# xargs 命令 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。
# -n 选项 每次传递几个参数给其后面的命令执行
查看yum仓库中,软件包有哪些版本
yum --showduplicates list jenkins
选2.164的能运行支持jdk8
yum install jenkins-2.440
centos7用命令sudo dnf install jenkins安装jenkins时报错如下:
" Public key for jenkins-2.249.1-1.1.noarch.rpm is not installed "
新增 --nogpgcheck 参数,实现不检查Public Key而强制安装, 命令如下:
yum install jenkins-2.440 --nogpgcheck
编辑配置文件:
vim /usr/lib/systemd/system/jenkins.service
systemctl daemon-reload
加上这句
Environment="JAVA_HOME=/opt/module/jdk-21.0.1"
启动:
service和systemctl的区别
https://blog.csdn.net/qq_38173650/article/details/130119142
直接启动(能成功):
nohup jenkins start &
后台启动(启动不了,不知道为什么,待优化):
service jenkins start
systemctl start jenkins # 启动jenkins服务
# 然后开启另外一个窗口,查看jenkins状态
systemctl status jenkins # 查看jenkins状态
systemctl stop jenkins # 关闭jenkins服务
访问地址:http://127.0.0.1:8080
http://hadoop102:8080/
参考:
https://blog.csdn.net/qq_34208844/article/details/87865672/
- 找到自己的java安装地址
如果忘记自己的java安装地址, 通过下面命令找到
which java
或者:
find / -name "java"
- 修改jenkins的配置文件
执行命令, 打开jenkins配置文件
vi /etc/init.d/jenkins
jenkins服务默认监听8080端口,打开文件/usr/lib/systemd/system/jenkins.service,可以修改端口号
Environment="JENKINS_PORT=8080"
账号密码:
dcs 123456
二、安装maven
记得修改settings文件,添加阿里镜像
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
maven官网下载:
https://maven.apache.org/download.cgi
解压
tar -zxvf ../software/apache-maven-3.9.6-bin.tar.gz
配置环境变量:
vim /etc/profile.d/my_env.sh
#MAVEN_HOME
export MAVEN_HOME=/opt/module/apache-maven-3.9.6
export PATH=$PATH:$MAVEN_HOME/bin
source /etc/profile
mvn -version
三、安装git
1、配置好yum源,执行 yum install git 命令即可。
2、执行 git -version 命令验证,出现git版本号则表示安装成功。
5. 安装插件
Jenkins 启动成功之后,接下来我们安装三个必要的插件:
1、Maven Integration:Maven 构建工具
2、Publish Over SSH:整个工具,将来把 Jenkins 打包好的 jar 上传到应用服务器上。
3、Gitee:协助使用 Gitee 仓库。
4、Kubernetes:安装 Kubernetes 插件。名称通常是 “Kubernetes Continuous Deploy” 或 “Kubernetes”,安装 kubernetes cli 插件,否则会报错
5、Docker CLI、Docker 你已经成功在 Jenkins 中安装了 Docker 插件。接下来,你可以在 Jenkins 作业的构建步骤中使用 Docker 相关的命令,例如构建 Docker 镜像、运行容器
然后在可选插件中,搜索 Maven Integration 和 Publish Over SSH 以及 Gitee 三个插件
进入全局工具配置:
-
配置java。
-
配置git。记得在云主机执行 yum install git安装git。
-
配置mavem HOME。
配置主机和gitee
找到Publish over SSH并配置SSH Servers:
测试成功就配置好了!
gitee配置
Gitee API V5 的私人令牌获取地址:
https://gitee.com/profile/personal_access_tokens
配置gitee API令牌
jenkins凭据位置:
这里需要使用用户名和密码设置
创建一个项目:
配置该项目的源码管理:git
在编译的地方可以看到jar被放在哪里了
脚本编写参考:https://blog.51cto.com/u_10401840/5508140
编写gencell-test.sh脚本放在服务器上/home/webapps这个文件夹下:
#! /bin/bash
BUILD_ID=dontKillMe
echo "部署的目录和项目名称"
echo "拷贝jar包到/home/webapps目录"
cp /var/lib/jenkins/workspace/my_test/gencell-test/target/gencell-test.jar /home/webapps/gencell-test.jar
nohup java -jar /home/webapps/gencell-test.jar > out.log 2>&1 &
jenkins的shell脚本编写:
echo "运行执行脚本问件"
/home/webapps/gencell-test.sh
cat /home/webapps/out.log
echo "${?}"
自动部署成功!
代码拉取:
shell脚本,运行maven构建:
k8s中运行命令:要安装 kubernetes cli 插件
token获取脚本:
https://blog.csdn.net/qq_43470725/article/details/135643132
新增k8s:token
secret写token值!
使用Jenkins容器时,是访问不到kubectl命令的和其相关的文件,可以将这个kubectl和相关的文件都复制到挂载的文件夹下面去!如果是单独的服务器,就复制到该服务器下面去
pipeline脚本:
pipeline {
agent any
tools {
maven 'my_maven'
}
environment {
APP_PROFILE='dev'
}
stages {
stage('拉取代码') {
steps {
echo '拉取代码开始!'
git credentialsId: 'e425cf5b-7191-4ac8-8204-eb551a93f68f', url: 'https://gitee.com/deng-chaosheng/gencell.git'
echo '拉取代码完毕!'
}
}
stage('构建代码') {
steps {
echo '构建代码开始!'
sh 'mvn clean package'
echo '构建代码成功!'
}
}
stage('部署代码') {
steps {
echo "===========================应用部署配置==========================="
withKubeConfig([credentialsId: 'admin_k8s', serverUrl: 'https://192.168.10.103:6443']) {
sh '/usr/bin/kubectl apply -f ./gencell-test.yaml'
}
}
}
}
}