IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 部署gitlab+gitrunner+nexus镜像仓库CI流水线配置 -> 正文阅读

[开发工具]部署gitlab+gitrunner+nexus镜像仓库CI流水线配置

首先安装基础环境? 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 bash

yum 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文件 定义打包流程

举个例子

#stages:定义流水线的阶段
stages:
  - deploy
deploy:
 #stage: 定义作业所处流水线的阶段
  stage: deploy
  script:
  #script:必须参数,运行器需要执行的命令或者脚本
    - mvn clean install -Dmaven.test.skip=true 
    - "if docker images | grep app-tcloud-label | awk '{ print $1}';then
       docker 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流程就成功了

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:46:03  更:2022-03-30 18:49:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:30:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码