Home  >  Article  >  Operation and Maintenance  >  How to build GitLab on CentOS7

How to build GitLab on CentOS7

藏色散人
藏色散人forward
2021-07-02 14:10:572643browse

Environment requirements: at least 4G of memory, GitLab is very memory-consuming

1. Install and Configure necessary dependencies

On CentOS systems, the following command will open HTTP and SSH access in the system firewall.

$ 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

Install Postfix, which is used to send emails. Select 'Internet Site' during the installation of Postfix.

$ sudo yum install postfix
$ sudo systemctl enable postfix
$ sudo systemctl start postfix

You can also configure a custom SMTP server.

2. Add the GitLab mirror repository and install it

gitlab-ce is the community version, free
gitlab-ee is the enterprise version, paid

2.1 Use the official mirror to install

$ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash

$ sudo EXTERNAL_URL="http://gitlab.example.com" yum install -y gitlab-ce # 安装 GitLab

2.2 Use domestic mirror installation (recommended)

If you are prompted that the connection has timed out, you can use Tsinghua University Open Source Software Mirror Station: https://mirror.tuna.tsinghua .....
After entering the website, there are detailed installation steps, just follow the installation.

Here is an introduction to using Tsinghua University open source software mirror station in CentOSInstallation:
Restore the yum source first, delete the gitlab-ce source:

$ ls -l /etc/yum.repos.d/ # 查看源配置项
$ mv /etc/yum.repos.d/gitlab_gitlab-ce.repo /etc/yum.repos.d/gitlab_gitlab-ce.repo.bak # 备份源配置项(也可以直接删除 rm)

New /etc/yum.repos.d/gitlab-ce.repo, the content is

[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1

Execute again

$ sudo yum makecache
$ sudo yum install gitlab-ce

After installation, the /opt/gitlab/ directory structure

/opt/gitlab/
├── backups
├── git-data
│   └── repositories
│       └── root
├── gitlab-ci
│   └── builds
├── gitlab-rails
│   ├── etc
│   ├── shared
│   │   ├── artifacts
│   │   ├── lfs-objects
│   │   └── pages
│   ├── sockets
│   ├── tmp
│   ├── upgrade-status
│   ├── uploads
│   └── working
├── gitlab-shell
├── gitlab-workhorse
├── logrotate
│   └── logrotate.d
├── nginx
│   ├── client_body_temp
│   ├── conf
│   ├── fastcgi_temp
│   ├── logs -> /var/log/gitlab/nginx
│   ├── proxy_cache
│   ├── proxy_temp
│   ├── scgi_temp
│   └── uwsgi_temp
├── postgresql
│   └── data
│       ├── base
│       │   ├── 1
│       │   ├── 12918
│       │   ├── 12923
│       │   └── 16385
│       ├── global
│       ├── pg_clog
│       ├── pg_multixact
│       │   ├── members
│       │   └── offsets
│       ├── pg_notify
│       ├── pg_serial
│       ├── pg_snapshots
│       ├── pg_stat_tmp
│       ├── pg_subtrans
│       ├── pg_tblspc
│       ├── pg_twophase
│       └── pg_xlog
│           └── archive_status
└── redis

3. Configure and start GitLab

Startup command

$ sudo gitlab-ctl reconfigure # 首次启动也要用此命令。重新加载配置并启动
$ sudo gitlab-ctl start # 启动
$ sudo gitlab-ctl stop # 停止

/etc/gitlab/ Directory structure:

/etc/gitlab/
├── gitlab.rb
├── gitlab-secrets.json
└── ssl
    └── trusted-certs

The basic configuration of gitLab is concentrated in the /etc/gitlab/gitlab.rb file , for the function and configuration of each parameter, please refer to the configuration instructions on the official website.
Configuration parameters:

### Advanced settings
# unicorn['listen'] = 'localhost'
# unicorn['port'] = 8090 #默认是8080端口


nginx['listen_port'] = 8081  # gitlab nginx 端口。默认端口为:80 

external_url 'http://192.168.137.129' # clone时显示的地址,gitlab 的域名

Configuration:

$ sudo gitlab-ctl stop # 先停止 GitLab 服务 
$ vim /etc/gitlab/gitlab.rb # 修改配置文件

After making any changes, save and exit, enter one by one on the command line The following command makes the configuration effective

Start the database, otherwise reconfigure will report an error

$ sudo gitlab-ctl restart postgresql
$ sudo gitlab-ctl reconfigure
$ sudo gitlab-ctl start

4. Access

The default administrator account of the system is root. When accessing GitLab for the first time, you will be asked Initialize the password of the administrator account.

5. Port conflict problem

After installation, you will find a problem; gitlab is actually a web; it comes with nginx; if you are also a server, the above Apache or nginx will be installed; then the port will conflict;

Just change the default port of nginx that comes with gitlab

6. Uninstall GitLab

$ sudo gitlab-ctl stop # 停止
$ sudo rpm -e gitlab-ce # 卸载
$ ps aux | grep gitlab # 查看守护进程
$ kill -9 18777 # 杀掉守护进程
$ find / -name gitlab | xargs rm -rf # 删除所有包含gitlab的文件

For more centos-related technical articles, please visit the centos tutorial column!

The above is the detailed content of How to build GitLab on CentOS7. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:segmentfault.com. If there is any infringement, please contact admin@php.cn delete