060 Gitlab - kimdonggwan337/dongdong GitHub Wiki

[๊ฐœ์š”]

  • ๋ฐ๋ธŒ์˜ต์Šค ํ”Œ๋žซํผ Gitlab์˜ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ตฌ์ถ•์„ ์œ„ํ•ด ํ•™์Šต.

[GitLab]

  • "GitLab" ๊ฒ€์ฆ๋œ ์›น ๊ธฐ๋ฐ˜์˜ ๋ฐ๋ธŒ์˜ต์Šค ํ”Œ๋žซํผ.
  • Git ์ €์žฅ์†Œ ๋ฐ CI/CD, ์ด์Šˆ ์ถ”์ , ๋ณด์•ˆ์„ฑ ํ…Œ์ŠคํŠธ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ”์—ˆ๋‹ค.
  • GitLab์€ ์ž์ฒด์ ์œผ๋กœ ํ˜ธ์ŠคํŒ…ํ•ด์„œ ์“ธ ์ˆ˜ ์žˆ๊ธฐ์— ์‚ฌ์„ค Git ์ €์žฅ์†Œ๋กœ ํ™œ์šฉํ•˜๊ธฐ๊ฐ€ ์ข‹๋‹ค.
  • GitLab ๋ผ์ด์„ผ์Šค๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ ์—๋””์…˜(Community Edition ,CE)๊ณผ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์—๋””์…˜(Enterprise Edition, EE) ๋“ฑ์ด ์žˆ๋Š”๋ฐ ์ปค๋ฎค๋‹ˆํ‹ฐ ์—๋””์…˜์˜ ๊ฒฝ์šฐ ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

[ํ™˜๊ฒฝ]

  • OS: ubuntu:20.04
  • Infra: Azure Cloud VM(Standard D2as v5)
  • vCPU: 2
  • RAM: 8GiB
  • ์†Œํ”„ํŠธ์›จ์–ด: Prometheus, Grafana

[Gitlab ์ฐธ์กฐ ์‚ฌ์ดํŠธ]

image

[Gitlab ์„ค์น˜]

# [GitLab dependencies ํŒฉํ‚ค์ง€ ์„ค์น˜] 
$ sudo apt-get update
$ sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
$ sudo apt-get install -y postfix

# [GitLab ๋ ˆํŒŒ์ง€ํ† ๋ฆฌ ์ถ”๊ฐ€]
$ curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash

# [GitLab ์„ค์น˜]
$ sudo apt-get install gitlab-ee


# [GitLab ํ™˜๊ฒฝํŒŒ์ผ ์ˆ˜์ • (gitlab.rb)]
$ sudo vi /etc/gitlab/gitlab.rb  

# [์›น์—์„œ ์ ‘์†ํ•  URL ์„ค์ •]
external_url 'http://20.214.182.191:6060'

# [GitLab ํ™˜๊ฒฝ ํŒŒ์ผ ์ ์šฉ ๋ฐ ์ƒํƒœ ํ™•์ธ] /etc/gitlab/gitlab.rb ํŒŒ์ผ ๋ณ€๊ฒฝ ํ›„ gitlab-ctl reconfigure ๋ช…๋ น ์ˆ˜ํ–‰ 
$ gitlab-ctl reconfigure: gitlab ๋ณ€๊ฒฝ ํŒŒ์ผ ์žฌ๊ตฌ์„ฑ ๋ฐ ์žฌ๊ธฐ๋™ 
$ gitlab-ctl stop: ์ค‘์ง€
$ gitlab-ctl start: ์‹œ์ž‘
$ gitlab-ctl restart: ์žฌ์‹œ์ž‘ 
$ gitlab-ctl status: ์ƒํƒœ ํ™•์ธ

# [GitLab ์ ‘์† ํŒจ์Šค์›Œ๋“œ ํ™•์ธ]
$ sudo cat /etc/gitlab/initial_root_password
----------------------์ƒ๋žต----------------------
Password: EB1uIyqRx0gKHufzCqLui4UgRd/8++zv2NRQDHYZTks=
------------------------------------------------

[Gitlab ์ ‘์†]

  • ID: root
  • PWD: [initial_root_password]

image image

[Gitlab ์‚ญ์ œ]

$ sudo gitlab-ctl cleanse
$ sudo gitlab-ctl uninstall
$ sudo apt remove gitlab-ee
$ sudo apt purge gitlab-ee
 
 
$ rm -rf  /opt/gitlab 
$ rm -rf  /var/opt/gitlab 
$ rm -rf  /etc/gitlab 
$ rm -rf  /var/log/gitlab

[Gitlab prometheus ์„ค์ • ํ™œ์„ฑํ™”] "Linux ํŒจํ‚ค์ง€"๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋…๋ฆฝํ˜• Prometheus

$ sudo vi /etc/gitlab/gitlab.rb
roles ['monitoring_role']

# Prometheus
prometheus['listen_address'] = '0.0.0.0:9090'
prometheus['monitor_kubernetes'] = false

# ์•„๋ž˜ ๊ทธ๋ผํŒŒ๋‚˜๋Š” ์ฐธ์กฐ ๋ฌธ์„œ์—๋Š” ๋‚˜์™€์žˆ์ง€๋งŒ gitlab 16.0 ์ด์ƒ ๋ฒ„์ „์—์„œ๋Š” ์‚ฌ์šฉ ๋ถˆ๊ฐ€ํ•˜๋ฏ€๋กœ ์ œ๊ฑฐ
# Grafana
# grafana['enable'] = true
# grafana['admin_password'] = 'toomanysecrets'
# grafana['disable_login_form'] = false

# Enable service discovery for Prometheus
consul['enable'] = true
consul['monitoring_service_discovery'] = true
consul['configuration'] = {
   retry_join: %w(10.0.0.1 10.0.0.2 10.0.0.3), # The addresses can be IPs or FQDNs
}

# Nginx - For Grafana access
nginx['enable'] = true

gitlab_rails['prometheus_address'] = 'localhost:9090'

image