首页 技术 正文
技术 2022年11月11日
0 收藏 832 点赞 4,644 浏览 5380 个字

Git&Gitlab开发流程与运维管理

作者

刘畅

时间

2020-10-31

实验系统版本centos7.5

主机名称

ip地址

配置

安装软件

controlnode

172.16.1.120

4核/8G/60G

docker、git、gitlab

slavenode1

172.16.1.121

2核/2G/60G

docker、git、Runner

注:本文档docker的部署就不赘述了,可以参考docker部署文档。

目录

1 Git分布式版本控制系统1

1.1
git简介1

1.2
git部署2

1.3
Git客户端配置使用者3

1.4
Git工作区4

1.5
Git常用命令4

1.6
Git分支管理6

1.7
Git分支与上线发布流程7

2 Gitlab图形页面版本控制系统7

2.1
Gitlab简介7

2.2
Gitlab部署(docker方式)8

2.3
Gitlab基本配置9

2.4
Gitlab常用管理命令16

2.5
Gitlab使用流程17

2.6
gitlab两种克隆方式24

2.7
Gitlab备份与恢复26

2.8
Gitlab
CI/CD初探28

3 补充34

3.1
git
clone指定branch或tag34

3.2
tag34

3.3
Linux发行版,存放CA证书文件的位置可能是下面这些36

3.4
gitlab windos客户端(gitbash、海龟svn)36

1 Git分布式版本控制系统

前言:

自动化运维架构

https://gitlab.lc.com/users/sign_in

证书信息如下:

2.4
Gitlab常用管理命令

gitlab-ctl

# Gitlab管理工具

# gitlab-ctl
status 查看gitlab服务状态

# gitlab-ctl
reconfigure 重新加载gitlab配置

gitlab-rails

gitlab-redis-cli

# 访问Redis数据库

gitlab-psql

# 访问PGSQL数据库

gitlab-rake

# 备份与恢复

gitlab-backup

# 12.1版本以后增加的备份与恢复工具

2.5
Gitlab使用流程

1 创建用户

(1) 管理中心—用户—新用户

(2)
创建用户完成后该用户会收到更改密码邮件,点击邮件中的链接即可

说明:liuchang用户密码修改为:liuchang@123456

(3)
密码修改完成后会发邮件通知你密码更改成功

2 创建群组

(1) https://gitlab.lc.com/
url地址,使用liuchang用户依然可以

登录,登录后发现项目数据都还原回来了。

2.8
Gitlab CI/CD初探

1 介绍

(1)
持续集成(Continuous Integration,CI)

代码合并、部署、自动化测试都在一起,不断地执行这个过程,并对结果反馈。

(2)
持续交付(Continuous Delivery,CD)

是一种软件工程方法,让软件的产出过程在一个短周期内完成,以保障软件可

以稳定、持续的保持在随时可以发布的状态。与持续集成相比,持续交付偏重

点在于可交付的产物。

(3)
持续部署(Continuous Deployment,CD)

通过自动化部署的手段将软件频繁的交付,部署到期望的环境。

(4)
Gitlab CICD架构

2 安装Runner

在172.16.1.121节点上操作

安装文档:

https://docs.gitlab.com/runner/install/linux-repository.html

(1)
linux服务器rpm包方式安装

1) 安装

# For RHEL/CentOS/Fedora

# curl -L
https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh
| bash

# yum install gitlab-runner -y

2) 注册

# gitlab-runner register

步骤描述:

A 输入gitlab访问地址,例如https://gitlab.lc.com

B 输入token(从gitlab管理中心->概览->Runner获取)

C 输入描述

D 输入标签,流水线脚本根据标签来使用runner,如果多个,例如web,deploy

E 输入executor,这个是要用什么方式来执行脚本,输入shell

注册相关命令:

gitlab-runner register# 交互配置注册信息

gitlab-runner list# 保存在配置文件中的所有运行程序

gitlab-runner verify# 检查注册的runner是否可以连接

gitlab-runner unregister –url https://gitlab.lc.com
–token H73N-dpz9VLEHs7yF4JT

# 取消已注册的runner

(2)
linux服务器Docker服务器安装

1) 安装

# docker run -d –name gitlab-runner –restart
always \

-v /srv/gitlab-runner/config:/etc/gitlab-runner
\

-v /var/run/docker.sock:/var/run/docker.sock
\

–add-host=gitlab.lc.com:172.16.1.120
\

gitlab/gitlab-runner:latest

2) 注册(免交互)

注意:需要在gitlab-runner容器中导入CA证书

[root@slavenode1 ~]# docker exec -it gitlab-runner
bash

root@0050270bc606:/# gitlab-runner register
\

–non-interactive \

–url “https://gitlab.lc.com” \

–registration-token “H73N-dpz9VLEHs7yF4JT”
\

–description “slavenode1” \

–tag-list “web,php” \

–executor “shell” \

–run-untagged=”true” \

–locked=”false”

3 root用户登录到gitlab对注册的runner进行解锁

4 gitlab-runner配置免交互认证(使用容器runner测试)

在172.16.1.121节点上操作

[root@slavenode1 ~]# docker exec -it gitlab-runner
bash

root@0050270bc606:/# su –
gitlab-runner

gitlab-runner@0050270bc606:~$
ssh-keygen

gitlab-runner@0050270bc606:~$ ssh-copy-id
root@172.16.1.121

5 在172.16.1.121节点上安装用于测试的nginx服务

[root@slavenode1 ~]# yum install nginx
-y

[root@slavenode1 ~]# systemctl start
nginx

[root@slavenode1 ~]# systemctl enable
nginx

6 使用liuchang用户登录gitlab

(1)
在dev分支下创建新文件”.gitlab-ci.yml”,内容如下

stages:

– build

– test

– deploy

build:

stage: build

tags:

– php

script:

– echo “代码编译…”

test:

stage: test

tags:

– php

script:

– echo “测试代码…”

deploy:

stage:
deploy

tags:

– php

script:

– echo “部署项目…”

– scp login.html
root@172.16.1.121:/usr/share/nginx/html/

流水线脚本说明:

1) stages:CI步骤

2) job:具体执行逻辑,例如build

3) tags:runner标签

4) script:shell命令

5) 最后一步scp还需要runner主机与目标主

(2)
提交”.gitlab-ci.yml”文件后会自动触发CICD流水线

说明:只要dev分支上有文件被修改就会触发CICD流水线脚本

1) 流水线

2) 作业

(3)
访问nginx服务

3 补充

3.1
git clone指定branch或tag

0 克隆代码

# git clone ssh://git@gitlab.lc.com:2222/product/mall.git

# gitlab上的liuchang用户

# cd mall

1 查看branch

# git branch -a

* master

remotes/origin/HEAD ->
origin/master

remotes/origin/dev

remotes/origin/master

2 使用指定branch

# git checkout dev

Branch dev set up to track remote branch dev from
origin.

Switched to a new branch ‘dev’

3 clone指定branch或tag

# git
clone -b dev ssh://git@gitlab.lc.com:2222/product/mall.git

# git clone -b dev_v1.0
ssh://git@gitlab.lc.com:2222/product/mall.git

# 克隆tag到本地,分支名会显示”*
(no branch)”,但是能看到tag。

3.2 tag

0 克隆代码

# git
clone ssh://git@gitlab.lc.com:2222/product/mall.git

# gitlab上的liuchang用户

# cd mall

# git checkout dev

# git branch

* dev

master

1 我们可以创建一个tag来指向软件开发中的一个关键时期,比如版本号更新的时候可以建

一个“v2.0”、“v3.1”之类的标签,这样在以后回顾的时候会比较方便。tag的使用很简单,主

要操作有:查看tag、创建tag、验证tag以及共享tag。

2 创建tag

(1) 创建轻量级tag,这样创建的tag没有附带其他信息

# git tag dev_v1.0

(2) 带信息的tag,-m后面带的就是注释信息,这样在日后查看的时候会很有用

# echo “this is index html” >
index.html

# git add .

# git commit -m “index.html”

# git tag -a dev_v2.0 -m ‘second version’

(3) 共享tag

我们在执行git
push的时候,tag是不会上传到服务器的,比如现在的gitlab,创

建tag后git push,在gitlab网页上是看不到tag的,为了共享这些tag,你必须

# git push origin dev_v1.0

或者将所有tag一次全部push到github上

# git push origin –tags

3 查看tag

(1) 查看tag,列出所有tag,列出的tag是按字母排序的,和创建时间没关系

# git tag

dev_v1.0

dev_v2.0

(2) 查看指定版本的tag

# git tag -l ‘dev_v*’

dev_v1.0

dev_v2.0

(3) 显示指定tag的信息

# git show dev_v2.0

3 删除tag

(1) 删除本地tag

# git tag -d dev_v1.0

(2)
删除gitlab远端指定的tag

# git push origin :refs/tags/dev_v1.0

4 创建一个基于指定tag的分支

# git checkout -b dev_v2.0-1
dev_v2.0

5 注意(创建tag必须要在需要打tag的分支下进行,查看tag查看的是全局所有的tag(可以在任意分支下查看所有的tag))

使用git
checkout tag即可切换到指定tag,例如:git checkout
dev_v1.0。切换到tag历史

记录会处在分离头指针状态,这个时候修改是很危险的,在切换回主线时如果没有合并,

之前的修改提交基本都会丢失,如果需要修改可以尝试git
checkout -b branch tag创建一

个基于指定tag的分支,例如:git checkout -b dev_v2.0-1
dev_v2.0这个时候就会在分支

上进行开发,之后可以切换到主线合并。

3.3
Linux发行版,存放CA证书文件的位置可能是下面这些

/etc/pki/tls/certs/ca-bundle.crt

/etc/ssl/certs/ca-certificates.crt

/etc/ssl/ca-bundle.pem

/etc/ssl/cert.pem

/usr/local/share/certs/ca-root-nss.crt

3.4
gitlab
windos客户端(gitbash、海龟svn)

gitbash可以通过ssh-keygen命令生成密钥对,用于和gitlab免交互ssh方式拉取代码。

海龟svn需要url的方式拉取gitlab上的代码,由于windows上没有自签的ca证书,会

报无法验证证书的有效性而无法拉取代码,在网上试了将自签ca证书导入到(cmd[mmc])

“受信任的根证书颁发机构”也不行。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,494
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,907
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,740
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,495
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,133
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,297