0%

gitLab 安装 使用

gitLab

CentOS 6.6 下安装

Download rpm

https://packages.gitlab.com/gitlab/gitlab-ce?filter=rpms

1
2
3
4
5
6
sudo yum install curl openssh-server openssh-clients postfix cronie
sudo service postfix start
sudo chkconfig postfix on
sudo lokkit -s http -s ssh

rpm -ivh gitlab-ce-XXX.rpm

启动(或修改/etc/gitlab/gitlab.rb 配置文件后重启生效)

1
sudo gitlab-ctl reconfigure

会自动添加这些用户

1
2
3
4
gitlab-www:x:498:498::/var/opt/gitlab/nginx:/bin/false
git:x:497:497::/var/opt/gitlab:/bin/sh
gitlab-redis:x:496:496::/var/opt/gitlab/redis:/bin/nologin
gitlab-psql:x:495:495::/var/opt/gitlab/postgresql:/bin/sh

备份数据

https://docs.gitlab.com/ce/raketasks/backup_restore.html

需要手工备份
/etc/gitlab/gitlab-secrets.json (for omnibus packages) or /home/git/gitlab/.secret

1
sudo gitlab-rake gitlab:backup:create

默认文件备份在/var/opt/gitlab/backups

恢复数据

拷贝文件到 /var/opt/gitlab/backups

1
cp *_gitlab_backup.tar /var/opt/gitlab/backups

修改备份文件权限 0644

1
chmod 0644 *_gitlab_backup.tar

停止服务

1
2
3
4
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop sidekiq
# Verify
sudo gitlab-ctl status

恢复文件

1
2
# This command will overwrite the contents of your GitLab database!
sudo gitlab-rake gitlab:backup:restore BACKUP=1393513186

重启服务并检查 一般会出现警告,根据提示修改

1
2
sudo gitlab-ctl start
sudo gitlab-rake gitlab:check SANITIZE=true

遇到问题

  1. 备份恢复时
    打开项目主页出现 500 错误 其他正常https://gitlab.com/gitlab-org/gitlab-ce/issues/16999
    I looked a little closer at this. The error only occurs on the project main page: https://donmainame.com/namespace/project Does not work. https://donmainame.com/namespace/project/activity https://donmainame.com/namespace/project/issues https://donmainame.com/namespace/project/wiki And others do work.

    1
    cat /var/log/gitlab/gitlab-rails/production.log
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Started GET "/NAMESPACE/PROJECT" for 127.0.0.1 at 2016-04-28 08:18:42 -0700

    Processing by ProjectsController#show as HTML
    Parameters: {"namespace_id"=>"NAMESPACE", "id"=>"PROJECT"}
    Completed 500 Internal Server Error in 35ms (ActiveRecord: 3.7ms)
    OpenSSL::Cipher::CipherError (bad decrypt):
    app/models/project.rb:419:in `import_url' app/models/project.rb:449:in`external_import?'
    app/models/project.rb:441:in `import?' app/models/project.rb:457:in`import_in_progress?'
    app/controllers/projects_controller.rb:93:in `show' lib/gitlab/middleware/go.rb:16:in`call'

    原因是没有复制/etc/gitlab/gitlab-secrets.json,复制该文件后解决

连接数据库操作

https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/doc/settings/database.md

连接数据命令

1
sudo gitlab-rails dbconsole

或者

1
sudo -u gitlab-psql /opt/gitlab/embedded/bin/psql -h /var/opt/gitlab/postgresql -d gitlabhq_production
1
2
3
4
5
6
7
8
gitlabhq_production=# help
You are using psql, the command-line interface to PostgreSQL.
Type: \copyright for distribution terms
\h for help with SQL commands
\? for help with psql commands
\g or terminate with semicolon to execute query
\q to quit
gitlabhq_production=#

\l 列出数据库 \d 列出表 \q 退出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
gitlabhq_production=# \?
General
\copyright show PostgreSQL usage and distribution terms
\g [FILE] or ; execute query (and send results to file or |pipe)
\h [NAME] help on syntax of SQL commands, * for all commands
\q quit psql

Query Buffer
\e [FILE] [LINE] edit the query buffer (or file) with external editor
\ef [FUNCNAME [LINE]] edit function definition with external editor
\p show the contents of the query buffer
\r reset (clear) the query buffer
\s [FILE] display history or save it to file
\w FILE write query buffer to file

Input/Output
\copy ... perform SQL COPY with data stream to the client host
\echo [STRING] write string to standard output
\i FILE execute commands from file
\ir FILE as \i, but relative to location of current script
\o [FILE] send all query results to file or |pipe
\qecho [STRING] write string to query output stream (see \o)

Informational
(options: S = show system objects, + = additional detail)
\d[S+] list tables, views, and sequences
\d[S+] NAME describe table, view, sequence, or index
\da[S] [PATTERN] list aggregates
\db[+] [PATTERN] list tablespaces
\dc[S+] [PATTERN] list conversions
\dC[+] [PATTERN] list casts
\dd[S] [PATTERN] show object descriptions not displayed elsewhere
\ddp [PATTERN] list default privileges
\dD[S+] [PATTERN] list domains
\det[+] [PATTERN] list foreign tables
\des[+] [PATTERN] list foreign servers
\deu[+] [PATTERN] list user mappings
\dew[+] [PATTERN] list foreign-data wrappers
\df[antw][S+] [PATRN] list [only agg/normal/trigger/window] functions
\dF[+] [PATTERN] list text search configurations
\dFd[+] [PATTERN] list text search dictionaries
\dFp[+] [PATTERN] list text search parsers
\dFt[+] [PATTERN] list text search templates
\dg[+] [PATTERN] list roles
\di[S+] [PATTERN] list indexes
\dl list large objects, same as \lo_list
\dL[S+] [PATTERN] list procedural languages
\dn[S+] [PATTERN] list schemas
\do[S] [PATTERN] list operators
\dO[S+] [PATTERN] list collations
\dp [PATTERN] list table, view, and sequence access privileges
\drds [PATRN1 [PATRN2]] list per-database role settings
\ds[S+] [PATTERN] list sequences
\dt[S+] [PATTERN] list tables
\dT[S+] [PATTERN] list data types
\du[+] [PATTERN] list roles
\dv[S+] [PATTERN] list views
\dE[S+] [PATTERN] list foreign tables
\dx[+] [PATTERN] list extensions
\l[+] list all databases
\sf[+] FUNCNAME show a function's definition
\z [PATTERN] same as \dp

Formatting
\a toggle between unaligned and aligned output mode
\C [STRING] set table title, or unset if none
\f [STRING] show or set field separator for unaligned query output
\H toggle HTML output mode (currently off)
\pset NAME [VALUE] set table output option
(NAME := {format|border|expanded|fieldsep|fieldsep_zero|footer|null|
numericlocale|recordsep|recordsep_zero|tuples_only|title|tableattr|pager})
\t [on|off] show only rows (currently off)
\T [STRING] set HTML <table> tag attributes, or unset if none
\x [on|off|auto] toggle expanded output (currently off)

Connection
\c[onnect] {[DBNAME|- USER|- HOST|- PORT|-] | conninfo}
connect to new database (currently "gitlabhq_production")
\encoding [ENCODING] show or set client encoding
\password [USERNAME] securely change the password for a user
\conninfo display information about current connection

Operating System
\cd [DIR] change the current working directory
\setenv NAME [VALUE] set or unset environment variable
\timing [on|off] toggle timing of commands (currently off)
\! [COMMAND] execute command in shell or start interactive shell

Variables
\prompt [TEXT] NAME prompt user to set internal variable
\set [NAME [VALUE]] set internal variable, or list all if no parameters
\unset NAME unset (delete) internal variable

Large Objects
\lo_export LOBOID FILE
\lo_import FILE [COMMENT]
\lo_list
\lo_unlink LOBOID large object operations
gitlabhq_production=#

配置文件位置

1
vim /etc/gitlab/gitlab.rb

gitlab-ctrl

1
2
3
4
5
gitlab-ctrl reconfigure
gitlab-ctrl status
gitlab-ctrl start
gitlab-ctrl restart
gitlab-ctrl stop