CI环境搭建排坑记录

发布时间 2023-04-02 22:14:02作者: yonugleesin

Jenkins踩坑记录

Maven项目构建时间太长,会出现构建失败现象

参考文章

原因:使用maven自带的settings文件,下载依赖速度太慢

解决方法:docker挂载目录下导入带有阿里云私服地址的settings文件,jenkins中修改maven配置

步骤演示

前提:宿主机挂载映射了docker镜像的jenkins_home目录

宿主机jenkins地址:/root/docker/jenkins

镜像jenkins地址:/var/jenkins_home

1.下载maven3.6.3tar包

地址:https://mirrors.aliyun.com/apache/maven/maven-3/3.6.3/binaries/?spm=a2c6h.25603864.0.0.24ee2104DYP0ph

image-20230402211716099

2.修改映射文件

# 解压tar包
tar -axvf apache-maven-3.6.3-bin.tar.gz
# 复制maven到宿主机映射目录
cp -r apache-maven-3.6.3 /root/docker/jenkins/maven-3.6.3

# 修改settings.xml
cd /root/docker/jenkins/maven-3.6.3/conf/
vim settings.xml

## 添加Maven私服或中央仓库
 <mirror>
	<id>nexus-aliyun</id>
	<mirrorOf>*</mirrorOf>
	<name>Nexus aliyun</name>
	<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

image-20230402211856426

image-20230402212349285

image-20230402212807507

image-20230402213226016

3.jenkins修改配置

进入全局工具配置--->修改mavne配置【使用器内部的settings文件】--->修改maven地址

image-20230402213458106

image-20230402213417693

image-20230402213631601

构建步骤优化

项目结构

image-20230402215144061

优化前

步骤依次为

  1. 登录阿里云容器服务
  2. 构建公共服务
  3. 构建整个项目
  4. 构建指定微服务
  5. 推送容器镜像

image-20230402214909718

优化后

步骤依次为

  1. 登录阿里云容器服务
  2. 构建公共服务(指定容器内公共服务的pom文件地址
  3. 构建指定微服务
  4. 推送容器镜像

image-20230402215613554

Rancher踩坑记录

Rancher客户端删除后重装遗留文件未清除导致安装报错

注意:这个报错第一次安装也会出现,属于rancher依赖下载时间过长导致,依赖下载好,客户端与服务端建立通信后就正常了。这个操作只针对删除客户端后重新加入集群失败。

Rancher集群多次安装集群失败,报错: Failed to bring up Etcd Plane: etcd cluster is unhealthy

这个问题的主要原因还是上个集群的一些配置没有清除,导致配置文件不同步之类的原因,下面的命令在集群的master上执行就行(或者是在安装rancher的机器上执行)

image-20230401110145221

清空掉rancher相关的容器和进行后执行

rm -rf /etc/cni /etc/kubernetes /opt/cni /opt/rke /run/secrets/kubernetes.io /run/calico /run/flannel /var/lib/calico /var/lib/etcd /var/lib/cni /var/lib/kubelet /var/lib/rancher/rke/log /var/log/ontainers /var/log/pods /var/run/calico

容器批量操作的命令

rancher会下载安装较多镜像和容器,需要批量管理

image-20230401105814962

image-20230401105734974

# 停止rancher相关容器
docker stop `docker container  ls -a |grep k8s |awk '{print $1}'`
docker stop `docker container  ls -a |grep rancher |awk '{print $1}'`

# 删除rancher相关容器
docker rm `docker container  ls -a |grep k8s |awk '{print $1}'`
docker rm `docker container  ls -a |grep rancher |awk '{print $1}'`

# 删除状态为停止的容器
docker rm `docker ps -q -f status=exited`

# 删除rancher相关镜像
docker rmi --force `docker images | grep rancher | awk '{print $3}'`

# 只显示容器名称
docker ps -a --format "table {{.Names}}" | grep -v "NAMES"