How to install Gitlab Omnibus in CentOS 7

Gitlab Omnibus installation in CentOS 7

GitLab is a web-based repository manager for teams collaboration. It is used to create, edit new projects and merge finished code into the existing projects. Installation of Gitlab Omnibus is explained in this tutorial.

Advantages

  • Secured codes.
  • Improved milestones.
  • Status availability.
  • Supports GUI.
  • Control over the repository.
  • Snippet supports.

To install Gitlab

Before installing gitlab community edition, install the following dependency packages.

[root@linuxhelp ~]# yum install curl policycoreutils openssh-server openssh-clients
Loading mirror speeds from cached hostfile
 * base: centos.excellmedia.net
 * epel: ftp.riken.jp
 * extras: centos.excellmedia.net
 * updates: centos.excellmedia.net
Resolving Dependencies
-->  Running transaction check
.
.
.
 Verifying  : openssh-6.4p1-8.el7.x86_64                                                                                                                                                                                              11/14
  Verifying  : openssh-clients-6.4p1-8.el7.x86_64                                                                                                                                                                                      12/14
  Verifying  : policycoreutils-python-2.2.5-11.el7.x86_64                                                                                                                                                                              13/14
  Verifying  : libcurl-7.29.0-19.el7.x86_64                                                                                                                                                                                            14/14

Updated:
  curl.x86_64 0:7.29.0-25.el7.centos                     openssh-clients.x86_64 0:6.6.1p1-25.el7_2                     openssh-server.x86_64 0:6.6.1p1-25.el7_2                     policycoreutils.x86_64 0:2.2.5-20.el7                    

Dependency Updated:
  libcurl.x86_64 0:7.29.0-25.el7.centos                                        openssh.x86_64 0:6.6.1p1-25.el7_2                                        policycoreutils-python.x86_64 0:2.2.5-20.el7                                       

Complete!

Utilise the following command to Start and enable the sshd services.

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

Run the following command to install postfix

[root@linuxhelp ~]# yum install postfix
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: centos.excellmedia.net
 * epel: epel.mirror.net.in
 * extras: centos.excellmedia.net
 * updates: centos.excellmedia.net
Resolving Dependencies
-->  Running transaction check
--->  Package postfix.x86_64 2:2.10.1-6.el7 will be installed
-->  Finished Dependency Resolution
.
.
.
Running transaction
  Installing : 2:postfix-2.10.1-6.el7.x86_64                                                                                                                                                                                             1/1
  Verifying  : 2:postfix-2.10.1-6.el7.x86_64                                                                                                                                                                                             1/1

Installed:
  postfix.x86_64 2:2.10.1-6.el7                                                                                                                                                                                                              

Complete!

Start and enable the postfix services.

[root@linuxhelp ~]# systemctl enable postfix
[root@linuxhelp ~]# systemctl start postfix

Instead of using Postfix you can also use Sendmail
Add the http service to firewall

[root@linuxhelp ~]# firewall-cmd --permanent --add-service=https
Success
[root@linuxhelp ~]# systemctl reload firewalld

Add the GitLab package server and install the package

Install the repository through a piped script

[root@linuxhelp ~]# curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | sudo bash
Detected operating system as centos/7.
Checking for curl...
Detected curl...
Downloading repository file: https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/config_file.repo?os=centos& dist=7& source=script
done.
Installing pygpgme to verify GPG signatures...
Loaded plugins: fastestmirror, langpacks
gitlab_gitlab-ce-source/signature                                                                                                                                                                                        
Retrieving key from https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
Importing GPG key 0xE15E78F4:
 Userid     : " GitLab B.V. (package repository signing key) < packages@gitlab.com> " 
 Fingerprint: 1a4c 919d b987 d435 9396 38b9 1421 9a96 e15e 78f4
 From       : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
.
.
.
Generating yum cache for gitlab_gitlab-ce...
Importing GPG key 0xE15E78F4:
 Userid     : " GitLab B.V. (package repository signing key) < packages@gitlab.com> " 
 Fingerprint: 1a4c 919d b987 d435 9396 38b9 1421 9a96 e15e 78f4
 From       : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
The repository is setup! You can now install packages.

Then install gitlab community edition by using the following command.

[root@linuxhelp ~]# yum install gitlab-ce
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: centos.excellmedia.net
 * epel: ftp.yzu.edu.tw
 * extras: centos.excellmedia.net
 * updates: centos.excellmedia.net
Resolving Dependencies
-->  Running transaction check
--->  Package gitlab-ce.x86_64 0:8.9.6-ce.0.el7 will be installed
.
.
.
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-8.9.6-ce.0.el7.x86_64                                                                                                                                                                                           1/1

Installed:
  gitlab-ce.x86_64 0:8.9.6-ce.0.el7                                                                                                                                                                                                          

Complete!

Configure and start GitLab

Now start the configuration by using the gitlab-ctl command.

[root@linuxhelp ~]# gitlab-ctl reconfigure

Open the browser and navigate to https://< IP_address>

On first visit, it automatically redirects to the password reset screen. Provide the password for administrative account (root).


Enter the username and password for administrative account (root).

Now you can start adding projects or groups.

FAQ
Q
Is there a max size (disk size) per project in Gitlab?
A
Projects have no limit in disk size. The size of each project is listed in the projects overview in the admin panel in Gitlab.
Q
Why after installation I am getting site can't be reached error?
A
Make sure you have added http service in firewalld
and the configuration.
Q
Does GitLab provide project templates?
A
There are no project templates in GitLab at the moment.
Q
Do you have syntax coloring? For which languages? Is it extensible?
A
GitLab uses the rouge ruby library for syntax highlighting. Rouge supports 77 languages and counting, including Ruby, JavaScript, Swift, Go, C++, and Haskell.
Q
Does GitLab support a search engine based on Elasticsearch or alike?
A
GitLab EE allows to leverage the search capabilities of Elasticsearch.