GitLab 安装部署-Omnibus方式

九五霸霸 1月前 161

GitLab 安装部署方式有2种:

一是Omnibus方式,是官方推荐方式,其实就是RPM包安装的方式,把所有组件都集成在一个RPM包里边,安装简单,升级容易,是官方推荐的方式。生产环境最好用这种方式。

另一种方式就是源码包安装的方式,需要自己安装Ruby环境、GO环境、数据库、其它各个组件等,安装很繁琐、复杂,不过想要了解GitLab调用和交互关系,可以测试安装,生产环境不推荐此种方式。


1.安装和配置必须的依赖包


[root@dhost1 ~]# yum install curl policycoreutils openssh-server openssh-clients
...  ...
Updated:
  curl.x86_64 0:7.29.0-35.el7.centos        openssh-clients.x86_64 0:6.6.1p1-35.el7_3       openssh-server.x86_64 0:6.6.1p1-35.el7_3                       
Dependency Updated:
  libcurl.x86_64 0:7.29.0-35.el7.centos        openssh.x86_64 0:6.6.1p1-35.el7_3                                                         
Complete!

sshd开机启动,正常情况下不用操作。

[root@dhost1 ~]# systemctl enable sshd
[root@dhost1 ~]# systemctl start sshd


安装postfix,用于发送邮件。

> 如果你安装Postfix 来发送邮件,请在安装时选择 'Internet Site' 。你也可以使用Sendmail 或者配置一个自定义SMTP服务来代替Postfix 。如果你想用Exim,请将其配置成为一个SMTP服务。

[root@dhost1 ~]# yum install postfix
...  ...
Package 2:postfix-2.10.1-6.el7.x86_64 already installed and latest version
Nothing to do
[root@dhost1 ~]# systemctl enable postfix
[root@dhost1 ~]# systemctl start postfix


配置firewalld服务,增加http服务通行策略。

[root@dhost1 ~]# firewall-cmd --permanent --add-service=http
success
[root@dhost1 ~]# systemctl reload firewalld



2.添加GitLab yum源与安装GitLab-CE版本


**安装最新版本**

[root@dhost1 ~]# curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
...  ...
The repository is setup! You can now install packages.
[root@dhost1 ~]# 
[root@dhost1 ~]# yum install gitlab-ce
...  ...
  Installing : gitlab-ce-9.2.1-ce.0.el7.x86_64                                                                                                                                          1/1 
       *.                  *.
      ***                 ***
     *****               *****
    .******             *******
    ********            ********
   ,,,,,,,,,***********,,,,,,,,,
  ,,,,,,,,,,,*********,,,,,,,,,,,
  .,,,,,,,,,,,*******,,,,,,,,,,,,
      ,,,,,,,,,*****,,,,,,,,,.
         ,,,,,,,****,,,,,,
            .,,,***,,,,
                ,*,.
     _______ __  __          __
    / ____(_) /_/ /   ____ _/ /_
   / / __/ / __/ /   / __ `/ __ \
  / /_/ / / /_/ /___/ /_/ / /_/ /
  \____/_/\__/_____/\__,_/_.___/
gitlab: Thank you for installing GitLab!
gitlab: To configure and start GitLab, RUN THE FOLLOWING COMMAND:
sudo gitlab-ctl reconfigure
gitlab: GitLab should be reachable at http://dhost1
gitlab: Otherwise configure GitLab for your system by editing /etc/gitlab/gitlab.rb file
gitlab: And running reconfigure again.
gitlab: 
gitlab: For a comprehensive list of configuration options please see the Omnibus GitLab readme
gitlab: https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
gitlab: 
It looks like GitLab has not been configured yet; skipping the upgrade script.
  Verifying  : gitlab-ce-9.2.1-ce.0.el7.x86_64                                                                                                                                          1/1 
Installed:
  gitlab-ce.x86_64 0:9.2.1-ce.0.el7                                                                                                                                                         
Complete!
[root@dhost1 ~]#


**安装指定版本**

curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
sudo yum install gitlab-ce-10.6.4-ce.0.el7.x86_64

参考页面:https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-10.6.4-ce.0.el7.x86_64.rpm



3.配置和启动 GitLab


执行下面命令安装相关软件、配置、启动GitLab。

[root@dhost1 ~]# gitlab-ctl reconfigure

该操作会创建一系列目录以及配置文件,另外安装内置的nginx服务等。并启动 GitLab 服务,提供80端口web界面供访问。

如果需要修改 GitLab 配置,修改 /etc/gitlab/gitlab.rb ,然后再执行“gitlab-ctl reconfigure”命令。

执行命令后,会安装和配置的软件有:

nginx redis postgresql logrotate prometheus unicorn gitaly ruby sidekiq 等等


执行完成后监听的端口:

nginx  0.0.0.0:80
nginx  0.0.0.0:8060
ruby  127.0.0.1:9168
unicorn  127.0.0.1:8080
prometheus   127.0.0.1:9090
node-exporter  127.0.0.1:9100
redis-exporter  127.0.0.1:9121
postgres-exporter  127.0.0.1:9187

启动的进程有:

[root@mop-docker009 ~]# gitlab-ctl status 
run: gitaly: (pid 3512) 1471s; run: log: (pid 19701) 12169s
run: gitlab-monitor: (pid 3522) 1470s; run: log: (pid 20444) 12141s
run: gitlab-workhorse: (pid 3525) 1470s; run: log: (pid 19718) 12167s
run: logrotate: (pid 3547) 1470s; run: log: (pid 19825) 12163s
run: nginx: (pid 14707) 142s; run: log: (pid 19755) 12165s
run: node-exporter: (pid 3746) 1439s; run: log: (pid 19924) 12155s
run: postgres-exporter: (pid 3758) 1438s; run: log: (pid 20406) 12147s
run: postgresql: (pid 3773) 1438s; run: log: (pid 19536) 12208s
run: prometheus: (pid 3795) 1437s; run: log: (pid 19865) 12157s
run: redis: (pid 3837) 1437s; run: log: (pid 19479) 12214s
run: redis-exporter: (pid 3844) 1436s; run: log: (pid 20346) 12153s
run: sidekiq: (pid 3856) 1436s; run: log: (pid 19691) 12171s
run: unicorn: (pid 3862) 1436s; run: log: (pid 19660) 12172s



4.访问GitLab页面


在浏览器输入 http://IP  即可访问GitLab页面。

首次登陆需要修改root用户的密码,密码最少为8个字符。

修改完root用户的密码后,可以使用root/新密码登陆。



5.Nginx配置文件与日志文件


可以通过 nginx 配置文件和日志文件排查平时访问遇到的问题。不过修改nginx配置需要通过 /etc/gitlab/gitlab.rb 修改。

/var/opt/gitlab/nginx/conf
 - gitlab-http.conf     #nginx gitlab 配置
 - nginx.conf           #nginx 主配置
 - nginx-status.conf    #nginx status 配置

 /var/opt/gitlab/nginx/logs
 - current              #nginx启动故障日志。
 - gitlab_access.log    #nginx访问日志。
 - gitlab_error.log     #nginx访问error日志。



6.GitLab配置文件 (可选)


GitLab的有关配置项在 /etc/gitlab/gitlab.rb 进行设置。配置完成后需要执行 sudo gitlab-ctl reconfigure 来生效。


#### 例1:修改nginx对外server_name

修改 /etc/gitlab/gitlab.rb 中的下列行:

external_url "http://gitlab.example.com"   

然后运行 sudo gitlab-ctl reconfigure 生效。


#### 例2:修改nginx监听的IP地址

默认nginx启动后监听的80和8060端口都是监听在 0.0.0.0 地址上,如果服务器有多个IP地址,则每个IP都能访问。

如果只允许其中一个IP可以访问,修改 /etc/gitlab/gitlab.rb 中的下列位置。

 nginx['listen_addresses'] = ['10.0.0.35']
 nginx['status'] = {
  "listen_addresses" => ["127.0.0.1"]
 }

然后运行 gitlab-ctl reconfigure 生效。

完成后监听地址变为

10.0.8.35:80

127.0.0.1:8060


#### 例3:修改Git数据存储目录

默认公共gitlab把Git仓库数据存储到 /var/opt/gitlab/git-data下,所有小仓库存储在这下面的分支目录repositories里。你可以通过修改/etc/gitlab/gitlab.rb的下面行来变更父目录git-data的位置。

git_data_dir "/mnt/nas/git-data"

运行 sudo gitlab-ctl reconfigure 生效。

如果你已经有存在的Git仓库在/var/opt/gitlab/git-data,你可以通过下面几个步骤把它们移动到新位置:

> 阻止用户在移动期间写入仓库.

sudo gitlab-ctl stop

> 注意,repositories后面没有斜杠,但git-data后面有斜杠。

sudo rsync -av /var/opt/gitlab/git-data/repositories /mnt/nas/git-data/

sudo gitlab-ctl reconfigure

> 再次核实/mnt/nas/git-data下的目录结构. 应该输出: gitlab-satellites  repositories

sudo ls /mnt/nas/git-data/

> 完成!启动GitLab ,验证下你可以在web接口看到这个仓库。

sudo gitlab-ctl start



7.报错处理


1.web页面打开报502

Whoops, GitLab is taking too much time to respond.

解决方法:

unicorn 启动需要监听8080端口,请检查该端口是否被其它进程占用。处理后restart或者reconfigure ,这样unicorn才能正常启动监听8080端口。

另外要查看系统空闲内存是否大于2G,不够2G可能运行不了gitlab。



参考

---

- https://packages.gitlab.com/gitlab/gitlab-ce

- https://about.gitlab.com/install/#centos-7?version=ce

- https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md

- https://docs.gitlab.com/omnibus/settings/nginx.html#setting-the-nginx-listen-address-or-addresses


最新回复 (0)
    • 运维开源项目互助社区—致敬开源
      2
        立即登录 立即注册 
返回