首先安装基础环境  gitlab  nexus git-runner docker mvn java

yum -y localinstall gitlab-ce-14.4.2-ce.0.el7.x86_64.rpm

下载的时候顺便把runner也下了,不然到时候找对应版本很麻烦

安装成功后会出现一个狐狸的头像

GitLab安装完成后,修改GitLab的配置文件

vi /etc/gitlab/gitlab.rb

1、修改external_url 'http://10.17.38.247'(自己的IP地址就行,或者你定好的域名)

比如 external_url 'http://gitlab.test.cn'

2、修改gitlab-rails[“backup_path”] = “/app/gitlab/backups”,大约在447行

3、修改gitlab-rails[“backup_keep_time”]= 604800,大约在455行

4、修改gitlab仓库目录,去掉注释,大约在501行

git_data_dirs({"default"=> {"path" => "/app/gitlab/gitData"}
})

GitLab安装完成后需要初始化 GitLab

gitlab-ctl reconfigure

这一步等待的时间有点长,慢慢等待即可。

启动gitlab

gitlab-ctl start

查看GitLab启动状态

gitlab-ctl status

查看GitLab启动状态

gitlab-ctl status

都是ok就好了

定义一个自动清理备份的任务。时间长了 ,备份很多

0 4 * * * /opt/gitlab/bin/gitlab-rake gitlab:bakup:create CRON=1
30 17 * * * /bin/bash /app/gitlab/bakups/auto_delete
auto_delete 脚本
find "/app/gitlab/backups" -ctime +1 -name "*.tar" -type f -exec rm -Rf {} \;

登录gitlab

在浏览器中输入直接IP地址------登录地址是上面设置的url 即你的ip或者域名

第一次访问,会提示提示输入密码,此时的用户名是root。密码设置 完成后,自动跳转到登录界面

安装nexus

下载之后解压缩到本地

cd nexus-3.14.0-04
bin/nexus start
如果需要修改端口
nexus-3.14.0-04/etc/nexus-default.properties
这个文件里修改  

安装gitrunner

curl -s https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh | sudo bashyum install gitlab-runner-14.4.2-1.x86_64
和你的gitlab版本对应 我这是14.4.2
systemctl daemon-reload
systemctl enable gitlab-runner
systemctl restart gitlab-runner
启动runner

安装docker

安装docker
yum install -y yum-utils
yum-config-manager     --add-repo     https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager     --add-repo     https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io
systemctl start docker
systemctl enable docker

安装mvn

解压缩到本地

下面都是根据自己环境去选择添加的添加一下阿里mvn仓库<mirror><id>nexus-aliyun</id><mirrorOf>central</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public/</url></mirror>举个私服的例子<mirror><id>nexus</id><mirrorOf>*</mirrorOf><url>http://192.168.1.1:8051/repository/maven-public/</url></mirror></mirrors>
nexus有账密的话在下面直接加<servers><server><id>nexus</id><username>admin</username><password>123456</password></server></servers>

顺便有个坑

mvn编译报错

cannot find symbol

610[ERROR] symbol: class Data

我是从windows复制过来的 这里是<localRepository>d://java//maven-repo</localRepository>
centos上应该是
<localRepository>/java/maven-repo</localRepository>
这样的一个路径 路径按自己的填写
注意要让gitrunner 有操作这个目录的权限
或者直接777
chown -R gitlab-runner:gitlab-runner  /java/maven-repo

在 /etc/profile 里添加路径

export MVN_HOME=/data/apache-maven-3.5.2
export PATH=$PATH:$JAVA_HOME/bin:$MAV_HOME/bin:
不过不知道为什么我环境变量出不来
我做了一个软连接解决
ln -s /data/apache-maven-3.5.2/bin/mvn /usr/bin/mvn

安装java

这个就百度一下吧。。网上很多

进入配置阶段

首先配置nexus

创建一个镜像仓库

点击齿轮图标

点击create

选择 docker hosted类型

name 里输入仓库名称 一般就直接

docker-release

第一个红框填入选择的端口

第二个红框勾保留。强制要求密码验证增加安全性

第三个红框勾取消。方便上传别的类型

第四个红框 点击建立仓库

点击上面的立方体图标。回到首页 可以看到我们的仓库

nexus配置完成 可以等待上传镜像了

配置gitlabrunner

首先添加权限 避免dial unix /var/run/docker.sock: connect: permission denied报错

usermod -aG docker gitlab-runner

让gitrunner 有操作mvn仓库目录的权限


或者直接777
chown -R gitlab-runner:gitlab-runner  /java/maven-repo
我这放在这里了 按需修改
在setting.xml 最上面几行看

注册你的gitlab-runner到gitlab

gitlab-runner register

例子

Please enter the gitlab-ci coordinator URL (e.g. https://gitlab.com/):
http://20.201.35.219   <--这里输入你的访问地址 ip或者域名 可以直接在gitlab上--菜单--管理员--runner上查看
Please enter the gitlab-ci token for this runner:
KzRUYhCA3b3hLZcsqrQn   <--这个token直接在gitlab上--菜单--管理员--runner上查看
Please enter the gitlab-ci description for this runner:
[bob-k8s3]: runner-1 <--给runner起个名字 比如节点名
Please enter the gitlab-ci tags for this runner (comma separated):
mytag   <--做个标记,这个标记用来给项目去适配合适的runner
Registering runner... succeeded                     runner=KzRUYhCA
Please enter the executor: virtualbox, docker+machine, docker, parallels, shell, ssh, docker-ssh, docker-ssh+machine, kubernetes:
shell  <--看起来好像是命令模式之类的,我用了shell

去gitlab上调整一下gitrunner的配置

两个箭头顺便标识一下之前的网址token在哪里

点击修改

上面的勾打上 。有需要的话勾 一般没必要 这样做的话把下面的哪个标签也去掉

runner配置完了

配置docker

在/etc/docker/下添加一个文件

daemon.json

{"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"},"storage-driver": "overlay2","storage-opts": ["overlay2.override_kernel_check=true"],"insecure-registries": ["10.17.1.1:7000"]
}

最下面写上nexus的地址 不然不能用http

然后重启docker

systemctl daemon-reload
systemctl restart docker

确认可以在服务器上登录docker 仓库

docker login -u admin -p admin123 http://10.17.1.1:7000

返回

Login Succeeded

就可以了

然后开始配置git代码

在你的代码仓库里需要进行cicd的分支下添加一个yml文件 定义打包流程

文件目录以及配置文件说明

├── Dockerfile   # 构建Docker镜像的配置文件
├── .gitlab-ci.yml  # 构建Gitlab CI/CD的配置文件
├── pom.xml     # 项目maven依赖
└── src     # 项目代码├── main│   ├── java│   │   └── com│   │       └── example│   │           └── demo│   │               └── DemoApplication.java│   └── resources│       └── application.properties└─────────────────────────────────────

举个例子

#stages:定义流水线的阶段
stages:- deploy
deploy:#stage: 定义作业所处流水线的阶段stage: deployscript:#script:必须参数,运行器需要执行的命令或者脚本- mvn clean install -Dmaven.test.skip=true - "if docker images | grep app-tcloud-label | awk '{ print $1}';thendocker rmi $(docker images | grep app-tcloud-label | awk '{ print $3}');fi"- docker login -u admin -p admin123 10.17.1.1:7000- docker build -t 10.17.1.1:7000/test:test-v2.5.0 .- docker push 10.17.1.1:7000/test:test-v2.5.0

上面用到了dockerfile

举个例子

FROM  10.17.38.247:7000/openjdk-alpine-skywalking:v1.0.0
#从什么基础镜像打包
COPY ./label-server/target/test.jar /tmp/test.jar
#把打好的jar包放进去
#这个./的位置就是之前gitrunner编译好之后的当前目录#定义启动命令
ENTRYPOINT [ "sh","-c","java  -javaagent:/opt/agent/skywalking-agent.jar -Dskywalking.agent.service_name=tcloud-crm-label -Dskywalking.collector.backend_service=$skywalkingIpAdress  -jar tmp/test.jar" ]

然后每次修改代码,都会触发一次ci流程 自动打包自动上传镜像

有问题可以在左边的栏目里点击cicd  然后点击你出问题的流水线id来排查

最后去nexus查看一下 镜像上传成功、整个ci流程就成功了

部署gitlab+gitrunner+nexus镜像仓库CI流水线配置相关推荐

  1. 在Kubernetes集群上部署高可用Harbor镜像仓库

    这里主要介绍使用kubectl部署Harbor镜像仓库到Kubernetes集群中. 使用Helm部署,参考: https://my.oschina.net/u/2306127/blog/181969 ...

  2. 拒做工具人!教你一键快速部署应用到容器镜像仓库

    作者 | Cloud Toolkit 近年来,容器技术以迅雷不及掩耳之势迅速蔓延开来,容器技术基于各种场景的尝试与实践更是层出不穷,它的崛起改变了我们创建.发布与运行应用的方式,实现了资源的独立与隔离 ...

  3. caas k8s主控节点如何查询_k8s--04 部署harbor作为k8s镜像仓库

    k8s实战 部署harbor作为k8s镜像仓库 1.实验目标 部署k8s私有镜像仓库harbor把demo小项目需要的镜像上传到harbor上修改demo项目的资源配置清单,镜像地址修改为harbor ...

  4. k8s和harbor的集成_在Kubernetes集群上部署高可用Harbor镜像仓库

    在Kubernetes集群上部署高可用Harbor镜像仓库 一.Kubernetes上的高可用Harbor方案 首先,我可以肯定给出一个回答:Harbor支持在Kubernetes部署.只不过Harb ...

  5. Docker上部署GitLab , 搭建私有Git仓库 (基于Docker镜像sameersbn/docker-gitlab)

    # 使用docker-compose.yml 安装gitlab服务器 $ wget https://raw.githubusercontent.com/sameersbn/docker-gitlab/ ...

  6. jar k8s 自己的 部署_k8s+jenkins+harbor镜像仓库实现持续集成

    一丶准备工作 1.安装好jenkins 2.安装好k8s 3.熟悉Docker,K8S,Jenkins基本使用 了解代码版本仓库(Git),容器镜像仓库(Harbor)了解Java项目发布流程 二丶H ...

  7. 使用Docker部署GitLab、Nexus、Registry私服

    使用Docker搭建GitLab.Nexus.Registry 最佳建议,一个服务器部署一个相应服务,如果服务器够强大,就可忽视忽视. GitLab的部署 下载镜像 GitLab社区中文版镜像地址 $ ...

  8. 在 Kubernetes 中部署高可用 Harbor 镜像仓库

    该文章随时会有校正更新,公众号无法更新,欢迎订阅博客查看最新内容:https://fuckcloudnative.io 前言 系统环境: kubernetes 版本:1.18.10 Harbor Ch ...

  9. CentOS8.1部署Gitlab+Jenkins持续集成(CI/CD)环境之Jenkins安装(二)

    大家好,我是SuieKa,本博文以学习笔记为主,此时此刻我已按捺不住自己的心情将学习搬运到博客上 上手之前,习惯性的多逼逼知识点,尽管各路大神都已经了如指掌了哈哈哈 目录 什么是Jenkins? 安装 ...

最新文章

  1. NUnit在VS2008中的安装使用
  2. Bootstrap按钮组件
  3. vue当前浏览器是否为ie_Vue进阶(六十八):JS-判断当前浏览器是否为IE
  4. python装饰器-python修饰器(装饰器)以及wraps
  5. 学习java的知识体系路线
  6. 不使用jQuery对Web API接口POST,PUT,DELETE数据
  7. find 命令的参数详解
  8. 修复cocos2dx的Label,WP8下不能换行的问题
  9. tmpwatch命令
  10. 【linux驱动分析】misc设备驱动
  11. Arrays.asList( ) 返回一个特殊的“ArrayList”
  12. 扬州鉴真国际半程马拉松
  13. 3天72小时,全国首个区块链周都讲了些啥 | 一文读懂
  14. 2019牛客多校第8场
  15. 百练:2408:Anagram Groups
  16. ug界面改为经典ug界面怎么设置ug界面设置
  17. bugku-writeup-Crypto-/.-(摩斯密码)
  18. 【Qt开发笔记】Qt设置生成的exe文件图标
  19. Python语言更适合低代码开发平台
  20. mn数组计算java陆地和海洋01,2008年高三地理一轮复习精讲精练四—陆地和海洋

热门文章

  1. WordCloud库的安装教程
  2. 列出叶节点 python
  3. Vue----登录主页动态背景短视频制作
  4. 崩溃边缘 on No getter method for property
  5. oracle 里面declare怎么用啊
  6. 主码、候选码与外码的区别
  7. 鲁大师2022牛角尖颁奖盛典落幕,年度最强产品揭晓!
  8. Python双均线策略回测(2021-10-12)
  9. struct结构体里能放函数吗?
  10. 华容道源代码android,基于Android的华容道游戏的源代码