GitLab安装与使用笔记

2019/01/03 13:50
阅读数 453

安装

系统:centos7 内存4G及以上
GitLab版本:11.6.1-ee
主要参考:https://about.gitlab.com/install/#centos-7 https://blog.csdn.net/musuny/article/details/78548868 https://blog.csdn.net/qq_39256527/article/details/81238055 http://blog.51cto.com/207698/2133703 https://blog.csdn.net/yongche_shi/article/details/78677163

环境配置

1. 允许ssh和http访问
sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
// 没开防火墙可以不用下面的
// sudo firewall-cmd --permanent --add-service=http
// sudo systemctl reload firewalld
2. 下载

如果需要指定版本可以去官网手动下载rpm文件,或者使用yum安装时指定版本<code>sudo yum install gitlab-ee-11.6.1-ee.0.el7.x86_64</code>
当前11.6.1-ee版本下载地址

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
3. 使用<code>yum</code>安装

原文是<code>sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ee</code>
之前不知道怎么配置<code>EXTERNAL_URL</code>所以没配置这个,安装完成后可以在配置文件<code>/etc/gitlab/gitlab.rb</code>里修改。
<code>EXTERNAL_URL</code>可以使用ip地址

sudo yum install -y gitlab-ee

安装完毕后会显示gitlab的logo字符画

修改配置

vim可以使用<code>:</code> + <code>/关键词</code>搜索,按<code>n</code>键向下查找,<code>shift</code> + <code>n</code>向上查找
修改完毕后一定要使用<code>sudo gitlab-ctl reconfigure</code>刷新,最好再重启一下<code>sudo gitlab-ctl restart</code>

默认配置会占用<code>80</code>、<code>8080</code>端口,使用<code>postgresql</code>作为数据库,开启自带的<code>redis</code>、<code>nginx</code>

1. 打开配置文件
vim /etc/gitlab/gitlab.rb
2. 修改访问地址

如果不指定端口号,默认是80端口,建议使用域名访问

external_url 'http://192.168.1.123:8086'

修改nginx端口

nginx['listen_port'] = 8086
3. 修改<code>unicorn</code>端口

What is it?

unicorn['port'] = 8089
gitlab_workhorse['auth_backend'] = "http://localhost:8089"
4. 修改超时时间
gitlab_rails['webhook_timeout'] = 90
5. 使用<code>mysql</code>数据库

参考1 参考2

安装mysql2

cd /opt/gitlab/embedded/bin
./gem install mysql2

配置<code>/etc/gitlab/gitlab.rb</code>

postgresql['enable'] = false
gitlab_rails['db_adapter'] = "mysql2"
gitlab_rails['db_encoding'] = "utf8"
# gitlab_rails['db_collation'] = nil
gitlab_rails['db_database'] = "gitlab"
# gitlab_rails['db_pool'] = 10
gitlab_rails['db_username'] = "root"
gitlab_rails['db_password'] = "pass"
gitlab_rails['db_host'] = "127.0.0.1"
gitlab_rails['db_port'] = 3306
6. 配置<code>redis</code>

参考

redis['enable'] = false
gitlab_rails['redis_host'] = "127.0.0.1"
gitlab_rails['redis_port'] = 6379
# gitlab_rails['redis_ssl'] = false
gitlab_rails['redis_password'] = "pass"
gitlab_rails['redis_database'] = 1
7. 配置邮箱

邮箱要开启SMTP
注意邮箱域名要一致(下方填写的<code>bb.com</code>,不是服务器域名)

gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = 'aa@bb.com'
gitlab_rails['gitlab_email_display_name'] = 'bb'
gitlab_rails['gitlab_email_reply_to'] = 'noreply@bb.com'
gitlab_rails['gitlab_email_subject_suffix'] = 'gitlab'

腾讯企业邮的配置 腾讯企业邮文档

gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.exmail.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "aa@bb.com"
gitlab_rails['smtp_password'] = "pass"
gitlab_rails['smtp_domain'] = "bb.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true

刷新配置后,可以使用以下命令测试一下

gitlab-rails console

比较慢,等待出现类似<code>Loading production environment (Rails 5.0.7) irb(main):001:0></code>后输入以下命令发送测试邮件

Notify.test_email('邮箱地址', '主题', '摘要').deliver_now

收到邮件后,使用<code>exit</code>命令结束

错误:501 mail from address must be same as authorization user(邮箱域名不一致)

8. 关闭注册入口

有两种方式:

  1. 修改配置文件
gitlab_rails['registry_enabled'] = false
  1. 修改系统设置

需要先激活管理员账号,并且登录

访问<code>http://服务器/admin</code>,例如按照上方配置:<code>http://192.168.1.123:8086/admin</code>,或者打开主页后,点击标题栏<code>Admin Area</code>(扳手图标)

左边标签栏<code>Settings</code> -> <code>Sign-up restrictions</code> -> <code>Expand</code> -> 去掉<code>Sign-up enabled</code>的勾选 -> 点击下方的<code>Save Changes</code>按钮

9. 使用中文

头像右边的箭头 -> 点击Settings进入个人设置页面 -> 页面第三个标题,Main settings里有一项叫Preferred language -> 选择简体中文 -> 下方的<code>Update profile settings</code> -> 刷新整个页面生效

常见异常

500 Whoops, something went wrong on our end.

<code>/etc/gitlab/gitlab.rb</code>配置错误,例如redis未配置,数据库未配置

502-Whoops, GitLab is taking too much time to respond
  1. 端口被占用
  2. 超时时间太短
  3. 正在启动

常用命令

查看版本

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

刷新配置

gitlab-ctl reconfigure

启动、关闭和重启

gitlab-ctl start
gitlab-ctl stop
gitlab-ctl restart

查看运行日志

gitlab-ctl tail

关闭默认nginx,使用自己的nginx

部分参考gitlab修改默认端口

默认是true且被注释掉的

  1. 修改配置为
nginx['enable'] = false
  1. 记得刷新配置并重启
  2. 修改自己的nginx配置

假设域名是 code.bb.com,unicorn设置是 192.168.1.1:81注意:unicorn默认启动的端口是127.0.0.1/端口号,只能本机访问(其他机器访问应该是0.0.0.0/端口号)

http {
    #...
    # 允许上传数据大小
    client_max_body_size 100m;
    #...
    server {
        listen  80;
        server_name code.bb.com;
        location / {
          proxy_pass http://192.168.1.1:81;
          proxy_set_header Host $host;
          proxy_set_header X-Real-IP $remote_addr;
          proxy_set_header X-Forwarded-For $remote_addr;
        }
    }
    #...
}
  1. 重启nginx

数据迁移到另一个服务器

  1. 在新服务器上安装同一版本的gitlab,<b>版本必须一致!</b>,复制配置文件到新服务器
  2. 备份旧服务器数据
gitlab-rake gitlab:backup:create RAILS_ENV=production
  1. 转移备份到新服务器相同目录
    备份目录在<code>/var/opt/gitlab/backups</code>,文件名格式大致是:<code>1560826106_2019_06_18_11.6.3-ee_gitlab_backup.tar</code>
  2. 在新服务器上还原备份

BACKUP参数指定备份文件,去掉备份文件名中“_gitlab_backup.tar”剩下的部分

gitlab-rake gitlab:backup:restore RAILS_ENV=production BACKUP=1560826106_2019_06_18_11.6.3-ee
  1. 其他问题
    除了<b>版本号必须一致</b>外,暂时没有遇到其他问题
展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部