How to build GitLab on CentOS7

藏色散人
Release: 2021-07-02 14:10:57
forward
2663 people have browsed it

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
Copy after login

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
Copy after login

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
Copy after login

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)
Copy after login

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
Copy after login

Execute again

$ sudo yum makecache
$ sudo yum install gitlab-ce
Copy after login

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
Copy after login

3. Configure and start GitLab

Startup command

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

/etc/gitlab/ Directory structure:

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

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 的域名
Copy after login

Configuration:

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

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
Copy after login

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的文件
Copy after login

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!

Related labels:
source:segmentfault.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template