Gitlab安装配置

获取Gitlab

1. 准备工作

  • 关闭防火墙或打开服务端口
  1. # 关闭防火墙
  2. systemctl stop firewalld && systemctl disable firewalld
  3. # 开放ssh、http服务
  4. firewall-cmd --add-service=ssh --permanent
  5. firewall-cmd --add-service=http --permanent
  6. # 重载防火墙规则
  7. firewall-cmd --reload

2. 添加gitlab源

由于gitlab官方源太慢,gitlab的rpm包又有700Mb,所以这里使用国内的清华源

cat > /etc/yum.repos.d/gitlab.repo <<EOF
[gitlab_gitlab-ce]
name=gitlab-ce
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
gpgcheck=0
enabled=1
EOF

然后yum makecache 生效源

3. 安装Gitlab

yum install -y gitlab-ce

配置Gitlab服务

1. 配置站点

Gitlab的默认配置文件是 /etc/gitlab/gitlab.rb

# 默认的站点Url配置项
external_url 'http://gitlab.example.com'

将其改为当前IP或是域名

使用域名的话,如果是本地的测试机器需要注意在hosts中绑定IP与域名

# 修改为当前主机IP
vim /etc/gitlab/gitlab.rb

external_url 'http://127.0.0.1'

2. 禁用创建组权限

GitLab默认所有的注册用户都可以创建组。但对于团队来说,通常只会给Leader相关权限。
虽然可以在用户管理界面取消权限,但毕竟不方便。我们可以通过配置GitLab默认禁用创建组权限。

vim /etc/gitlab/gitlab.rb
# 开启gitlab_rails['gitlab_default_can_create_group'] 选项,并将值设置为false
### GitLab user privileges
gitlab_rails['gitlab_default_can_create_group'] = false

#保存后,重新配置并启动GitLab
gitlab-ctl reconfigure

3. 启动测试

# 重新配置并启动
gitlab-ctl reconfigure

# 初次启动会比较慢,gitlab会检查更新以及加载各种服务
# 输出类似如下结果即表示成功
Running handlers complete
Chef Client finished, 432/613 resources updated in 03 minutes 43 seconds
gitlab Reconfigured!

4. 登入

初次登入会提示为用户设置密码

设置完密码后登录,默认账户是root,密码为刚才设置的密码

5. gitlab-ctl常用命令[附]

命令 说明
check-config 检查在gitlab中是否有任何配置。在指定版本中删除的rb
deploy-page 安装部署页面
diff-config 将用户配置与包可用配置进行比较
remove-accounts 删除所有用户和组
upgrade 升级
service-list 查看所有服务
once 如果GitLab服务停止了就启动服务,如果已启动就不做任何操作
restart 重启GitLab服务
start 如果GitLab服务停止了就启动服务,如果已启动就重启服务
stop 停止GitLab服务
status 查看GitLab服务状态
reconfigure reconfigure重新配置GitLab并启动

邮件服务

1. 配置

邮件是Gitlab必须配置的服务,很多功能都依赖于它

邮件的配置文件也在 /etc/gitlab/gitlab.rb ,这里需要设置两个地方

vim /etc/gitlab/gitlab.rb

### Email Settings
gitlab_rails['gitlab_email_enabled'] = true        #打开email服务
gitlab_rails['gitlab_email_from'] = '7*******8@qq.com'    #系统邮件发件人
gitlab_rails['gitlab_email_display_name'] = 'Gitlab'    #显示的发件人名称

### GitLab email server settings
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "7*******8@qq.com"
gitlab_rails['smtp_password'] = "QQ邮箱授权码"
gitlab_rails['smtp_domain'] = "qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true

2. 测试邮件服务

# 进入inrush控制台
gitlab-rails console 
# Notify.test_email('目标邮箱地址','邮件标题', '邮件正文').deliver_now
Notify.test_email('7*******9@qq.com','Gitlab', 'For GitLab').deliver_now

很快就能收到邮件,如果无法接收,将邮件标题设置为空再次测试

汉化

新版本的Gitlab已经集成了部分汉化,点击右上角头像进入User Settings==>Preferences==>Localization设置中文,设置完成后刷新网页即可生效

持续集成(1)--Gitlab服务安装配置 - 图2

第一个Gitlab应用

创建群组

群组可以轻松的管理多人的权限,后续的应用都会创建在群组上

设置群组名称==>添加群组描述==>设置可见性级别, 如果这个组内项目是内部测试,设置为私有群组

允许创建项目,此项可以设置谁拥有添加项目的权限

Allowed to create subgroups,此项设置谁可以创建子组

创建用户

Account项是必填项,密码此时不能设置,重置密码的连接会发送到填写的电子邮箱,而且用户第一次登陆时会强制要求设置新密码

如果仅仅为了测试,在这里创建完用户管理员进入用户中心也可以创建一个临时密码,使用这个密码进行初次登录

创建应用

新建项目可以选择

创建空项目/根据模板创建/导入项目

项目URL在地址后可以选择创建到组或用户,选择创建到组

输入项目名称,选择可见级别即可创建

初始化应用

如果是第一次使用Git,需要进行Git全局设置

git config --global user.name "用户名"
git config --global user.email "邮件"

然后根据情况完成初始化

创建一个新仓库

git clone git@10.0.0.200:legend/test.git
cd test
touch README.md
git add README.md
git commit -m "add README"
git push -u origin master

推送现有文件夹

cd existing_folder
git init
git remote add origin git@10.0.0.200:legend/test.git
git add .
git commit -m "Initial commit"
git push -u origin master

推送现有的 Git 仓库

cd existing_repo
git remote rename origin old-origin
git remote add origin git@10.0.0.200:legend/test.git
git push -u origin --all
git push -u origin --tags