开始语
一位普通的程序员,慢慢在努力变强!
1.进行安装部署
# 选择linux-CentOS,按照官网的指示往下运行即可
sudo wget -O /etc/yum.repos.d/jenkins.repo \
https://pkg.jenkins.io/redhat-stable/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
sudo yum upgrade
# Add required dependencies for the jenkins package
sudo yum install java-11-openjdk
sudo yum install jenkins
sudo systemctl daemon-reload
sudo systemctl enable jenkins
sudo systemctl start jenkins
sudo systemctl status jenkins
# 出现active代表运行正常
Loaded: loaded (/lib/systemd/system/jenkins.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2018-11-13 16:19:01 +03; 4min 57s ago
2.访问以及安装插件
初次访问:127.0.0.1:8080时,登录请根据以下命令查看密码:
#访问jenkins 默认端口是8080, 查看密码
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
温馨提示:插件选择根据自己的需要进行选型,我这边直接选择【推荐安装插件】
到这一步就完成了搭建!
3.下载需要的插件
推荐安装插件,maven、gitee plugin、git-parameter
重启:访问路径后面加 /restart即可!
4.使用Gitee作为代码仓库
创建私人令牌,并且在项目中使用
5.设置系统配置项
5.1 设置为中文
5.2 配置Publish over SSH
6.配置全局属性
6.1 Linux部署maven
下载maven官网
wget https://dlcdn.apache.org/maven/maven-3/3.8.7/binaries/apache-maven-3.8.7-bin.tar.gz
# 解压
tar -zxvf apache-maven-3.6.3-bin.tar.gz
# 创建本地仓库:
mkdir repository
# 查看仓库位置:
pwd # 我的位置是:/devops/maven/repository
# 进入config目录,添加以下配置
<!--仓库位置-->
<localRepository>/devops/maven/repository</localRepository>
<!--阿里云镜像-->
<mirror>
<id>aliyun-maven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven mirror</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror>
温馨提示:接下来jenkins进行mvn操作时,需要对仓库给予权限:chmod -R 777 repository 或者 755
6.2 Linux部署jdk
下载jdk官网
# 登录账号,然后下载上传至linux机器上
wget https://www.oracle.com/java/technologies/downloads/#java11
# 解压
tar -zxvf jdk-11.0.14_linux-x64_bin.tar.gz
6.3 Linux部署git
# 安装
yum install git
# 查看安装结果
git --version # 我的版本:git version 1.8.3.1
# 查看安装位置
which git # 位置:/usr/bin/git
6.4 配置系统变量
vi /etc/profile # 添加下面的配置
# maven
export MAVEN_HOME=/devops/maven/apache-maven-3.6.3
export PATH=$MAVEN_HOME/bin:$PATH
# jdk
export JAVA_HOME=/devops/jdk/jdk-11.0.14
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# 使配置生效
source /etc/profile
# 检查git、maven、jdk是否搭建成功 (出现下列结果说明成功)
git --version # 命令
git version 1.8.3.1
mvn -v # 命令
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: /devops/maven/apache-maven-3.6.3
Java version: 11.0.14, vendor: Oracle Corporation, runtime: /devops/jdk/jdk-11.0.14
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.71.1.el7.x86_64", arch: "amd64", family: "unix"
java -version # 命令
java version "11.0.14" 2022-01-18 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.14+8-LTS-263)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.14+8-LTS-263, mixed mode)
6.5 jenkins开始配置git、maven、jdk
7.创建java-maven项目
这个的步骤为:首页->新建任务->构建一个maven项目->源码管理, 添加按钮->这里添加gitee的信息
问题:
你会发现之前定义的凭证选不到,怎么选怎么新增都选不到,Gitee这里有点坑,这里要选中新增username with password选项, 然后写入你的Gitee账号(登录名)和密码, 到这来就完成了gitee的连接了。
7.1 docker运行
jenkins-shell脚本
#--------------------------------第一种docker启动
# 将文件和jar放置一个文件夹中
cp Dockerfile target
# 进入编译后的文件中
cd target
# 开始构建镜像,启动容器
docker build -t ${AppName}:v$BUILD_NUMBER .
#--------------------------------第二种docker-compose启动
echo "开始创建docker-compose.yml文件..."
# 这个路径是和你配置SSH时定义工作路径
deploy_file=/var/lib/jenkins/deploy/${AppName}-docker-compose.yaml
cat > $deploy_file <<EOF
version: "3"
services:
${AppName}Service:
image: ${AppName}:v$BUILD_NUMBER
container_name: ${AppName}
ports:
- "${Port}:${Port}"
EOF
echo "创建${AppName}-docker-compose.yaml成功!"
下一步ssh执行远程脚本
7.2 k8s运行
jenkins-shell脚本
# 将文件和jar放置一个文件夹中
cp Dockerfile target
# 进入编译后的文件中
cd target
# 开始构建镜像,启动容器
image_name=${AppName}:v$BUILD_NUMBER
docker build -t $image_name .
echo "构建镜像成功"
# 这个路径是和你配置SSH时定义工作路径
deploy_file=/var/lib/jenkins/deploy/${AppName}-deployment.yaml
cat > $deploy_file <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
namespace: ${k8sNamespace}
name: ${AppName}
labels:
app.kubernetes.io/name: ${AppName}
spec:
replicas: 1
selector:
matchLabels:
name: ${AppName}
template:
metadata:
labels:
name: ${AppName}
spec:
containers:
- name: ${AppName}
image: $image_name
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
name: ${AppName}-pod
resources:
requests:
cpu: "100m" #CPU限制
memory: "1024Mi" #内存限制
env:
- name: SPRING_PROFILES_ACTIVE
value: "test"
- name: SERVER_PORT
value: "80" # 这里默认80,所有服务端口交给k8s
# - name: PARAMS
# valueFrom:
# configMapKeyRef:
# name: mynacos
# key: params
---
apiVersion: v1
kind: Service
metadata:
namespace: ${k8sNamespace}
name: ${AppName}
spec:
selector:
name: ${AppName}
type: NodePort # 这个模式是service服务对外提供端口访问应用
ports:
- name: ${AppName}
protocol: TCP
port: 80
targetPort: ${AppName}-pod
nodePort: ${Port}
#nodePort: ${Port} #如果你使用了nginx进行代理,那么此处无需对外暴露访问端口
EOF
echo "创建${AppName}-deployment.yaml文件成功"
下一步ssh执行远程脚本
8.查看构建服务页面
9.下列展示一个完整的maven配置截图
提示:需要k8s集成nginx-controller组件文档的同学可以在下方评论,或者私聊我!
结束语
本章节完成了,各位正在努力的程序员们,如果你们觉得本文章对您有用的话,或者是你学到了一些东西,希望用您那漂亮,帅气的小手点个赞,支持一下猿仁!
持续更新中…