Install GitLab on Alma Linux 8

GitLab is a free and open-source DevOps software that comes with multiple tools to develop, secure, and operate software in a single application. It provides free unlimited repositories and unlimited collaborators. It is primarily used to host Git repositories, with additional development-related features like issue tracking. It is very similar to Github and Bitbucket and allows individuals and teams to share code remotely with others.

GitLab is available in four major editions:

  • GitLab Community Edition - Free, open-source, and self-hosted.
  • GitLab Enterprise Edition - Self-hosted and paid with additional features.
  • GitLab.com - Free, and SaaS.
  • GitLab.io - Private GitLab instance managed by GitLab Inc.

In this post, we will explain how to install GitLab CE on Alma Linux 8.

Prerequisites

  • A server running Alma Linux 8.
  • A valid domain name pointed with your server IP.
  • A root password is configured on the server.

Add the GitLab CE Repository

By default, the GitLab package is not included in the Alma Linux default repository. So you will need to add the GitLab official repository to your system. You can download and add the following script to add the GitLab repository.

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

You will get the following output:

Complete!
Generating yum cache for gitlab_gitlab-ce...
Importing GPG key 0x51312F3F:
 Userid     : "GitLab B.V. (package repository signing key) <[email protected]>"
 Fingerprint: F640 3F65 44A3 8863 DAA0 B6E0 3F01 618A 5131 2F3F
 From       : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
Importing GPG key 0xF27EAB47:
 Userid     : "GitLab, Inc. <[email protected]>"
 Fingerprint: DBEF 8977 4DDB 9EB3 7D9F C3A0 3CFC F9BA F27E AB47
 From       : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
Generating yum cache for gitlab_gitlab-ce-source...

The repository is setup! You can now install packages.

You can verify the installed repository using the following command:

cat /etc/yum.repos.d/gitlab_gitlab-ce.repo

You will get the following output:

[gitlab_gitlab-ce]
name=gitlab_gitlab-ce
baseurl=https://packages.gitlab.com/gitlab/gitlab-ce/el/8/$basearch
repo_gpgcheck=1
gpgcheck=1
enabled=1
gpgkey=https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
       https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

[gitlab_gitlab-ce-source]
name=gitlab_gitlab-ce-source
baseurl=https://packages.gitlab.com/gitlab/gitlab-ce/el/8/SRPMS
repo_gpgcheck=1
gpgcheck=1
enabled=1
gpgkey=https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
       https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300

You can also list the GitLab repo using the following command:

dnf repolist

You will get the following output:

repo id                                                               repo name
appstream                                                             Rocky Linux 8 - AppStream
baseos                                                                Rocky Linux 8 - BaseOS
extras                                                                Rocky Linux 8 - Extras
gitlab_gitlab-ce                                                      gitlab_gitlab-ce
gitlab_gitlab-ce-source                                               gitlab_gitlab-ce-source

Install GitLab CE on Alma Linux 8

At this point, GitLab repo is created on your system. You can now install the GitLab CE by running the following command:

dnf install gitlab-ce -y

Once the GitLab CE is installed, you will get the following output:

It looks like GitLab has not been configured yet; skipping the upgrade script.

       *.                  *.
      ***                 ***
     *****               *****
    .******             *******
    ********            ********
   ,,,,,,,,,***********,,,,,,,,,
  ,,,,,,,,,,,*********,,,,,,,,,,,
  .,,,,,,,,,,,*******,,,,,,,,,,,,
      ,,,,,,,,,*****,,,,,,,,,.
         ,,,,,,,****,,,,,,
            .,,,***,,,,
                ,*,.
  


     _______ __  __          __
    / ____(_) /_/ /   ____ _/ /_
   / / __/ / __/ /   / __ `/ __ \
  / /_/ / / /_/ /___/ /_/ / /_/ /
  \____/_/\__/_____/\__,_/_.___/
  

Please configure a URL for your GitLab instance by setting `external_url`
Thank you for installing GitLab!
GitLab was unable to detect a valid hostname for your instance.
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:
  sudo gitlab-ctl reconfigure

For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md

Help us improve the installation experience, let us know how we did with a 1 minute survey:
https://gitlab.fra1.qualtrics.com/jfe/form/SV_6kVqZANThUQ1bZb?installation=omnibus&release=14-8


  Verifying        : gitlab-ce-14.8.2-ce.0.el8.x86_64                       1/1 

Installed:
  gitlab-ce-14.8.2-ce.0.el8.x86_64                                              

Complete!

Configure GitLab CE

Next, you will need to define your domain name in the GitLab configuration file. To do so, edit the GitLab configuration file:

nano /etc/gitlab/gitlab.rb

Change the following line with your domain name:

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

Save and close the file then reconfigure the GitLab using the following command:

gitlab-ctl reconfigure

Once the GitLab CE is reconfigured, you will get the following output:

Notes:
Default admin account has been configured with following details:
Username: root
Password: You didn't opt-in to print initial root password to STDOUT.
Password stored to /etc/gitlab/initial_root_password. This file will be cleaned up in first reconfigure run after 24 hours.

NOTE: Because these credentials might be present in your log files in plain text, it is highly recommended to reset the password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.

gitlab Reconfigured!

You can now check the status of the GitLab CE using the following command:

gitlab-ctl status

You will get the following output:

run: gitaly: (pid 26684) 69s; run: log: (pid 25075) 351s
run: gitlab-exporter: (pid 26617) 73s; run: log: (pid 25555) 207s
run: gitlab-kas: (pid 26585) 75s; run: log: (pid 25339) 334s
run: gitlab-workhorse: (pid 26595) 74s; run: log: (pid 25472) 229s
run: grafana: (pid 26665) 70s; run: log: (pid 26315) 110s
run: logrotate: (pid 25000) 364s; run: log: (pid 25008) 363s
run: nginx: (pid 25488) 226s; run: log: (pid 25499) 222s
run: node-exporter: (pid 26603) 74s; run: log: (pid 25541) 213s
run: postgres-exporter: (pid 26659) 70s; run: log: (pid 25891) 168s
run: postgresql: (pid 25207) 341s; run: log: (pid 25218) 340s
run: prometheus: (pid 26631) 72s; run: log: (pid 25629) 194s
run: puma: (pid 25406) 249s; run: log: (pid 25417) 246s
run: redis: (pid 25039) 358s; run: log: (pid 25047) 357s
run: redis-exporter: (pid 26620) 73s; run: log: (pid 25575) 201s
run: sidekiq: (pid 25423) 243s; run: log: (pid 25435) 239s

To stop the GitLab, run the following command:

gitlab-ctl stop

To start the GitLab, run the following command:

gitlab-ctl start

Once you are finished, you can proceed to the next step.

Configure Firewall

Next, you will need to allow HTTP service through the firewalld. You can allow it using the following command:

firewall-cmd --permanent --add-service=http

Next, reload the firewalld daemon to apply the changes:

systemctl reload firewalld

Once the firewall is configured, you can proceed to the next step.

Access GitLab CE

Before accessing GitLab CE, retrieve the GitLab root password with the following command:

cat /etc/gitlab/initial_root_password

You should see the GitLab CE root password in the following output:

# WARNING: This value is valid only in the following conditions
#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
#          2. Password hasn't been changed manually, either via UI or via command line.
#
#          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.

Password: XIlQ4/J7oQ49ZdNuGZto3f5vEJGHZJSTRSIuYL9z0/k=

# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.

Now, open your web browser and access the GitLab web interface using the URL http://gitlab.example.com. You will be redirected to the GitLab login page:

GitLab Login

Provide your root username, and password, and click on the Sign in button. You should see the GitLab web interface on the following page:

Gitlab Dashboard

Configure GitLab Backup

GitLab also allows you to create a backup of the GitLab instance. To create a backup of the GitLab instance, run the following command:

gitlab-rake gitlab:backup:create

Once the backup is created, you will get the following output:

2022-03-11 11:13:11 +0000 -- done
2022-03-11 11:13:11 +0000 -- Dumping uploads ... 
2022-03-11 11:13:11 +0000 -- done
2022-03-11 11:13:11 +0000 -- Dumping builds ... 
2022-03-11 11:13:11 +0000 -- done
2022-03-11 11:13:11 +0000 -- Dumping artifacts ... 
2022-03-11 11:13:11 +0000 -- done
2022-03-11 11:13:11 +0000 -- Dumping pages ... 
2022-03-11 11:13:11 +0000 -- done
2022-03-11 11:13:11 +0000 -- Dumping lfs objects ... 
2022-03-11 11:13:11 +0000 -- done
2022-03-11 11:13:11 +0000 -- Dumping terraform states ... 
2022-03-11 11:13:11 +0000 -- done
2022-03-11 11:13:11 +0000 -- Dumping container registry images ... 
2022-03-11 11:13:11 +0000 -- [DISABLED]
2022-03-11 11:13:11 +0000 -- Dumping packages ... 
2022-03-11 11:13:11 +0000 -- done
Creating backup archive: 1646997191_2022_03_11_14.8.2_gitlab_backup.tar ... done
Uploading backup archive to remote storage  ... skipped
Deleting tmp directories ... done

By default, the GitLab backup is stored at /var/opt/gitlab/backups. You can change the backup path by editing the settings in the GitLab configuration file at /etc/gitlab/gitlab.rb.

You can verify the generated backup using the following command:

ls /var/opt/gitlab/backups

You will get the following output:

1646997191_2022_03_11_14.8.2_gitlab_backup.tar

Reset GitLab Root Password

If you forget the GitLab administrator password then you can reset it easily using the following command:

gitlab-rake "gitlab:password:reset"

You will be asked to set your new password as shown below:

Enter username: root
Enter password: 
Confirm password: 
Password successfully updated for user with username root.

Conclusion

Congratulations! you have successfully installed GitLab CE on Alma Linux 8. You can now start using GitLab in your development environment. Feel free to ask me if you have any questions.

Share this page:

Suggested articles

0 Comment(s)

Add comment