1、服务器要求,8G内存以上,4核心cpu以上

2、 新建 /etc/yum.repos.d/gitlab_gitlab-ce.repo ,内容:

[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

3、安装依赖

sudo yum install curl openssh-server openssh-clients postfix cronie
sudo service postfix start
sudo chkconfig postfix on
#这句是用来做防火墙的,避免用户通过ssh方式和http来访问。
sudo lokkit -s http -s ssh

4、再安装

sudo yum makecache
sudo yum install gitlab-ce
sudo gitlab-ctl reconfigure  #Configure and start GitLab

5、配置域名: vim /var/opt/gitlab/nginx/conf/gitlab-http.conf

# 外网访问的端口,如果服务器已经有服务器占用了80,那么这里可以改成其它
listen *:8888;
server_name gitlab.test.domain.com;set $http_host_with_default "gitlab.test.domain.com:8888";

补充说明:因为编译gitlab的配置 /etc/gitlab/gitlab.rb 时会重新生成这个自定义nginx 配置,所以只要 gitlab 的配置配得好,上面的nginx其实不需要自定义的。

配置clone地址git@git.example.com:


这里我们需要改成我们自己的域名:

1)打开配置文件:

vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

2)修改host为自己的域名:

  gitlab:## Web server settings (note: host is the FQDN, do not include http://)host: gitlab.xxx.comport: 80https: false

这样就可以实现自定义clone地址了

6、修改密码

gitlab-rails console production
user = User.where(id:1).first
user.password='123456'
user.save!

GitLab备份和恢复

1、备份

# 可以将此命令写入crontab,以实现定时备份
/usr/bin/gitlab-rake gitlab:backup:create

备份的数据会存储在/var/opt/gitlab/backups,用户通过自定义参数 gitlab_rails['backup_path'],改变默认值。

2、恢复

# 停止unicorn和sidekiq,保证数据库没有新的连接,不会有写数据情况
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq# 进入备份目录进行恢复,1476900742为备份文件的时间戳
cd /var/opt/gitlab/backups
gitlab-rake gitlab:backup:restore BACKUP=1476900742
cd -# 启动unicorn和sidekiq
sudo gitlab-ctl start unicorn
sudo gitlab-ctl start sidekiq

GitLab配置文件修改

vim /etc/gitlab/gitlab.rb

gitlab基本配置:

#外部访问url(经过编译后,自动将这个配置编译到nginx配置,nginx就无需配置了)
external_url 'http://gitlab.test.domain.com:8888'
#默认值就是8080。如果端口被占用,可将8080修改为其它(例如:9090)
unicorn['port'] = 8080

gitlab发送邮件配置:

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = “smtp.exmail.qq.com”
gitlab_rails['smtp_port'] = 25
gitlab_rails['smtp_user_name'] = “huangdc@domain.com“
gitlab_rails['smtp_password'] = "smtp password"
gitlab_rails['smtp_authentication']= “plain"
gitlab_rails['smtp_enable_starttls_auto']= true
gitlab_rails['gitlab_email_from']= 'huangdc@domain.com'
gitlab_rails['gitlab_email_reply_to']= ‘noreply@domain.com' 

服务器修改过ssh端口的坑(需要修改配置ssh端口)

#修改过ssh端口,gitlab中项目的的ssh地址,会在前面加上协议头和端口号“ssh://git@gitlab.domain.com:55725/huangdc/test.git”
gitlab_rails['gitlab_shell_ssh_port'] = 55725

配置生效

#使配置生效
gitlab-ctl reconfigure
#重新启动GitLab
gitlab-ctl restart

GitLab常用命令

gitlab-ctl start    # 启动所有 gitlab 组件;
gitlab-ctl stop        # 停止所有 gitlab 组件;
gitlab-ctl restart        # 重启所有 gitlab 组件;
gitlab-ctl status        # 查看服务状态;
vim /etc/gitlab/gitlab.rb        # 修改gitlab配置文件;
gitlab-ctl reconfigure        # 重新编译gitlab的配置;
gitlab-rake gitlab:check SANITIZE=true --trace    # 检查gitlab;
gitlab-ctl tail        # 查看日志;
gitlab-ctl tail nginx/gitlab_access.log

注意:执行 reconfigure 命令会把gitlab的nginx组件的配置还原,导致自定义修改的端口以及域名等都没有了。

常用目录

日志地址:/var/log/gitlab/   # 对应各服务的打印日志
服务地址:/var/opt/gitlab/   # 对应各服务的主目录

查看gitlab版本

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

新建项目

使用root用户登录进gitlab会后,点击“new project“创建一个项目,比如项目命名为“kuaijiFirstProject”。
然后会发现,硬盘上已经生成了一个git文件:

/var/opt/gitlab/git-data/repositories/root/kuaijiFirstProject.git

汉化

https://gitlab.com/xhang/gitlab.git

gitlab的使用

ssh -T -p 55725 git@gitlab.domain.com

注意:以上这条 ssh 命令测试通过,未必代表就能 git clone 代码,git clone 代码需要执行命令的账户有写权限,如果是普通用户用 sudo git clone 那么 git 就会使用的 root 账号的 Private Key。

1.登录

管理员会为使用者开通账号并设置权限。

2.使用者在客户端生成ssh key

https://blog.csdn.net/u013294097/article/details/89966668

3.将公钥的内容copy到gitlab用户设置里面的“SSH Keys”

Windows: clip < ~/.ssh/id_rsa.pub
Mac: pbcopy < ~/.ssh/id_rsa.pub
GNU/Linux (requires xclip): xclip -sel clip < ~/.ssh/id_rsa.pub

4.测试ssh连接

#标准测试代码:ssh -T git@gitlab.com
ssh -T -p 55725 git@gitlab.domain.com  #修改过端口号的测试代码

5.如果连接成功的话,会出现以下信息:

Welcome to GitLab, huangdc!

说明:实际上执行这条ssh命令,所使用的远程服务器的用户是git,这个用户是在安装gitlab的时候生成的,所有使用gitlab服务器的ssh客户端,都是使用git这个用户。在这里的用户“huangdc”是通过gitlab创建的,是用于gitlab的权限管理,也用作标识提交代码的开发者信息,不要跟ssh的用户混淆了。

如何使用多个SSH公钥(自己电脑在使用多个代码仓库)

原理其实是:因为每个仓库都需要 ssh 连接,而 ssh 命令默认是使用 .ssh 目录下面的私钥去连接代码仓库,所以我们可以在 .ssh/config 目录里面针对不同的仓库域名重定义它的私钥。

例子如下:

编辑文件: vim /Users/david/.ssh/config

Host  gitlab.domain.com
IdentityFile    /Users/david/.ssh/id_rsa    

命令行环境下初始化项目

1.首先在 gitlab 上面创建一个空的代码仓库,得到仓库地址如下:

ssh://git@gitlab.domain.com:55725/huangdc/test.git

2.在本地初始化仓库、提交代码、推送到远程 master 分支。

git clone ssh://git@gitlab.domain.com:55725/huangdc/test.git
cd test
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

命令行环境下迁移旧的项目

1.首先在 gitlab 上面创建一个空的代码仓库,得到仓库地址如下:

#注意:已存在代码的旧项目只能推送到空的远程代码仓库
ssh://git@gitlab.domain.com:55725/dev/memberApi.git     

2.本地初始化项目、关联远程仓库、推送到远程仓库

cd /Users/david/work_www/memberApi
git init
git remote add origin ssh://git@gitlab.domain.com:55725/dev/memberApi.git
git push -u origin master

更改gitlab的clone地址(默认是gitlab.example.com)

这里改成自定义的域名或者ip

1) 打开 gitlab.yml

sudo vi /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml

2) 图中位置改成要显示的ip或者域名

3)重启gitlab

gitlab-ctl restart

重新访问就会发现已经修改了

手把手gitlab最详细版安装教程centos7下安装(最新版),修复gitlab相关推荐

  1. python3.6.4安装教程-centos7中安装python3.6.4的教程

    Python3.6.4官方版是一款在适合开发人员使用的windows系统上运行的脚本语言工具,Python3.6.4官方版是目前程序设计从业者必学的语言之一.我们可以通过python平台来获取到所有程 ...

  2. php图文安装教程,windows下安装php开发环境详细教程(附下载链接)

    本篇文章为大家详细介绍一下windows下安装php开发环境的流程,建议初学者使用集成环境开发php,以免失去学习兴趣. 推荐集成环境下载地址:php集成环境下载 windows下安装php环境流程: ...

  3. oracle centos 7 安装教程,centos7.2安装oracle图文教程

    原标题:centos7.2安装oracle图文教程 前期准备工作: 1.安装需要的依赖包yum install gcc* gcc-* gcc-c++-* glibc-devel-* glibc-hea ...

  4. php5.6.33安装教程,centos7手动安装PHP5.6.33详解

    本文主要和大家分享centos7手动安装PHP5.6.33详解,希望能帮助到大家. 1,PHP官网下载php-5.6.33.tar.bz2 2,解压到/usr/local/下 3,进入目录执行:./c ...

  5. centos 7安装mysql_Linux Centos7 下安装Mysql - 8.0.15

    Mysql有两种安装方式:源码包安装和二进制包安装 本文描述的是二进制安装包,下载目录:https://www.mysql.com/downloads/ 步骤一: 步骤二: 步骤三: 因本人的虚拟机是 ...

  6. linux下redis安装教程,linux下安装配置redis图文详解

    在linux系统下安装redis的详细步骤如下: 1. 首先下载一个redis安装包,下载地址:https://www.daixiaorui.com/source/13.html .也可以去官网下载最 ...

  7. mysql-win安装教程,WINDOWS下安装MYSQL教程详解

    1.下载安装包 2.配置环境变量 2.1 解压所下载的压缩包 2.2 环境变量 win 10 电脑 这么进去 3.生成data文件 在你解压的目录下,eg:F:\Program Files\mysql ...

  8. python3.5安装教程linux_Linux下安装python3.6和第三方库的教程详解

    Linux下安装Python3.6和第三方库 如果本机安装了python2,尽量不要管他,使用python3运行python脚本就好,因为可能有程序依赖目前的python2环境, 比如yum!!!!! ...

  9. mysql8.0.20安装教程linux_Linux下安装mysql-8.0.20的教程详解

    ** Linux下安装mysql-8.0.20 ** 环境介绍 操作系统:CentOS 7 mysql下载地址:https://dev.mysql.com/downloads/mysql/ 下载版本: ...

最新文章

  1. 简单的活又谈何容易呢
  2. mysql是自动表锁定吗_MySQL数据库表怎么锁定
  3. linux磁盘混乱,Linux磁盘设备文件混乱源于Linux内核自身
  4. PageRank 算法
  5. 电大计算机应用基础试卷号2007,电大计算机应用基础(试卷版)计算机试卷7.doc...
  6. JEECG 社区开源项目下载(总览)
  7. 褪去华衣 裸视学习 - 机器学习 - 转
  8. h5 监听浏览器被切换到后台或者手机锁屏再次唤起事件
  9. Java基础---Java---面试题---交通灯管理系统(面向对象、枚举)
  10. 客流量统计分析系统应用解决方案
  11. 【面试常问】Redis的持久化机制是什么?各自的优缺点?
  12. 浏览器请求web服务器的过程
  13. 【地理空间】初识OpenStreetMap
  14. Android Studio App设置Activity背景图片
  15. 找出数组x中的最大值和该值所在的元素下标,数组元素从键盘输入。
  16. Keil MDK 选中相同变量 高亮突出显示
  17. Java Web 回顾-HCJ
  18. 以太网 VLAN数据帧格式、交换机接口类型介绍、u和t的区别和作用
  19. ARM7中断处理过程、状态、嵌套
  20. Oracle 利用 UTL_SMTP 包发送邮件

热门文章

  1. mysql+installer+community+5.7.9_win10系统,mysql-installer-community-5.7.19.0.msi安装
  2. go 连接服务器 并存放图片_Go 在马蜂窝即时通讯服务建设中的实践
  3. 华为宣布今年将投入2亿美元推动鲲鹏计算产业发展
  4. VMware 大中华区原厂认证讲师(大陆地区)2018 年 8 月 8 日更新
  5. Java虚拟机学习总结(3)——JDK内置工具(jps、jstack、jmap、jstat)使用详解
  6. JavaScript学习总结(5)——Javascript面向(基于)对象编程
  7. Git学习总结(3)——代码托管平台简介
  8. 肇东一中2021高考成绩查询,肇东一中2018高考喜报成绩
  9. Java中的String.hashCode()方法可能有问题?
  10. 2017 Q1网络安全市场报告:未来5年,全球网络安全支出将超过1万亿美元