使用 gitlab

什么是gitlab

github 大家应该都知道了,那么很多企业内部的一些源码放github 是不合适的,所以需要内部搭建仓库,本文主要讲解如何在centos 7 上搭建 Gitlab ce 版。

要求

要求:4G以上内存服务器,2G 实测卡的不行

安装

1.创建源,这里使用国内源,速度会快很多。

curl -sS http://packages.gitlab.cc/install/gitlab-ce/script.rpm.sh | sudo bash

2.安装

yum install gitlab-ce

安装结果

3.初始化

gitlab-ctl reconfigure

 这里执行命令后会进行系统初始化,初始化完成后gitlab服务就已经完成了,如果没有特殊需求就已经可以使用了。默认GitLab 是安装到/opt/gitlab 目录,配置文件在/etc/gitlab/下

证书

1.证书申请参考 使用验证DNS的方式申请证书

2.创建目录

[root@gitlab1 ~]# cd /etc/gitlab/
[root@gitlab1 gitlab]# mkdir ssl
[root@gitlab1 gitlab]# cd ssl/
[root@gitlab1 ssl]# vim gitlab.cer
[root@gitlab1 ssl]# vim gitlab.key
[root@gitlab1 ssl]# ls
gitlab.cer  gitlab.key     

配置

修改

vim /etc/gitlab/gitlab.rb

external_url 'https://git.v5linux.com' 为你的域名

修改

nginx['redirect_http_to_https']=true
nginx['ssl_certificate'] = "/etc/gitlab/ssl/gitlab.pem"
nginx['ssl_certificate_key'] = "/etc/gitlab/ssl/gitlab.key"

更新配置

[root@gitlab ~] gitlab-ctl reconfigure

邮件配置

因为现在很多运营商或 IDC 都默认把 25端口封了,用 postfix 无法发送 Email,所以我们直接使用配置文件的 smtp 来发信

1.编辑配置文件,找到如下配置段

    gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.server"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "smtp user"
gitlab_rails['smtp_password'] = "smtp password"
gitlab_rails['smtp_domain'] = "example.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = false

修改为

    gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.163.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "[email protected]"
gitlab_rails['smtp_password'] = "password"
gitlab_rails['smtp_domain'] = "163.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['gitlab_email_from'] = "[email protected]"
user["git_user_email"] = "[email protected]"
gitlab_rails['smtp_tls'] = true

重启

gitlab-ctl restart

测试

    [root@gitlab ssl]# gitlab-rails console
Loading production environment (Rails 4.2.10)
irb(main):001:0> Notify.test_email('[email protected]', '邮件标题', '邮件正文').deliver_now

如果出现错误,检查参数是否与我配的一致。

首次访问需要设置root密码,设置完之后使用root 登录

头像设置

1.因为最近 Gravatar 被墙,所以关闭 Gravatar 头像

创建用户

进入首页,点击Add people 创建用户

新用户登录会发送一封邮件

点击链接设置密码

创建项目

1.登录后点击 Create a project

2.设置项目名称和级别

然后就和操作git 一样了

不过前提是我们需要有权限,点击右上角,选择用户–设置

添加一个 SSH key

然后在克隆仓库

添加文件,push 到仓库就可以看到了

安全设置

建议开启双因素认证,提高安全性

默认存储位置修改

默认安装其目录在

/var/opt/gitlab/git-data/repositories/

修改要在配置文件中

vim /etc/gitlab/gitlab.rb

# git_data_dirs({
#   "default" => {
#     "path" => "/mnt/nfs-01/git-data"
#    }
# })

在其下面增加

git_data_dir "/data/gitlab

然后重启

gitlab-ctl stop
gitlab-ctl reconfigure
gitlab-ctl start

使用token 方式克隆代码

1.gitlab 后台找到 access tokens,创建 token

2.通过 token 方式克隆代码

➜  Downloads git clone https://gitlab-ci-token:[email protected]/wenjun.fang/my-project.git
    Cloning into 'my-project'...
    remote: Counting objects: 19, done.
    remote: Compressing objects: 100% (14/14), done.
    remote: Total 19 (delta 2), reused 0 (delta 0)
    Unpacking objects: 100% (19/19), done.

日志

gitlab 的日志都在 /var/log/gitlab 目录下

[root@gitlab gitlab]# pwd
/var/log/gitlab
[root@gitlab gitlab]# gitlab-ctl tail -f nginx/gitlab_access.log