Gitlab搭建及常用命令
Git成员
Git:是一种版本控制系统,是一个命令,是一种工具。
Gitlib:是用于实现Git功能的开发库。
Github:是一个基于Git实现的在线代码托管仓库,包含一个网站界面,向互联网开放。
GitLab:是一个基于Git实现的在线代码仓库托管软件,你可以用gitlab自己搭建一个类似于Github一样的系统,一般用于在企业、学校等内部网络搭建git私服。
什么是Gitlab
Gitlab是利用Ruby on Rail开发的开源应用程序,实现一个自托管的Git项目仓库,可以通过web界面进行访问公开的或者私人项目。
GitLab拥有与GitHub类似的功能,能够浏览源代码,管理缺陷和注释,可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库,它提供一个代码片段功能可以轻松实现代码复用,便于日后有需要的时候进行查找。
Gitlab搭建
1、 使用gitlab的rpm包安装:gitlab-ce-11.9.9-ce.0.el7.x86_64.rpm
# yum install gitlab-ce-11.9.9-ce.0.el7.x86_64.rpm -y
2、修改配置文件
# vim /etc/gitlab/gitlab.rbexternal_url 'http://172.25.14.10' # gitlab地址
3、重载服务
# gitlab-ctl reconfigure
4、服务重载后查看gitlab组件
5、登陆gitlab: http://172.25.14.10
设置新密码:
新密码登陆
6、创建新的project
Project name–>>>private–>>>initialize–>>>Create project
安装git
# yum install git
6.2 将ssh公钥添加到gitlab
将公钥复制,点击Add key
添加完成后,进入myProject–>>clone,在本地生成同名目录,并且目录中会有所有的项目文件
在远程项目克隆到本地
# git clone git@172.25.14.10:root/myproject.git
[root@node1 ~]# cd myproject/
[root@node1 myproject]# ls
README.md
[root@node1 myproject]# cat README.md
# myProject
在本地项目中编辑内容,并将内容推送到Gitlab远程项目下
# git config --global user.name "sql" #添加git用户信息
# git config --global user.email "1055@localhost"
# echo hello > test
[root@node1 myproject]# ls
README.md test
[root@node1 myproject]# cat test
hello
将test提交到版本库
[root@node1 myproject]# git add test
[root@node1 myproject]# git commit -m"test"
[master bd9685d] test1 file changed, 1 insertion(+)create mode 100644 test
[root@node1 myproject]# git push -u origin master
Counting objects: 4, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 261 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git@172.25.14.10:root/myproject.git71e51e5..bd9685d master -> master
Branch master set up to track remote branch master from origin.
Gitlab由下面服务组成
- nginx: 静态web服务器
在这里插入代码片
- gitlab-shell: 用于处理Git命令和修改authorized keys列表
- gitlab-workhorse: 轻量级的反向代理服务器,可以处理一些大的HTTP请求(磁盘上的 CSS、JS 文件、文件上传下载等),处理 Git Push/Pull 请求,处理到Rails 的连接会反向代理给后端的unicorn(修改由 Rails 发送的响应或发送给 Rails 的请求,管理 Rails 的长期 WebSocket 连接等)。
- logrotate:日志文件管理工具
- postgresql:repository 中的数据(元数据,issue,合并请求 merge request 等 , 可以登录 Web 的用户
- redis:缓存每个客户端的sessions和后台队列,负责分发任务。Redis需求的存储空间很小,大约每个用户25KB
- sidekiq:用于在后台执行队列任务(异步执行)
- unicorn:Gitlab 自身的 Web 服务器(Ruby Web Server),包含了 Gitlab 主进程,负责处理快速/一般任务,与 Redis 一起工作,配置参考:CPU核心数 + 1 = unicorn workers数量。
1. 通过检查存储在 Redis 中的用户会话来检查权限
2. 为 Sidekiq 制作任务
3. 从仓库(warehouse)取东西或在那里移动东西- gitlab-shell:用于 SSH 交互,而不是 HTTP。gitlab-shell 通过 Redis 与 Sidekiq 进行通信,并直接或通过 TCP 间接访问 Unicorn。用于处理Git命令和修改authorized keys列表
- Gitaly:后台服务,专门负责访问磁盘以高效处理 gitlab-shell 和 gitlab-workhorse 的git 操作,并缓存耗时操作。所有的 git 操作都通过 Gitaly 处理,并向 GitLab web 应用程序提供一个 API,以从 git(例如 title, branches, tags, other meta data)获取属性,并获取 blob(例如 diffs,commits,files)
- Sidekiq:后台核心服务,可以从redis队列中提取作业并对其进行处理。后台作业允许GitLab通过将工作移至后台来提供更快的请求/响应周期。Sidekiq任务需要来自Redis
- prometheus:提供监控
gitlab常用命令
- 运维管理
- 查看版本
# cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
- 检查gitlab
# gitlab-rake gitlab:check SANITIZE=true --trace
- 实时查看日志
# gitlab-ctl tail
- 数据库关系升级
# gitlab-rake db:migrate
- 清理redis缓存
# gitlab-rake cache:clear
- 升级gitlab-ce版本
# yum update gitlab-ce
- 升级postgreSQL最新版本
# gitlab-ctl pg-upgrade
日志
- 实时查看所有日志
# gitlab-ctl tail
- 实时查看redis日志
# gitlab-ctl tail redis
- 实时查看postgresql日志
# gitlab-ctl tail postgresql
- 实时查看gitlab-workhorse日志
# gitlab-ctl tail gitlab-workhorse
- 实时查看logrotate日志
# gitlab-ctl tail logrotate
- 实时查看nginx日志
# gitlab-ctl tail nginx
- 实时查看sidekiq日志
# gitlab-ctl tail sidekiq
- 实时查看unicorn日志
# gitlab-ctl tail unicorn
Gitlab备份与恢复
gitlab备份的默认目录是/var/opt/gitlab/backups
- 备份命令
# gitlab-rake gitlab:backup:create #该命令会在备份目录(默认:/var/opt/gitlab/backups/)下创建一个tar压缩包xxxxxxxx_gitlab_backup.tar,其中开头的xxxxxx是备份创建的时间戳,这个压缩包包括GitLab整个的完整部分。
- 自动备份
通过任务计划crontab 实现自动备份
0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create # 每天两点备份gitlab数据
- 备份保留时间修改,编辑配置文件/etc/gitlab/gitlab.rb
# gitlab_rails['backup_keep_time'] = xxxxxx # 数值单位:秒
重新加载配置文件
# gitlab-ctl reconfigure
恢复
停止unicorn和sidekiq,保证数据库没有新的连接,没有写数据情况
# gitlab-ctl stop unicorn
# gitlab-ctl stop sidekiq
# gitlab-rake gitbab:backup:restore BACKUP=xxxxxx(恢复文件)
# gitlab-ctl start 启动gitlab
Gitlab搭建及常用命令相关推荐
- Hadoop生态圈-zookeeper本地搭建以及常用命令介绍
Hadoop生态圈-zookeeper本地搭建以及常用命令介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.下载zookeeper软件 下载地址:https://www.ap ...
- gitlab 构建tag_GitLab常用命令 分支 Tag 配置 操作
一.从SVN迁出到本地Git仓库(还没有配置Git仓库的,直接看第八条) git svn clone "" ##注意路径需要双引号引起来 二.在远程仓 ...
- nginx 安装搭建及常用命令
目录 1. linux下安装nginx 2. 搭建静态网页 3. 搭建项目 4. nginx 负载均衡 5. nginx 负载均衡 查看请求被转发到哪台服务器 6. nginx支持websocket ...
- Maven环境搭建及常用命令、生命周期
一.下载maven包,解压 二.配置环境变量,MAVEN_PATH=解压路径 添加到path中 三.测试 mvn -v 查看maven版本 四.设置本地仓库的路径 在conf文件夹下的setting ...
- 22-06-24 西安 linux(01) linux环境搭建、常用命令、vim编辑
Linux系统引入 1.为什么学linux? 服务器本质是一台电脑,组成:硬件+操作系统(linux)+软件 2.linux使用场景 2.1.服务器的操作系统 服务器要求可用性高,即能够给 ...
- GITLAB服务常用命令
GitLab简介 GitLab 是一个用于仓库管理系统的开源项目.使用Git作为代码管理工具,并在此基础上搭建起来的web服务. Github是公共的git仓库,而Gitlab适合于搭建企业内部私有g ...
- Git详细用法:Git概述 安装 常用命令 分支操作 团队协作 、GitHub、idea集成Git、idea集成GitHub、Gitee 码云、GitLab
0 课程介绍 说明: 在公司想要使用idea集成git: 首选需要下载安装Git(查看第2章) 之后在中设置用户签名(查看3.1) 然后在idea中集成Git(查看第7章) - 0.1 学习目标 第1 ...
- Docker Compose搭建consul群集环境(了解Docker Compose及常用命令,Docker四种网络,Doker指定端口)
文章目录 Docker Compose搭建consul群集环境 认识Docker Compose IConsul Docker Compose容器编排 Dasker Compose配置常用字段 Bos ...
- android adb 环境,Android安卓环境搭建及ADB常用命令
.md ## 1.下载sdk 下载链接:http://tools.android-studio.org/index.php/sdk ## 2.安装sdk 安装完成,安装目录见下图 安装 ## 3.环境 ...
最新文章
- Pairs Forming LCM LightOJ - 1236
- [NOI2009] 植物大战僵尸
- iOS之深入解析Block的底层原理
- HBase 在人工智能场景的使用
- 用 Python 写个坦克大战
- 项目中有出现过缓存击穿,简单说说怎么回事?
- 数据:Purpose以太坊ETF的持仓量达到4万枚ETH
- Hash碰撞的解决方案
- 【SpringMVC学习05】SpringMVC中的参数绑定总结——较乱后期准备加入 同一篇幅他人的参数绑定...
- 8.6 归纳式迁移学习
- 南方cass提取坐标生成表格_如何利用EXCEL随机生成测量点坐标导入南方CASS中计算土方量...
- C语言初学者如何制作一个完整的C语言程序——歌曲排行榜
- 10个有效的Linux VPS/服务器性能检测与稳定性测评工具/命令
- PS示例教程:如何用Photoshop打磨质感水晶风格图标
- windows使用Certbot配置nginx的https证书
- cf刷题记录- 5 1
- 巧用google实现快速搜索
- 提示未登录,点确认,跳到登陆页
- c++ 3D笔记整理
- 已安装过Mysql,再次安装最终一直显示未响应