一、Gitlab安装

1. 基于yum方式安装Gitlab

安装步骤如下

(1)配置yum源

  1. # vim /etc/yum.repos.d/gitlab-ce.repo

(2)复制如下内容并保存(注意baseurl的配置是centos7的地址,安装版本一定要正确

  1. [gitlab-ce]
  2. name=gitlab-ce
  3. baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/
  4. Repo_gpgcheck=0
  5. Enabled=1
  6. Gpgkey=https://packages.gitlab.com/gpg.key

(3)更新本地yum缓存

  1. # sudo yum makecache

(4)yum安装gitlab,此处安装版本是11.8.0

  1. # sudo yum install gitlab-ce #自动安装最新版

安装遇到以上错误提示,需要增加一个nogpgcheck参数:

  1. # sudo yum install gitlab-ce --nogpgcheck #自动安装最新版

也可以安装指定的版本(迁移数据需要原库版本一致)

  1. # sudo yum install gitlab-ce-11.8.0 --nogpgcheck #安装指定版本
  1. 基于rpm进行安装Gitlab

    (1)安装依赖包、下载安装gitlab rpm包
  1. # yum install curl openssh-server postfix cronie
  2. # yum -y install policycoreutils-python #必须安装该依赖包

(2)下载安装包

  1. # wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-10.8.0-ce.0.el7.x86_64.rpm/download.rpm
  2. # rpm -ivh gitlab-ce-10.8.0-ce.0.el7.x86_64.rpm

(3)对GitLab进行编译

  1. # gitlab-ctl reconfigure

官方安装文档链接:https://about.gitlab.com/installation/

二、Gitlab 配置

修改配置文件:

  1. # mkdir -pv /oadata/git-data
  2. # mkdir /oadata/gitlab/backup
  3. # chown -R git.git /oadata/gitlab # 备份目录
  4. # chown -R git.git /oadata/git-data # Git数据保存目录
  5. # vim /etc/gitlab/gitlab.rb
  1. external_url 'http://***'
  2. gitlab_rails['time_zone'] = 'Asia/Shanghai'
  3. gitlab_rails['gitlab_email_enabled'] = true
  4. gitlab_rails['gitlab_email_from'] = '***'
  5. gitlab_rails['gitlab_email_display_name'] = '***'
  6. gitlab_rails['gitlab_email_reply_to'] = '***'
  7. gitlab_rails['ldap_enabled'] = true
  8. gitlab_rails['ldap_servers'] = YAML.load <<-'EOS'
  9. main: # 'main' is the GitLab 'provider ID' of this LDAP server
  10. label: '***'
  11. host: '***'
  12. port: 389
  13. uid: 'uid'
  14. bind_dn: 'cn=root,***'
  15. password: '***'
  16. encryption: 'plain' # "start_tls" or "simple_tls" or "plain"
  17. verify_certificates: false
  18. active_directory: true
  19. allow_username_or_email_login: true
  20. lowercase_usernames: true
  21. block_auto_created_users: false
  22. base: 'ou=users,***'
  23. user_filter: '(memberOf=cn=gitlab,ou=groups,***)'
  24. EOS
  25. gitlab_rails['manage_backup_path'] = true
  26. gitlab_rails['backup_path'] = "/oadata/gitlab/backups"
  27. gitlab_rails['backup_archive_permissions'] = 0644
  28. gitlab_rails['backup_keep_time'] = 129600
  29. git_data_dirs({
  30. "default" => {
  31. "path" => "/oadata/git-data"
  32. }
  33. })
  34. gitlab_rails['smtp_enable'] = true
  35. gitlab_rails['smtp_address'] = "***"
  36. gitlab_rails['smtp_port'] = 25
  37. gitlab_rails['smtp_user_name'] = "***"
  38. gitlab_rails['smtp_password'] = "***"
  39. gitlab_rails['smtp_domain'] = "***"
  40. gitlab_rails['smtp_authentication'] = "login"
  41. gitlab_rails['smtp_enable_starttls_auto'] = true
  42. gitlab_rails['smtp_tls'] = false

再次进行编译更新配置

  1. # gitlab-ctl reconfigure

常用相关命令:

  1. # gitlab-ctl stop # 关闭服务
  2. # gitlab-ctl start # 开启服务
  3. # gitlab-ctl restart # 重启服务
  4. # gitlab-ctl status # 查看服务状态
  5. # gitlab-ctl tail # 查看日志
  6. # gitlab-rake gitlab:backup:create # 创建备份
  7. # gitlab-rake gitlab:backup:restore BACKUP=备份文件编号 # 恢复备份
  8. # cat /opt/gitlab/embedded/service/gitlab-rails/VERSION # 查看版本信息

三、Gitlab汉化

(1)下载对应版本的汉化包

  1. # wget https://gitlab.com/xhang/gitlab/-/archive/v11.8.0-zh/gitlab-v11.8.0-zh.tar

(2)更新语言包文件

  1. # gitlab-ctl stop
  2. # tar xvf gitlab-v11.8.0-zh.tar
  3. # \cp -rf gitlab-v11.8.0-zh/* /opt/gitlab/embedded/service/gitlab-rails/
  4. # chown -R
  5. # gitlab-ctl reconfigure
  6. # gitlab-ctl restart

四、Gitlab 备份与恢复

(1)备份脚本

  1. # vim /oadata/gitlab/backup/sh/gitlab_backup.sh
  1. #!/bin/bash
  2. now=`date +%Y%m%d`
  3. echo "开始执行gitlab备份..."
  4. /opt/gitlab/bin/gitlab-rake gitlab:backup:create
  5. echo "备份完成."
  6. echo "清理超过10天的备份数据..."
  7. /usr/bin/find /oadata/gitlab/backups/*gitlab_backup.tar -mtime +10 -exec rm -f {} \;
  8. echo "清理完成."
  9. echo "开始备份配置文件: gitlab.rb , gitlab-secrets.json"
  10. tar -cvf /oadata/gitlab/backups/config/${now}_gitlab_config_backup.tar /etc/gitlab/gitlab.rb /etc/gitlab/gitlab-secrets.json
  11. echo "清理超过30天的配置备份数据..."
  12. /usr/bin/find /oadata/gitlab/backups/config/*gitlab_config_backup.tar -mtime +30 -exec rm -f {} \;
  13. echo "清理完成."
  1. # chmod 755 /oadata/gitlab/backup/sh/gitlab_backup.sh

(2)备注定时备份

  • 每天2点50进行备份
  1. 50 02 * * * /oadata/gitlab/sh/gitlab_backup.sh

(3)Gitlab恢复

  • 恢复前,首先停止相关数据连接服务
  1. # gitlab-ctl stop unicorn
  2. # gitlab-ctl stop sidekiq
  3. # gitlab-rake gitlab:backup:restore BACKUP=备份文件编号

更换机器后进行恢复,还需要手工恢复文件: /etc/gitlab/gitlab.rb /etc/gitlab/gitlab-secrets.json

五、Gitlab升级

  • 在升级前一定要做好备份,记录自己当前gitlab-ca的版本号。
  1. # cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
  2. # gitlab-rake gitlab:backup:create
  • 升级Gitlab(注意:由于升级不能跨越大版本号,因此只能升级到当前大版本号到最高版本,方可升级到下一个大版本号)

    关闭连接服务
  1. # gitlab-ctl stop unicorn
  2. # gitlab-ctl stop sidekiq

以下为将Gitlab 11.8.0 升级为 12.0.3. 依次执行下面指令逐步升级命令,在每一步安装成功后如果发现界面500,不可访问,那么执行 gitlab-ctl reconfigure 指令刷新配置文件。(一定保证数据可以正常访问方可执行下一步升级指令)。

通过yum升级

  1. # yum install gitlab-ce-11.11.5-ce.0.el7

测试各功能验证无问题后,再次进行升级操作:

  1. # yum install gitlab-ce-12.0.3-ce.0.el7

或通过rpm升级

  1. # rpm -Uvh gitlab-ce-11.11.5-ce.0.el7.rpm

测试各功能验证无问题后,再次进行升级操作:

  1. rpm -Uvh gitlab-ce-11.11.5-ce.0.el7.rpm

六、访问Gitlab postgresql

1. 通过控制台访问数据库

  1. [root@localhost ~]# su - gitlab-psql //登陆用户
  2. -sh-4.1$ psql -h /var/opt/gitlab/postgresql -d gitlabhq_production 连接到gitlabhq_production
  3. psql (9.2.18)
  4. Type "help" for help.
  5. gitlabhq_production=# \h 查看帮助命令
  6. Available help:
  7. ABORT CREATE FUNCTION DROP TABLE
  8. ALTER AGGREGATE CREATE GROUP DROP TABLESPACE
  9. ALTER COLLATION CREATE INDEX DROP TEXT SEARCH CONFIGURATION
  10. ALTER CONVERSION CREATE LANGUAGE DROP TEXT SEARCH DICTIONARY
  11. ALTER DATABASE CREATE OPERATOR DROP TEXT SEARCH PARSER
  12. ALTER DEFAULT PRIVILEGES CREATE OPERATOR CLASS DROP TEXT SEARCH TEMPLATE
  13. ALTER DOMAIN CREATE OPERATOR FAMILY DROP TRIGGER
  14. ALTER EXTENSION CREATE ROLE DROP TYPE
  15. ……………………………………………………………………………………………………………………
  16. gitlabhq_production-# \l //查看数据库
  17. List of databases
  18. Name | Owner | Encoding | Collate | Ctype | Access privileges
  19. ---------------------+-------------+----------+-------------+-------------+---------------------------------
  20. gitlabhq_production | gitlab | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
  21. postgres | gitlab-psql | UTF8 | en_US.UTF-8 | en_US.UTF-8 |
  22. template0 | gitlab-psql | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/"gitlab-psql" +
  23. | | | | | "gitlab-psql"=CTc/"gitlab-psql"
  24. template1 | gitlab-psql | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/"gitlab-psql" +
  25. | | | | | "gitlab-psql"=CTc/"gitlab-psql"
  26. (4 rows)
  27. gitlabhq_production-# \dt //查看多表
  28. List of relations
  29. Schema | Name | Type | Owner
  30. --------+--------------------------------------+-------+--------
  31. public | abuse_reports | table | gitlab
  32. public | appearances | table | gitlab
  33. public | application_settings | table | gitlab
  34. public | audit_events | table | gitlab
  35. public | award_emoji | table | gitlab
  36. public | boards | table | gitlab
  37. public | broadcast_messages | table | gitlab
  38. ……………………………………………………………………………………………………………………
  39. gitlabhq_production-# \d abuse_reports //查看单表
  40. Table "public.abuse_reports"
  41. Column | Type | Modifiers
  42. --------------+-----------------------------+------------------------------------------------------------
  43. id | integer | not null default nextval('abuse_reports_id_seq'::regclass)
  44. reporter_id | integer |
  45. user_id | integer |
  46. message | text |
  47. created_at | timestamp without time zone |
  48. updated_at | timestamp without time zone |
  49. message_html | text |
  50. Indexes:
  51. "abuse_reports_pkey" PRIMARY KEY, btree (id)
  52. gitlabhq_production-# \di //查看索引
  53. List of relations
  54. Schema | Name | Type | Owner | Table
  55. --------+-----------------------------------------------------------------+-------+--------+--------------------------------
  56. ------
  57. public | abuse_reports_pkey | index | gitlab | abuse_reports
  58. public | appearances_pkey | index | gitlab | appearances
  59. public | application_settings_pkey | index | gitlab | application_settings
  60. public | audit_events_pkey | index | gitlab | audit_events
  61. public | award_emoji_pkey | index | gitlab | award_emoji
  62. public | boards_pkey | index | gitlab | boards
  63. public | broadcast_messages_pkey | index | gitlab | broadcast_messages
  64. public | chat_names_pkey | index | gitlab | chat_names
  65. public | ci_application_settings_pkey | index | gitlab | ci_application_settings
  66. public | ci_builds_pkey | index | gitlab | ci_builds
  67. public | ci_commits_pkey | index | gitlab | ci_commits
  68. ………………………………………………………………………………………………………………………………………………
  69. gitlabhq_production=# SELECT spcname FROM pg_tablespace; //查看所有表空间
  70. spcname
  71. ------------
  72. pg_default
  73. pg_global
  74. (2 rows)
  75. gitlabhq_production-# \q //退出psql
  76. -sh-4.1$ exit //退出登录用户
  77. logout

2. 开启临时远程无密码访问postgresql

(1)修改gitlab.rb

  1. # vim /etc/gitlab/gitlab.rb

配置为:

  1. postgresql['enable'] = true
  2. postgresql['listen_address'] = '0.0.0.0'
  3. postgresql['port'] = 5432
  4. postgresql['data_dir'] = "/var/opt/gitlab/postgresql/data"
  5. ...
  6. ...
  7. postgresql['custom_pg_hba_entries'] = {
  8. APPLICATION:[ { # APPLICATION should identify what the settings are used for
  9. type: "host",
  10. database: "all",
  11. user: "all",
  12. cidr: "0.0.0.0/0",
  13. method: "trust"
  14. }
  15. ]
  16. }
  1. # gitlab-ctl reconfigure

等待报错。没办法,上述修改,必然引发报错。

(2)修改pg_hba.conf

  1. vim /var/opt/gitlab/postgresql/data/pg_hba.conf

修改为:

  1. host all all 0.0.0.0/0 trust

注意:从此,不能再执行gitlab-ctl reconfigure 命令了,因为如果再执行gitlab-ctl reconfigure ,那么pg_hba.conf的修改就会被还原。

  1. # gitlab-ctl restart

七、常见问题及解决参考

  1. 连接gitlab postgresql
  2. 最全官方文档 # 可以解决大多数你遇到的问题
  3. 数据恢复时遇到的一个问题

Gitlab 安装、升级、备份、恢复、汉化等的更多相关文章

  1. Gitlab安装与备份恢复

    GitHub是2008年由Ruby on Rails编写而成,与业界闻名的Github类似;但要将代码上传到GitHub上面,而且将项目设为私有还要收费.GitLab是一个用于仓库管理系统的开源项目, ...

  2. CentOS服务器上搭建Gitlab安装步骤、中文汉化详细步骤、日常管理以及异常故障排查

    一, 服务器快速搭建gitlab方法 可以参考gitlab中文社区 的教程centos7安装gitlab:https://www.gitlab.cc/downloads/#centos7centos6 ...

  3. Windows下安装Confluence并破解汉化

    注:本文来源于<Windows下安装Confluence并破解汉化> 一.事前准备 1:JDK下载并安装:jdk-6u45-windows-i586.exe 2:MySQL JDBC连接驱 ...

  4. 安装SVN并进行汉化的详细步骤

    安装SVN并进行汉化的详细步骤 SAE提供了不同的代码部署方式,可以分为两类:一是通过SVN客户端部署,这是SAE推荐的代码部署方法.另一个是通过非SVN客户端部署,即在线代码在线编辑器和推荐应用安装 ...

  5. 文本编辑器激活系列(一):Sublime 安装、激活、汉化教程

    如您激活出现问题,请点击这里加入:软件激活问题解决群 前言 推荐几款文本编辑器: Sublime:内嵌python解释器.大量插件 EditPlus:语法着色.内嵌浏览器 Notepad++:所见即所 ...

  6. Axure安装、破解、汉化全套

    最近公司准备使用敏捷开发流程,然后刚好需要Axure这个软件,就去找了些资源分享给大家,希望对大家有所帮助: 全套安装,破解,汉化下载地址: 链接: https://pan.baidu.com/s/1 ...

  7. (整理)Sublime Text 3 安装、破解、安装Package Control、汉化、添加到右键菜单、代码格式化、禁止更新

    Sublime Text 3好用,但是每次安装到最后用着顺手,得在网上找半天安装.破解.安装Package Control.汉化.添加到右键菜单.代码格式化等等的教程,今天有空给自己整理一下吧. 一. ...

  8. sublime text 3 环境变量的配置、安装Package Control、汉化和注册

    1.在运行里输入sysdm.cpl打开环境变量设置界面,输入sublime的安装目录,分号和之前的隔开 2.下载好Package Control,解压重命名为package control 下载地址: ...

  9. gitlab 安装、备份与还原及常见设置

    gitlab 安装.备份与还原及常见设置 安装 安装过程比较简单,跑在 docker 上,执行命令即可 -v参数后面的值为卷的名称,自动创建数据卷(如果数据卷不存在) https://docs.git ...

  10. AxureRP 9安装、激活、汉化

    AxureRP安装 AxureRP激活 AxureRP汉化

随机推荐

  1. Scala教程之:Either

    在之前的文章中我们提到了Option,scala中Option表示存在0或者1个元素,如果在处理异常的时候Option就会有很大的限制,因为Option如果返回None,那么我并不知道具体的异常到底是 ...

  2. jQuery动态时钟

    效果图: 引用的jQuery.js自己百度 代码: <!DOCTYPE html> <html> <head> <meta charset="utf ...

  3. Android Room SQLite持久层框架

    原文链接 前言 Android中提供了SQLite数据库进行数据的持久化 ,并提供了对应API访问数据库,而Room框架提供了SQLite数据访问抽象层,为高效的数据库访问层带来便捷 APP可以缓存用 ...

  4. javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake

    2019独角兽企业重金招聘Python工程师标准>>> 问题 前两天一个学弟在群里面问一个问题: 请问一下用阿里云服务器发送https请求为什么会失败,是需要有些其他什么配置吗? 同 ...

  5. ACM-ICPC 2019 山东省省赛 C Wandering Robot

    这个题额,我觉的是一道水题,思维题,需要考虑的情况比较多,题意一个机器人给一条指令,循环n遍,问此过程中离原点最远距离. 考虑最远距离可能出现的的情况. 每次循环之后距离至少为0: 1.假设他每一次循 ...

  6. P1518 两只塔姆沃斯牛 The Tamworth Two(简单的搜索题)

    题目描述 两只牛逃跑到了森林里.农夫John开始用他的专家技术追捕这两头牛.你的任务是模拟他们的行为(牛和John). 追击在10x10的平面网格内进行.一个格子可以是: 一个障碍物, 两头牛(它们总 ...

  7. App 自动化环境搭建

    1.安装 Appium-desktop 工具 下载地址:https://github.com/appium/appium-desktop/releases 2.安装 Android 环境 安装 JDK ...

  8. css属性、样式、边框、选择器

    CSS 层叠样式表 (Cascading Style Sheets,缩写为 CSS),是一种 样式表 语言, 用来描述 HTML或 XML(包括如 SVG.MathML.XHTML 之类的 XML 分 ...

  9. FarmCraft

    题意:mhy住在一棵有n个点的树的1号结点上,每个结点上都有一个妹子.mhy从自己家出发,去给每一个妹子都送一台电脑,每个妹子拿到电脑后就会开始安装zhx牌杀毒软件,第i个妹子安装时间为ci.树上的每 ...

  10. UIResponder相关

    UIResponder是OC中一个响应事件的类.UIApplication.UIView.UIViewController都是它的子类.UIWindow是UIView的子类,因此也能响应事件. UIR ...