๐Ÿ’ฌ CI · CD/Git : ๊นƒ

[GitLab] CentOS 7์— GitLab (ce) ์„ค์น˜ํ•˜๊ธฐ - curl/yum ์ด์šฉํ•œ ์˜จ๋ผ์ธ ์„ค์น˜

mxnxeonx 2023. 4. 10. 17:41
728x90
728x90

Ubuntu๋งŒ ์‚ฌ์šฉํ•ด์˜ค๋˜ ๋‚ด๊ฐ€ ์ž…์‚ฌ ์ดํ›„ CentOS๋ฅผ ๊ณ„์† ๋‹ค๋ฃจ๊ฒŒ ๋˜๋ฉด์„œ ์ƒ๊ฐ๋ณด๋‹ค ๋‹ค๋ฅธ ์ ๋“ค์ด ๋งŽ์•˜๋‹ค. ์˜ค์ฃฝํ•˜๋ฉด ๋ฆฌ์•Œ๋ชป์ด๋˜ ํ•™๋ถ€์ƒ ์‹œ์ ˆ์—๋Š” Ubuntu=Linux๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์—ˆ์Œ. ํšŒ์‚ฌ ์ œํ’ˆ์— GitLab์„ ์—ฐ๋™ํ•ด์„œ ํ˜•์ƒ๊ด€๋ฆฌ๋ฅผ ํ•˜๋Š”๋ฐ, ์ œ๊ณต๋ฐ›์€ ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” policycoreutils-python-utils ํŒจํ‚ค์ง€๋ฅผ ํ•„์š”๋กœํ•˜๊ธธ๋ž˜ ์•Œ์•„๋ณด๋‹ˆ CentOS 8 ๋ฒ„์ „ GitLab์ธ ๊ฒƒ ๊ฐ™์•„ ์ƒˆ๋กœ ๋ฐ›๊ธฐ๋กœ ํ–ˆ๋‹ค.

 

GitLab์ด๋ž€?

GitLab์€ ๊นƒ ์ €์žฅ์†Œ, CI/CD(์ง€์†์ ์ธ ํ†ตํ•ฉ ๋ฐ ๋ฐฐํฌ), ์ด์Šˆ ์ถ”์ /๊ด€๋ฆฌ, ์ฝ”๋“œ ๊ฒ€ํ† , ๋ณด์•ˆ์„ฑ ํ…Œ์ŠคํŠธ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ์›น ๊ธฐ๋ฐ˜์˜ ์˜คํ”ˆ ์†Œ์Šค Git ๊ด€๋ฆฌ์ž(DevOps ํ”Œ๋žซํผ)์ด๋‹ค. ๊ฐœ์ธ ๋˜๋Š” ์กฐ์ง์ด Git Repository๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์—์„œ Github๊ณผ ์œ ์‚ฌํ•˜๋ฉฐ ๋น„๊ณต๊ฐœ๋œ Github๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

  • Git : ์†Œ์Šค ์ฝ”๋“œ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์œผ๋กœ ๋กœ์ปฌ์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ถ”์ ํ•˜๊ณ  ์›๊ฒฉ ๋ฆฌ์†Œ์Šค์—์„œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ Push, Pull ๊ฐ€๋Šฅ

 


 

 

GitLab ์„ค์น˜ ๋ฐฉ๋ฒ• (CentOS 7)

๊ณต์‹ ์‚ฌ์ดํŠธ์—์„œ ์„ค์น˜ ๋ฐฉ๋ฒ•์„ ์ž์„ธํžˆ ์†Œ๊ฐœํ•˜๊ณ  ์žˆ์œผ๋‚˜, ์œ ๋ฃŒ ๋ฒ„์ „์ธ ee(Enterprise Edition)๋ฅผ ๊ถŒ์žฅํ•œ๋‹ต์‹œ๊ณ  ee ๊ธฐ์ค€์œผ๋กœ ์„ค๋ช…ํ•˜๊ณ  ์žˆ์œผ๋‹ˆ ๋ฌด๋ฃŒ ๋ฒ„์ „์ธ ce(Community Edition)๋ฅผ ์„ค์น˜ํ•˜๋ ค๋ฉด ์กฐ๊ธˆ ์‹ ๊ฒฝ์จ์•ผ ํ•œ๋‹ค(์„ค๋ช… ํŽ˜์ด์ง€๋กœ ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ ์กฐ์ฐจ ์–ด๋ ค์›€). ๊ทธ๋ž˜์„œ ๋‹ค์Œ์— ์„ค์น˜ํ•  ๋•Œ ํ—ท๊ฐˆ๋ฆฌ์ง€ ์•Š์œผ๋ ค ํฌ์ŠคํŒ…ํ•ด๋‘ !

 

Download and install GitLab

Download, install and maintain your own GitLab instance with various installation packages and downloads for Linux, Kubernetes, Docker, Google Cloud and more.

about.gitlab.com

 

1) ํ•„์ˆ˜ ์˜์กด์„ฑ ํŒจํ‚ค์ง€ ์„ค์น˜

curl, policycoreutils-python, openssh-server, perl ํ•ด๋‹น 4๊ฐ€์ง€ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ  GitLab ์ ‘์†์„ ์œ„ํ•ด ssh ์„œ๋น„์Šค ํ™œ์„ฑํ™” ๋ฐ ๋ฐฉํ™”๋ฒฝ ์„ค์ •์„ ๋งˆ์นœ๋‹ค. ๋กœ์ปฌ์—์„œ๋งŒ ์ด์šฉํ•  ๊ฑฐ๋ผ๋ฉด ssh, ๋ฐฉํ™”๋ฒฝ ๊ด€๋ จ ์„ค์น˜ ์„ค์ •์€ ์ƒ๋žตํ•ด๋„ ๋œ๋‹ค.

$ sudo yum install -y curl policycoreutils-python openssh-server perl

$ # Enable OpenSSH server daemon if not enabled: sudo systemctl status sshd
$ # enable๋กœ ์„ค์ •ํ•  ๊ฒฝ์šฐ ์„œ๋ฒ„ ๋ถ€ํŒ…์‹œ๋งˆ๋‹ค openssh ์ž๋™ ์‹คํ–‰
$ sudo systemctl enable sshd
$ sudo systemctl start sshd

$ # Check if opening the firewall is needed with: sudo systemctl status firewalld
$ # http, https์— ๋Œ€ํ•œ ๋ฐฉํ™”๋ฒฝ์„ ํ•ด์ œํ•œ ํ›„ firewalld ์„œ๋น„์Šค ์žฌ์‹คํ–‰
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
$ sudo systemctl reload firewalld

๋ฉ”์ผ ์„œ๋ฒ„๋ฅผ ์„ค์น˜ํ•œ๋‹ค. ๋ฉ”์ผ ์„œ๋ฒ„๋Š” GitLab์—์„œ ์‚ฌ์šฉ์ž ๊ฐ€์ž… ์ธ์ฆ์ด๋‚˜ ๊ด€๋ฆฌ์ž์—๊ฒŒ Alerts ๋“ฑ ๊ธฐํƒ€ ์ด์œ ๋กœ ๋ฉ”์ผ์„ ๋ณด๋‚ผ ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค. sshd์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ systemctl์— enableํ•˜์—ฌ ์„œ๋ฒ„ ๋ถ€ํŒ…์‹œ ์ž๋™์œผ๋กœ postfix๊ฐ€ ์‹คํ–‰๋˜๋„๋ก ํ•œ๋‹ค.

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

 

2) GitLab Repository๋ฅผ ์‹œ์Šคํ…œ ์›๋ณธ ๋ชฉ๋ก์— ์ถ”๊ฐ€

yum ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ GitLab ce๋ฅผ ์„ค์น˜ํ•  ๊ฒƒ์ด๋ฏ€๋กœ, curl ๋ช…๋ น์„ ์ž…๋ ฅํ•˜์—ฌ GitLab Package Repository๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. (curl์€ ๋‹จ์ˆœํžˆ ํŒจํ‚ค์ง€์˜ ์ €์žฅ์†Œ๋ฅผ ๋“ฑ๋กํ•˜๋Š” ๊ฒƒ์œผ๋กœ, ์„ค์น˜๊ฐ€ ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹˜)

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

๋งŒ์•ฝ ๋ ˆํฌ๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํŒจํ‚ค์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†์–ด ์„ค์น˜๊ฐ€ ๋ถˆ๊ฐ€ํ•˜๋‹ค.

curl ๋ฏธ์ˆ˜ํ–‰์‹œ No package available

 

3) GitLab ํŒจํ‚ค์ง€ ์„ค์น˜

yum ๋„๊ตฌ๋ฅผ ์ด์šฉํ•˜์—ฌ GitLab์„ ์„ค์น˜ํ•œ๋‹ค. EXTERNAL_URL ์˜ต์…˜์„ ์ž…๋ ฅํ•˜๋ฉด GitLab ์›น์‚ฌ์ดํŠธ์— ์ ‘์†ํ•  URL์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์„ค์น˜ ๋‹จ๊ณ„์—์„œ๋Š” ์ƒ๋žตํ•˜๊ณ  ์ดํ›„ ์„ค์ • ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด๋„ ๋˜์ง€๋งŒ ์ง€๊ธˆ์€ ์ด ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•œ๋‹ค.

$ sudo EXTERNAL_URL="{IP Address}:{Port}" yum install -y gitlab-ce

์•„๋ž˜์™€ ๊ฐ™์ด ์ž์‹ ์˜ ์„œ๋ฒ„ IP์™€ ์ž„์˜์˜ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์„ค์น˜๋ฅผ ์‹œ์ž‘ํ•œ๋‹ค.

$ sudo EXTERNAL_URL="192.168.208.146:9000" yum install -y gitlab-ce

 

4) GitLab ์‹คํ–‰

3๋ฒˆ ๊ณผ์ •์—์„œ EXTERNAL_URL์— ์ž‘์„ฑํ•œ IP, Port๋ฅผ ์›น ๋ธŒ๋ผ์šฐ์ € URL์ฐฝ์— ์ž…๋ ฅํ•˜๋ฉด GitLab ํ™ˆํŽ˜์ด์ง€๋กœ ์ ‘์†๋œ๋‹ค. ์ตœ์ดˆ ์ ‘์†์‹œ ID๋Š” root, PW๋Š” ์„œ๋ฒ„์— ํŒŒ์ผ๋กœ ์ €์žฅ๋˜์–ด ์žˆ๋‹ค. ์ดˆ๊ธฐ ๋น„๋ฐ€๋ฒˆํ˜ธ์ด๋ฉฐ ๋ณ€๊ฒฝํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

$ # ์ดˆ๊ธฐ ๋น„๋ฐ€๋ฒˆํ˜ธ ์กฐํšŒ
$ sudo cat /etc/gitlab/initial_root_password
  • root ๊ณ„์ • ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ ๋ฐฉ๋ฒ• : Menu > Admin > Admin Area > Overview > Users > Active > Name > Administrator -> Edit

 


 

GitLab ์„ค์ •

GitLab ์„ค์ •์€ ์„œ๋ฒ„์˜ gitlab.rb ํŒŒ์ผ์„ ์ˆ˜์ •ํ•˜๋ฉด ๋œ๋‹ค. (/etc/gitlab/gitlab.rb)

$ sudo vi /etc/gitlab/gitlab.rb
  • IP/Port ๋ณ€๊ฒฝ : vi ํŽธ์ง‘๊ธฐ์—์„œ /external_url ๊ฒ€์ƒ‰ > external_url ๋’ค ๋ฌธ์ž์—ด ์ˆ˜์ •
    โ€ป ์„ค์น˜ ๊ณผ์ •์—์„œ EXTERNAL_URL์„ ์˜ต์…˜์œผ๋กœ ์ž…๋ ฅํ•˜์˜€๋‹ค๋ฉด ํ•ด๋‹น ์ž…๋ ฅ๊ฐ’์ด ๋“ฑ๋ก๋˜์–ด ์žˆ์Œ
  • ์—…๋กœ๋“œ ํŒŒ์ผ ์šฉ๋Ÿ‰ ๋ณ€๊ฒฝ : nginx[‘client_max_body_size’] ํ•ญ๋ชฉ์— '1G', '2G' ๋“ฑ ์›ํ•˜๋Š” ์šฉ๋Ÿ‰์œผ๋กœ ๋ณ€๊ฒฝ

๋ณ€๊ฒฝํ•œ ์„ค์ •์€ ์•„๋ž˜ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜์—ฌ ๋ฐ˜์˜ํ•ด์•ผ ํ•œ๋‹ค.

$ sudo gitlab-ctl reconfigure
728x90
320x100