1、安装

gitlab的源码安装极其复杂,如果要尝试源码安装可以参考如下文档:

https://github.com/gitlabhq/gitlabhq/blob/master/doc/install/installation.md

也可以参考:http://54im.com/git/centos6-install-gitlab-ldap认证.html

rpm包的安装可以参考官网:

https://about.gitlab.com/downloads/

也可以自己下载好rpm包,直接安装。安装方法如下:

yum install -y postfix
yum install -y cronie
service postfix start
chkconfig postfix on
lokkit -s http -s ssh curl -O https://downloads-packages.s3.amazonaws.com/centos-6.6/gitlab-7.9.4_omnibus.1-1.el6.x86_64.rpm
rpm -vih gitlab-7.9.4_omnibus.1-1.el6.x86_64.rpm gitlab-ctl reconfigure

安装完成后,在浏览器输入gitlab的IP地址,即可访问,默认帐号密码为:root/5iveL!fe

2、gitlab基本配置

# cat /etc/gitlab/gitlab.rb

external_url 'http://git.hongxin.com'    #指定gitlab服务器地址
nginx['enable'] = false #不启用gitlab自带的nginx
#nginx['listen_addresses'] = ['192.168.1.202'] #gitlab的nginx监听地址
unicorn['port'] = 8080 #修改unicorn的默认端口,即gitlab服务的默认端口。可启用此端口,而关闭gitlab自带的nginx,使用其他nginx来代理该端口
gitlab_rails['gitlab_shell_ssh_port'] = 52113 #定义ssh端口配置,该端口需要与/etc/ssh/sshd_config文件中ssh监听的端口保持一致

gitlab的所有工程目录都在/var/opt/gitlab下,数据仓库存放在/var/opt/gitlab/git-data/

配置完成以后,执行gitlab-ctl reconfigure来载入配置,并启动gitlab

3、gitlab的邮件配置

3.1、使用本地的postfix发送邮件

service potfix start
vim /etc/gitlab/gitlab.rb
gitlab_rails['gitlab_email_from'] = 'gitlab@example.com' #定义发邮件的邮箱名称,默认使用本机的postfix发送邮件

3.2、使用邮件发送模板

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "完整邮件账户"
gitlab_rails['smtp_password'] = "密码"
gitlab_rails['smtp_domain'] = "邮件账户所在域"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true # 这个很重要,而且是官方文档里没提及的
#修改gitlab配置的发信人,否则会抛出"553 Mail from must equal authorized user"的错误
gitlab_rails['gitlab_email_from'] = '完整邮件账户'
user["git_user_email"] = "xxxxxxx"

3.3、使用腾讯企业邮箱配置发送邮件

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465 gitlab_rails['smtp_user_name'] = "tech@gongmall.com"
gitlab_rails['smtp_password'] = "tech@gongmall.com的密码" gitlab_rails['smtp_domain'] = "gongmall.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_from'] = 'tech@gongmall.com'
user["git_user_email"] = "xxxxxxx"

3.4、使用163邮箱来发送gitlab的邮件

# cat /etc/gitlab/gitlab.rb
#配置smtp
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 25
#配置邮箱帐号密码
gitlab_rails['smtp_user_name'] = "yan_ruo_gu@163.com"
gitlab_rails['smtp_password'] = "xxxxxxx"
#配置邮箱域
gitlab_rails['smtp_domain'] = '163.com'
gitlab_rails['smtp_authentication'] = :login #有的配置成:plain
gitlab_rails['smtp_enable_starttls_auto'] = true #是否开启tls认证
#修改gitlab配置的发信人,否则会抛出"553 Mail from must equal authorized user"的错误
gitlab_rails['gitlab_email_from'] = "yan_ruo_gu@163.com"
user["git_user_email"] = "xxxxxxx"

4、启用gitlab的https

#生成密钥对
cd /etc/gitlab/ssl
openssl genrsa -des3 -out server.key 1024
openssl rsa -in server.key -out server.key #去除server.key的加密口令
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt # vim /etc/gitlab/gitlab.rb
nginx['redirect_http_to_https'] = true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/server.crt"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/server.key" gitlab-ctl reconfigure

5、更改仓库存储路径

gitlab默认的仓库路径是/var/opt/gitlab/git-data/repositories,一般服务器上/var的空间不是很足,所以要把仓库配置到其他路径。

5.1、新仓库修改存储路径

如果是刚安装好gitlab,还没开始使用,修改配置即可:

# vim /etc/gitlab/gitlab.rb
git_data_dir "/data/git-data"

5.2、使用了一段时间的仓库修改存储路径

如果gitlab已经在使用,除了修改配置,还需要如下步骤:

gitlab-ctl stop
rsync -av /var/opt/gitlab/git-data/repositories /data/git-data/ # vim /etc/gitlab/gitlab.rb
git_data_dir "/data/git-data"
gitlab-ctl start
gitlab-ctl reconfigure

6、gitlab数据备份与恢复

6.1、备份

gitlab备份的计划任务:

0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create

gitlab修改备份路径:

# vim /etc/gitlab/gitlab.rb
gitlab_rails['backup_path'] = '/mnt/backups'

6.2、恢复

停止相关数据连接服务:

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

从指定编号备份中恢复:

gitlab-rake gitlab:backup:restore BACKUP=139351368

启动gitlab:

gitlab-ctl start

6.3、迁移

把备份文件拷贝到gitlab的备份目录下,执行恢复操作即可

7、gitlab头像无法正常显示

在配置文件/etc/gitlab/gitlab.rb中添加如下项:

gitlab_rails['gravatar_plain_url'] = 'http://gravatar.duoshuo.com/avatar/%{hash}?s=%{size}&d=identicon'

然后执行:

gitlab-ctl reconfigure
gitlab-rake cache:clear RAILS_ENV=production

8、gitlab查看日志

gitlab-ctl tail

Git7:使用Gitlab管理远程仓库的更多相关文章

  1. git注册到git管理远程仓库

    注册: ① 注册github网站:地址:https://github.com/,其中sign up 是注册,sign in是登录 (如果是用QQ邮箱的话,如果觉得收不到邮箱,可能是在垃圾箱哦) ② 之 ...

  2. 6. Git管理远程仓库

    6. Git管理远程仓库 使用远程仓库的目的 作用:备份,实现代码共享集中化管理 Git克隆操作 目的 将远程仓库(github对应的项目)复制到本地 代码 git clone 仓库地址 多学一招:仓 ...

  3. 本地Git连接GitLab(服务器)远程仓库

    1.简介 远程仓库是指托管在网络上的项目仓库,现在互联网上有很多项目托管平台,比如github.gitlab等.为了不公开自己项目代码,可以在自己的服务器上搭建自己的项目仓库,最常见的是搭建GitLa ...

  4. Git管理远程仓库

    一:使用远程仓库的目的 作用:备份,实现代码共享集中化管理: 二:将git本地仓库同步到远程仓库流程图 三:Git克隆操作 目的: 将远程仓库(github远程仓库项目代码)克隆到本地 如何克隆 1. ...

  5. 使用git管理远程仓库

    1.从现有仓库克隆 git clone git://github.com/schacon/grit.git 2.检查当前文件状态 git status 3.跟踪新文件 git add XXX 4.忽略 ...

  6. Git初始化本地仓库及管理远程仓库github

    1.首先在本地安装git,地址:https://git-scm.com/downloads.下载安装好git工具. 2.将自己在github上的注册的用户名和邮箱写入本地git的配置文件中: (1). ...

  7. Git 远程仓库的管理和使用

    要参与任何一个 Git 项目的协作,必须要了解该如何管理远程仓库.远程仓库是指托管在网络上的项目仓库,可能会有好多个,其中有些你只能读,另外有些可以写.同他人协作开发某 个项目时,需要管理这些远程仓库 ...

  8. git使用——远程仓库(Remote repositories)

    前言 为了能在任意 Git 项目上协作,你需要知道如何管理自己的远程仓库. 远程仓库是指托管在因特网或其他网络中的你的项目的版本库. 你可以有好几个远程仓库,通常有些仓库对你只读,有些则可以读写. 与 ...

  9. github仓库主页介绍、用git管理本地仓库和github仓库、搭建网站

    github仓库主页介绍 名词解释: 工作区: 添加.编辑.修改文件等动作 暂存区: 暂存已经修改的文件,最后统一提交到git中 git(仓库): 最终确定的文件保存到仓库,成为一个新的版本,并且对他 ...

随机推荐

  1. Buaaclubs项目介绍

    简介 首先,它是社团资讯的集散地,任何希望了解北航社团信息或活动情况的同学都可以在这个平台上获取自己需要的信息,并且可以随时随地地参与社团互动,方便快捷地实现网上报名.在线咨询.活动参与等多种功能. ...

  2. Merge join、Hash join、Nested loop join对比分析

    简介 我们所常见的表与表之间的Inner Join,Outer Join都会被执行引擎根据所选的列,数据上是否有索引,所选数据的选择性转化为Loop Join,Merge Join,Hash Join ...

  3. NodeJs实现客户端登陆

    nodejs的api中有一个process进程对象,process 对象是一个 global (全局变量),提供有关信息,控制当前 Node.js 进程.作为一个对象,它对于 Node.js 应用程序 ...

  4. iOS 判断当前app版本,升级

    要获取当前app store上的最新的版本,有两种方法, 一.在某特定的服务器上,发布和存储app最新的版本信息,需要的时候向该服务器请求查询. 二.从app store上查询,可以获取到app的作者 ...

  5. jquery on 事件嵌套 事件执行多次

    今天做了个项目,就是想点击添加然后追加一列,点击这一列的修改按钮,在修改, //编辑事件 $('#eventTable').on('click','.edit_n',function(){ var i ...

  6. sqlserver trigger(触发器)-更新某几列数据时触发【转】

    CREATE TRIGGER [dbo].[updataAlarmLevel]ON [dbo].[Alarm_Alarm_Info]AFTER INSERT, UPDATE – 在更新和插入之后ASB ...

  7. PHP学习心得1

    php是动态网站开发的优秀语言,在学习的时候万万不能冒进.在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理,这样你很难利用 ...

  8. [转帖]IPV6取代IPV4之路 为何道阻且长?

    IPV6取代IPV4之路 为何道阻且长? 经济学人公众号 IPV6作为IPV4的续命神术,从被提出到现今,逾26年之久.而IPV6在中国更是犹抱琵琶半遮面,千呼万唤难出来,IPV6取代IPV4之路,为 ...

  9. [转帖]TLS 版本问题

    转帖 From https://www.cnblogs.com/xjnotxj/p/7252043.html 一.环境: CentOS 6.8nginx 1.6.0php 7.0.10 二.背景 最近 ...

  10. java异常处理常见处理

    反例之一:丢弃异常结论一:既然捕获了异常,就要对它进行适当的处理.不要捕获异常之后又把它丢弃,不予理睬. 反例之二:不指定具体的异常 结论二:在catch语句中尽可能指定具体的异常类型,必要时使用多个 ...