{"id":31091,"date":"2022-09-04T10:24:43","date_gmt":"2022-09-04T10:24:43","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=31091"},"modified":"2022-12-23T05:47:35","modified_gmt":"2022-12-23T05:47:35","slug":"gitlab-tutorials-install-self-managed-gitlab-enterprise-version-in-centos-7","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/gitlab-tutorials-install-self-managed-gitlab-enterprise-version-in-centos-7\/","title":{"rendered":"GitLab Tutorials: Install self-managed GitLab Enterprise Version in Centos 7"},"content":{"rendered":"\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><strong>URL &#8211; https:\/\/about.gitlab.com\/install\/<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Step 1 &#8211; Install and configure the necessary dependencies<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">On CentOS <span class=\"hljs-number\">7<\/span> (<span class=\"hljs-keyword\">and<\/span> RedHat\/Oracle\/Scientific Linux <span class=\"hljs-number\">7<\/span>), the commands below will also open HTTP, HTTPS <span class=\"hljs-keyword\">and<\/span> SSH access in the system firewall. This is an optional step, <span class=\"hljs-keyword\">and<\/span> you can skip it <span class=\"hljs-keyword\">if<\/span> you intend to access GitLab only from your local network. \n\n$ sudo yum install -y curl policycoreutils-python openssh-server perl\n<span class=\"hljs-comment\"># Enable OpenSSH server daemon if not enabled: sudo systemctl status sshd<\/span>\n$ sudo systemctl enable sshd\n$ sudo systemctl start sshd\n<span class=\"hljs-comment\"># Check if opening the firewall is needed with: sudo systemctl status firewalld<\/span>\n$ sudo firewall-cmd --permanent --add-service=http\n$ sudo firewall-cmd --permanent --add-service=https\n$ sudo systemctl reload firewalld\n\nNext, install Postfix to send notification emails. <span class=\"hljs-keyword\">If<\/span> you want to <span class=\"hljs-keyword\">use<\/span> <span class=\"hljs-title\">another<\/span> <span class=\"hljs-title\">solution<\/span> <span class=\"hljs-title\">to<\/span> <span class=\"hljs-title\">send<\/span> <span class=\"hljs-title\">emails<\/span> <span class=\"hljs-title\">please<\/span> <span class=\"hljs-title\">skip<\/span> <span class=\"hljs-title\">this<\/span> <span class=\"hljs-title\">step<\/span> <span class=\"hljs-title\">and<\/span> <span class=\"hljs-title\">configure<\/span> <span class=\"hljs-title\">an<\/span> <span class=\"hljs-title\">external<\/span> <span class=\"hljs-title\">SMTP<\/span> <span class=\"hljs-title\">server<\/span> <span class=\"hljs-title\">after<\/span> <span class=\"hljs-title\">GitLab<\/span> <span class=\"hljs-title\">has<\/span> <span class=\"hljs-title\">been<\/span> <span class=\"hljs-title\">installed<\/span>.\n\n$ <span class=\"hljs-title\">sudo<\/span> <span class=\"hljs-title\">yum<\/span> <span class=\"hljs-title\">install<\/span> <span class=\"hljs-title\">postfix<\/span>\n$ <span class=\"hljs-title\">sudo<\/span> <span class=\"hljs-title\">systemctl<\/span> <span class=\"hljs-title\">enable<\/span> <span class=\"hljs-title\">postfix<\/span>\n$ <span class=\"hljs-title\">sudo<\/span> <span class=\"hljs-title\">systemctl<\/span> <span class=\"hljs-title\">start<\/span> <span class=\"hljs-title\">postfix<\/span>\n\n<span class=\"hljs-title\">During<\/span> <span class=\"hljs-title\">Postfix<\/span> <span class=\"hljs-title\">installation<\/span> <span class=\"hljs-title\">a<\/span> <span class=\"hljs-title\">configuration<\/span> <span class=\"hljs-title\">screen<\/span> <span class=\"hljs-title\">may<\/span> <span class=\"hljs-title\">appear<\/span>. <span class=\"hljs-title\">Select<\/span> '<span class=\"hljs-title\">Internet<\/span> <span class=\"hljs-title\">Site<\/span>' <span class=\"hljs-title\">and<\/span> <span class=\"hljs-title\">press<\/span> <span class=\"hljs-title\">enter<\/span>. <span class=\"hljs-title\">Use<\/span> <span class=\"hljs-title\">your<\/span> <span class=\"hljs-title\">server<\/span>'<span class=\"hljs-title\">s<\/span> <span class=\"hljs-title\">external<\/span> <span class=\"hljs-title\">DNS<\/span> <span class=\"hljs-title\">for<\/span> '<span class=\"hljs-title\">mail<\/span> <span class=\"hljs-title\">name<\/span>' <span class=\"hljs-title\">and<\/span> <span class=\"hljs-title\">press<\/span> <span class=\"hljs-title\">enter<\/span>. <span class=\"hljs-title\">If<\/span> <span class=\"hljs-title\">additional<\/span> <span class=\"hljs-title\">screens<\/span> <span class=\"hljs-title\">appear<\/span>, <span class=\"hljs-title\">continue<\/span> <span class=\"hljs-title\">to<\/span> <span class=\"hljs-title\">press<\/span> <span class=\"hljs-title\">enter<\/span> <span class=\"hljs-title\">to<\/span> <span class=\"hljs-title\">accept<\/span> <span class=\"hljs-title\">the<\/span> <span class=\"hljs-title\">defaults<\/span>.<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Step 2 &#8211; Add the GitLab package repository and install the package<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">$ curl https:<span class=\"hljs-comment\">\/\/packages.gitlab.com\/install\/repositories\/gitlab\/gitlab-ee\/script.rpm.sh | sudo bash<\/span>\n\nNext, install the GitLab package. Make sure you have correctly set up your DNS, <span class=\"hljs-keyword\">and<\/span> change https:<span class=\"hljs-comment\">\/\/gitlab.example.com to the URL at which you want to access your GitLab instance. Installation will automatically configure and start GitLab at that URL.<\/span>\n\n<span class=\"hljs-keyword\">For<\/span> https:<span class=\"hljs-comment\">\/\/ URLs, GitLab will automatically request a certificate with Let's Encrypt, which requires inbound HTTP access and a valid hostname. You can also use your own certificate or just use http:\/\/ (without the s).<\/span>\n\n<span class=\"hljs-keyword\">If<\/span> you would like to specify a custom password <span class=\"hljs-keyword\">for<\/span> the initial administrator user ( root ), check the documentation. <span class=\"hljs-keyword\">If<\/span> a password is not specified, a random password will be automatically generated. \n\n$ sudo EXTERNAL_URL=<span class=\"hljs-string\">\"https:\/\/gitlab.devopsschool.com\"<\/span> yum install -y gitlab-ee\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\">Step 3 &#8211; Browse to the hostname and login<\/h2>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Unless you provided a custom password during installation, a password will be randomly generated and stored <span class=\"hljs-keyword\">for<\/span> <span class=\"hljs-number\">24<\/span> hours <span class=\"hljs-keyword\">in<\/span> \/etc\/gitlab\/initial_root_password. Use <span class=\"hljs-keyword\">this<\/span> password <span class=\"hljs-keyword\">with<\/span> username root to login. \n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"182\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-1-1024x182.png\" alt=\"\" class=\"wp-image-31111\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-1-1024x182.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-1-300x53.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-1-768x137.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-1-1536x273.png 1536w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-1.png 1957w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 4 &#8211; Verify<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">$ gitlab-ctl status\nrun: crond: (pid 3333) 407s; run: log: (pid 3358) 404s\nrun: gitaly: (pid 3908) 250s; run: log: (pid 2951) 473s\nrun: gitlab-kas: (pid 3870) 254s; run: log: (pid 3264) 450s\nrun: gitlab-workhorse: (pid 3878) 254s; run: log: (pid 3466) 380s\nrun: logrotate: (pid 2848) 487s; run: log: (pid 2856) 486s\nrun: nginx: (pid 3598) 346s; run: log: (pid 3495) 375s\nrun: postgresql: (pid 3094) 464s; run: log: (pid 3116) 461s\nrun: puma: (pid 3361) 401s; run: log: (pid 3369) 397s\nrun: redis: (pid 2889) 481s; run: log: (pid 2897) 480s\nrun: registry: (pid 3891) 253s; run: log: (pid 3594) 347s\nrun: sidekiq: (pid 3390) 390s; run: log: (pid 3410) 386s<\/code><\/span><\/pre>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"494\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-2-1024x494.png\" alt=\"\" class=\"wp-image-31113\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-2-1024x494.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-2-300x145.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-2-768x371.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-2-1536x741.png 1536w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-2.png 1867w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"363\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-3-1024x363.png\" alt=\"\" class=\"wp-image-31115\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-3-1024x363.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-3-300x106.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-3-768x272.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-3-1536x544.png 1536w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-3.png 1897w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Step 5 &#8211; Activate EE license<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"449\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-6-1024x449.png\" alt=\"\" class=\"wp-image-31132\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-6-1024x449.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-6-300x131.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-6-768x337.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-6.png 1342w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-7.png\" alt=\"\" class=\"wp-image-31133\" width=\"840\" height=\"654\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-7.png 868w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-7-300x234.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-7-768x598.png 768w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"901\" height=\"634\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-4.png\" alt=\"\" class=\"wp-image-31130\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-4.png 901w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-4-300x211.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-4-768x540.png 768w\" sizes=\"auto, (max-width: 901px) 100vw, 901px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"776\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-8-1024x776.png\" alt=\"\" class=\"wp-image-31136\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-8-1024x776.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-8-300x227.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-8-768x582.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/09\/image-8.png 1050w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>URL &#8211; https:\/\/about.gitlab.com\/install\/ Step 1 &#8211; Install and configure the necessary dependencies Step 2 &#8211; Add the GitLab package repository and install the package Step 3 &#8211; Browse to the hostname and login Step 4 &#8211; Verify Step 5 &#8211; Activate EE license<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","_joinchat":[],"footnotes":""},"categories":[2],"tags":[],"class_list":["post-31091","post","type-post","status-publish","format-standard","hentry","category-uncategorised"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/31091","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=31091"}],"version-history":[{"count":9,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/31091\/revisions"}],"predecessor-version":[{"id":31137,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/31091\/revisions\/31137"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=31091"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=31091"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=31091"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}