gitlab快速入门(1)

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: gitlab快速入门(1)

Github 开始入门

文章目录

Github 开始入门

1. 前提

2. 安装gitlab

3. 配置gitlab

4. 启动gitlab

5. GitLab构成

5.1 gitlab shell

5.2 gitlab workhorse

6. gitlab 命令

7. gitlab主要目录

8. gitlab 仓库管理

9. 创建用户create user

10. 用户授权(grant user)

11. 创建仓库create project

12. 配置ssh key

13. 推送本地客户端仓库到gitlab

14. 克隆gitlab仓库到本地客户端

15. 设置分支保护

16. Gitlab的备份、恢复、升级

16.1 手动备份

16.2 定时备份

16.3 恢复实践

1. 前提

jenkins插件地址: http://updates.jenkins-ci.org/download/plugins/


192.168.211.90 gitlab、jenkins、Maven

192.168.211.91 git、httpd

192.168.211.92 nexus、sonarqube、docker-ce

192.168.211.93 这个是单独的环境,用于测试jenkins和docker的

关闭防火墙
# systemctl disable  firewalld.service 
关闭NetworkManager
# systemctl stop NetworkManager
关闭selinux
# cat /etc/selinux/config 
  SELINUX=disabled
安装常用命令
# yum install  -y net-tools lrzsz tree screen lsof wget ntpdate
设置时间
# crontab -e 添加
# crontab -l
*/5 * * * * /usr/sbin/ntpdate time1.aliyun.com
更改时区
# ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

2. 安装gitlab

1.1 gitlab的安装192.168.211.90

GitHub 和 GitLab 都是基于 web 的 Git 仓库

安装依赖:

# yum install curl policycoreutils openssh-server openssh-clients policycoreutils-python -y

下载rpm包

# cd /usr/local/src/
#wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.9.1-ce.0.el7.x86_64.rpm
# rpm -ivh gitlab-ce-11.9.1-ce.0.el7.x86_64.rpm 

3. 配置gitlab

gitlab的默认配置文件位于:vim /etc/gitlab/gitlab.rb,修改external_url为本机的IP地址或者一个可以访问到本机的域名

external_url 'http://192.168.211.90'

修改完主配置文件后,使用gitlab-ctl reconfigure重新配置加载gitlab

4. 启动gitlab

重新配置执行成功后,就可以重新启动gitlab

# gitlab-ctl restart
ok: run: alertmanager: (pid 5060) 1s
ok: run: gitaly: (pid 5078) 0s
ok: run: gitlab-monitor: (pid 5091) 1s
ok: run: gitlab-workhorse: (pid 5114) 0s
ok: run: logrotate: (pid 5125) 0s
ok: run: nginx: (pid 5132) 1s
ok: run: node-exporter: (pid 5216) 0s
ok: run: postgres-exporter: (pid 5227) 1s
ok: run: postgresql: (pid 5238) 0s
ok: run: prometheus: (pid 5246) 1s
ok: run: redis: (pid 5260) 0s
ok: run: redis-exporter: (pid 5430) 0s
ok: run: sidekiq: (pid 5439) 0s
ok: run: unicorn: (pid 5451) 0s

在浏览器里输入:http://192.168.211.90/,首次登陆要求重设root密码

更改密码成功后

登陆即可

5. GitLab构成

gitlab由以下服务构成,他们共同承担了gitlab的运作需要


Nginx:静态的web服务器

gitlab-shell:用于处理git命令和修改authorized keys列表

gitlab-workhorse:轻量级的反向代理服务器

logrotate:日志文件管理工具

postgresql:数据库

redis:缓存数据库

sidekiq:用于在后台执行队列任务(异步执行)

unicorn:An HTTP server for Rack application,gitlab

rails应用是托管在这个服务器上面的可以使用命令来查看各个服务的状态

# gitlab-ctl status
run: alertmanager: (pid 5060) 53429s; run: log: (pid 4308) 53665s
run: gitaly: (pid 5078) 53428s; run: log: (pid 3570) 53739s
run: gitlab-monitor: (pid 5091) 53428s; run: log: (pid 4171) 53683s
run: gitlab-workhorse: (pid 5114) 53427s; run: log: (pid 3939) 53700s
run: logrotate: (pid 5125) 53427s; run: log: (pid 4017) 53693s
run: nginx: (pid 5132) 53427s; run: log: (pid 3967) 53699s
run: node-exporter: (pid 5216) 53427s; run: log: (pid 4130) 53688s
run: postgres-exporter: (pid 5227) 53427s; run: log: (pid 4356) 53660s
run: postgresql: (pid 5238) 53426s; run: log: (pid 3660) 53735s
run: prometheus: (pid 5246) 53426s; run: log: (pid 4242) 53672s
run: redis: (pid 5260) 53425s; run: log: (pid 3387) 53746s
run: redis-exporter: (pid 5430) 53425s; run: log: (pid 4210) 53678s
run: sidekiq: (pid 5439) 53424s; run: log: (pid 3906) 53705s
run: unicorn: (pid 5451) 53423s; run: log: (pid 3875) 53709s

1832b220aa754cd18c504acc7686a560.png

5.1 gitlab shell

Gitlab Shell有两个作用:为Gitlab处理git命令、修改authorized keys列表。

当通过ssh访问gitlab server 时,gitlab shell会:


调用gitlab rails api检查权限

执行pre-receive钩子(在gitlab企业版中叫做git钩子)

执行你请求的动作 处理gitlab的post-receive动作

处理自定义的post-receive动作

当通过http\https访问gitlab server时,工作流程取决于你是从git仓库拉取(pull)代码还是向git仓库推送(push)代码

如果你是从git仓库拉取(pull)代码,gitlab rails应用会全权负责处理用户鉴权和执行git命令的工作

如果你是从git仓库推送(push)代码,gitlab rails应用既不会进行用户鉴权也不会执行git命令,它会把以下工作交由gitlab shell进行处理


调用gitlab rails api检查权限

执行pre-receive钩子(在gitlab企业版中叫做git钩子)

执行你请求的动作

处理gitlab的post-receive动作

处理自定义的post-receive动作

5.2 gitlab workhorse

gitlab workhorse是一个敏捷的反向代理,它会处理一些大的http请求,比如文件的上传、文件的下载、git push/pull和git包下载。其它的请求会反向代理到gitlab rails应用,即反向代理给后端的unicorn

6. gitlab 命令

启动所有的gitlab组件

# gitlab-ctl start
停止所有gitlab组件
# gitlab-ctl stop
停止postgresql组件
# gitlab-ctl stop postgresql 
停止相关的数据连接服务
# gitlab-ctl stop unicorn 
# gitlab-ctl stop sidekiq 
重启所有gitlab组件
# gitlab-ctl restart
重启gitlab-workhorse组件
# gitlab-ctl restart gitlab-workhorse 
查看服务状态
# gitlab-ctl status
如果更改了配置文件[gitlab.rb 文件],使配置文件生效,但是会初始化除了gitlab.rb之外的所有文件
# sudo gitlab-ctl reconfigure 
查看日志
# sudo gitlab-ctl tail
检查redis的日志
# sudo gitlab-ctl tail redis

7. gitlab主要目录

/var/opt/gitlab/git-data/repositories/ :库默认存储的目录

/opt/gitlab/ : 应用代码和相应的依赖程序存放目录

/var/opt/gitlab : gitlab-ctl reconfigure命令编译后的应用数据和配置文件,不需要人为修改配置

/etc/gitlab : 配置文件目录

/var/log/gitlab/ : 此目录下存放了各个组件产生的日志

/var/opt/gitlab/backups/ : 备份文件生成的目录

gitlab关闭用户注册功能

登录web界面后

点击上方导航栏的Admin Area

点击左边的设置setting


找到Sign-up restrictions配置区域,点击扩展

去掉Sign-up enabled前面的√


最后点击save保存按钮

8. gitlab 仓库管理

gitlab是通过组(group)的概念来统一管理仓库(project)和用户(user),通过创建组、在组下再创建仓库、再将用户加入到组,从而实现用户与仓库的权限管理


创建组 create group

在管理员页面顶部的Admin area按钮,进入管理员区域

点击new group按钮

1832b220aa754cd18c504acc7686a560.png

填写必要的信息

组名、组路径、组描述

1832b220aa754cd18c504acc7686a560.png

组可见级别


Visibility level :选择谁可以访问该组、我们默认选择private即可

Private:The group and its projects can only be viewed by members.

只有授权的用户才可以看到

Internal:The group and any internal projects can be viewed by any

logged in user. 只要是登录gitlab的用户都可以看到

Public:The group and any public projects can be viewed without any

authentication. 只要是可以访问gitlab web页面的人都可以看到

1832b220aa754cd18c504acc7686a560.png

信息填完、点击创建组

1832b220aa754cd18c504acc7686a560.png

进入创建好的组管理界面

可以再找个界面下创建组用户的

1832b220aa754cd18c504acc7686a560.png

9. 创建用户create user

在管理员页面点击页面顶部的Admin Area按钮,进入管理员区域

点击创建用户

1832b220aa754cd18c504acc7686a560.png

填写必要的信息

用户名昵称、用户名、电子邮箱、选择用户级别

1832b220aa754cd18c504acc7686a560.png

点击创建用户

1832b220aa754cd18c504acc7686a560.png

进入用户的管理界面

点击页面的右上页的Edit按钮,为用户设置初始密码

1832b220aa754cd18c504acc7686a560.png

1832b220aa754cd18c504acc7686a560.png

也可以设置用户的其他信息

最后点击save更改

1832b220aa754cd18c504acc7686a560.png


相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
JavaScript Shell 开发工具
gitlab快速入门(3)
gitlab快速入门(3)
gitlab快速入门(3)
|
存储 网络安全 持续交付
gitlab快速入门(2)
gitlab快速入门(2)
gitlab快速入门(2)
|
Kubernetes Java API
实践分享!GitLab CI/CD 快速入门
本文给大家讲述如何使用 GitLab CI/CD 构建、测试、部署 Spring Boot 应用,将产物运行在 Rainbond 上。
|
4月前
|
Linux 应用服务中间件 网络安全
linux安装Gitlab
linux安装Gitlab
150 0
|
30天前
|
Shell Docker 容器
GitlabCI学习笔记之一:安装Gitlab和GitLabRunner
GitlabCI学习笔记之一:安装Gitlab和GitLabRunner
|
26天前
|
Docker 容器
Docker安装Gitlab和Gitlab-Runner并实现项目CICD
Docker安装Gitlab和Gitlab-Runner并实现项目CICD
|
2月前
|
Devops 持续交付 开发工具
入职必会-开发环境搭建54-GitLab下载和安装
GitLab 是一个基于 web 的 Git 仓库管理工具,提供了代码托管、版本控制、协作开发、持续集成等功能,是一个综合的 DevOps 平台。用户可以使用 GitLab 托管他们的代码仓库,并利用其丰富的功能来管理和协作开发项目。 以下是 GitLab 的一些主要特点和功能。
入职必会-开发环境搭建54-GitLab下载和安装
|
1月前
|
Ubuntu 安全 网络安全
在Ubuntu 16.04上安装和配置GitLab的方法
在Ubuntu 16.04上安装和配置GitLab的方法
48 0
|
1月前
|
存储 Ubuntu 安全
在Ubuntu 18.04上安装和配置GitLab的方法
在Ubuntu 18.04上安装和配置GitLab的方法
37 0
|
1月前
|
缓存 Kubernetes Shell
CI/CD:安装配置Gitlab Runner
CI/CD:安装配置Gitlab Runner
116 0