[GitLab] CentOS 7์ GitLab (ce) ์ค์นํ๊ธฐ - curl/yum ์ด์ฉํ ์จ๋ผ์ธ ์ค์น
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)๋ฅผ ์ค์นํ๋ ค๋ฉด ์กฐ๊ธ ์ ๊ฒฝ์จ์ผ ํ๋ค(์ค๋ช ํ์ด์ง๋ก ๋ค์ด๊ฐ๋ ๊ฒ ์กฐ์ฐจ ์ด๋ ค์). ๊ทธ๋์ ๋ค์์ ์ค์นํ ๋ ํท๊ฐ๋ฆฌ์ง ์์ผ๋ ค ํฌ์คํ ํด๋ !
- ce(Community Edition) ์ค์น๊ฐ์ด๋ : https://about.gitlab.com/install/?version=ce
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
๋ง์ฝ ๋ ํฌ๋ฅผ ์ถ๊ฐํ์ง ์์ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ํจํค์ง๋ฅผ ์ฐพ์ ์ ์์ด ์ค์น๊ฐ ๋ถ๊ฐํ๋ค.
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