«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

VIDEOCUBE

GitLab을 설치해 보자!! 본문

시스템

GitLab을 설치해 보자!!

라떼청년 2017. 11. 9. 01:50

GitHub 와 같은 서비스를 내부적으로 구축해 보자.

ㄴ 소스 관리를 git 를 이용하여 체계적으로 관리 및 사용해 보자!!


설치 방법은 

https://about.gitlab.com/installation/# 에 나와있다..

CentOS6 를 기반으로 설치를 해보려고 한다.. 

1. VirtureBox 에서 신규로 CentOS6 설치한다..

2. 기본 환경 설정을 완료한다.

    ㄴ 사설 DNS 설정

    ㄴrpm -ivh http://repo.videocube.lab/VideoCube-Repo-1.0.rpm

    출처: http://videocube.tistory.com/entry/RPM-만들고-Yum에-등록-하기 [VIDEOCUBE]



나중에는 dns 서버 내에 rpm 을 넣어야 할 것 같다.. 너무 많네.... ㅋㅋ


3. https://about.gitlab.com/ 사이트에 들어가서 열심히 읽어본다..



이건 머시다냐... 권장사양이 4GB는 되어야 할듯 한데.. 


말하는대로 했다..

1. Install and configure the necessary dependencies

On CentOS, the commands below will also open HTTP and SSH access in the system firewall.

sudo yum install -y curl policycoreutils-python openssh-server cronie
sudo lokkit -s http -s ssh

lokkit 이란게 궁금해 지긴 하네.. 흠.. iptable 설정 같다.. 

ssh 22, http 80 을 허용하라는 이야기 인거 같넹

cronie 이건 또 멀까.. cron 계열인가 싶다..


Install       8 Package(s)

Upgrade      21 Package(s)


설치할게 겁내 많네... 

root@git:/root> lokkit -s http -s ssh

root@git:/root> iptables -L

Chain INPUT (policy ACCEPT)

target     prot opt source               destination         

ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 

ACCEPT     icmp --  anywhere             anywhere            

ACCEPT     all  --  anywhere             anywhere            

ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh 

ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:http 

REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 


Chain FORWARD (policy ACCEPT)

target     prot opt source               destination         

REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 


Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination 


root@git:/root> cat /etc/sysconfig/iptables

# Firewall configuration written by system-config-firewall

# Manual customization of this file is not recommended.

*filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT


lokkit 는 commnd line 용 iptable 설정 유틸리티이다. /etc/sysconfig/iptables 을 에디터로 수정하지 않고 손쉽게 방화벽 정책을 수정할 수 있게 해준다.

설정 잘되네~~ 앞으로는 방화벽 열때 저것을 애용하도록 해야것다


Next, install Postfix to send notification emails. If you want to use another solution to send emails please skip this step and configure an external SMTP server after GitLab has been installed.

sudo yum install postfix
sudo service postfix start
sudo chkconfig postfix on

During Postfix installation a configuration screen may appear. Select 'Internet Site' and press enter. Use your server's external DNS for 'mail name' and press enter. If additional screens appear, continue to press enter to accept the defaults.


외부 메일 서버가 따로 있다믄.. 이 과정은 skip 해도 된다는 말인갑네.. 나중에 GitLab 설치 한 후에 설정 해도 된다..

머 이런말인가 본데... 나는 아직 메일 서버가 없기 때문에.. 설치 



root@git:/root> netstat -nlp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1108/sshd           

tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1907/master         

tcp        0      0 :::22                       :::*                        LISTEN      1108/sshd           

tcp        0      0 ::1:25                      :::*                        LISTEN      1907/master         

Active UNIX domain sockets (only servers)

Proto RefCnt Flags       Type       State         I-Node PID/Program name    Path

unix  2      [ ACC ]     STREAM     LISTENING     14662  1907/master         private/scache

unix  2      [ ACC ]     STREAM     LISTENING     7985   1/init              @/com/ubuntu/upstart

unix  2      [ ACC ]     STREAM     LISTENING     14579  1907/master         public/cleanup

unix  2      [ ACC ]     STREAM     LISTENING     14586  1907/master         private/tlsmgr

unix  2      [ ACC ]     STREAM     LISTENING     14590  1907/master         private/rewrite

unix  2      [ ACC ]     STREAM     LISTENING     14594  1907/master         private/bounce

unix  2      [ ACC ]     STREAM     LISTENING     14598  1907/master         private/defer

unix  2      [ ACC ]     STREAM     LISTENING     14602  1907/master         private/trace

unix  2      [ ACC ]     STREAM     LISTENING     14606  1907/master         private/verify

unix  2      [ ACC ]     STREAM     LISTENING     14610  1907/master         public/flush

unix  2      [ ACC ]     STREAM     LISTENING     14614  1907/master         private/proxymap

unix  2      [ ACC ]     STREAM     LISTENING     14618  1907/master         private/proxywrite

unix  2      [ ACC ]     STREAM     LISTENING     14622  1907/master         private/smtp

unix  2      [ ACC ]     STREAM     LISTENING     14626  1907/master         private/relay

unix  2      [ ACC ]     STREAM     LISTENING     14630  1907/master         public/showq

unix  2      [ ACC ]     STREAM     LISTENING     14634  1907/master         private/error

unix  2      [ ACC ]     STREAM     LISTENING     14638  1907/master         private/retry

unix  2      [ ACC ]     STREAM     LISTENING     14642  1907/master         private/discard

unix  2      [ ACC ]     STREAM     LISTENING     14646  1907/master         private/local

unix  2      [ ACC ]     STREAM     LISTENING     14650  1907/master         private/virtual

unix  2      [ ACC ]     STREAM     LISTENING     14654  1907/master         private/lmtp

unix  2      [ ACC ]     STREAM     LISTENING     14658  1907/master         private/anvil


SMTP 가 올라가 있는 것을 볼수 있다.. SMTP 에서 메일 보내는 것도 나중에 정리가 필요할 듯..


2. Add the GitLab package repository and install the package

Add the GitLab package repository.

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


https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/config_file.repo?os=centos&dist=6&source=script



Repository 지정 한 후에 yum-utils 을 설치 스크립트가 있는 것 같다.


curl 로 스크립트를 받아 실행한다..    흠 괜찮네.. 

/etc/yum.repos.d/gitlab_gitlab-ee.repo 가 설치 되어 있는 것을 확인할 수 있다..


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

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


Next, install the GitLab package. Change `http://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. HTTPS requires additional configuration after installation.

sudo EXTERNAL_URL="http://gitlab.example.com" yum -y install gitlab-ee

여기서 도메인을 설정 하고 설치 하란다. 

DNS videocube.lab.zone 파일에 다음과 같이 설정한다. 

git A 192.168.1.8


root@dns:/var/named> dig @192.168.1.6 git.videocube.lab any


; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.62.rc1.el6_9.4 <<>> @192.168.1.6 git.videocube.lab any

; (1 server found)

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19009

;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1


;; QUESTION SECTION:

;git.videocube.lab. IN ANY


;; ANSWER SECTION:

git.videocube.lab. 600 IN A 192.168.1.8


;; AUTHORITY SECTION:

videocube.lab. 600 IN NS ns.videocube.lab.


;; ADDITIONAL SECTION:

ns.videocube.lab. 600 IN A 192.168.1.6


;; Query time: 0 msec

;; SERVER: 192.168.1.6#53(192.168.1.6)

;; WHEN: Thu Nov  9 01:09:29 2017

;; MSG SIZE  rcvd: 84


설정완료



EXTERNAL_URL="http://git.videocube.lab" yum -y install gitlab-ee




설치하는데 꽤 시간이 걸린다..

root@git:/data> netstat -nlp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   

tcp        0      0 127.0.0.1:9100              0.0.0.0:*                   LISTEN      3663/node_exporter  

tcp        0      0 127.0.0.1:9168              0.0.0.0:*                   LISTEN      4047/ruby           

tcp        0      0 127.0.0.1:8080              0.0.0.0:*                   LISTEN      3269/unicorn master 

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      3537/nginx          

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1108/sshd           

tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1907/master         

tcp        0      0 0.0.0.0:8060                0.0.0.0:*                   LISTEN      3537/nginx          

tcp        0      0 127.0.0.1:9121              0.0.0.0:*                   LISTEN      3755/redis_exporter 

tcp        0      0 127.0.0.1:9090              0.0.0.0:*                   LISTEN      4056/prometheus     

tcp        0      0 127.0.0.1:9187              0.0.0.0:*                   LISTEN      4065/postgres_expor 

tcp        0      0 ::1:9168                    :::*                        LISTEN      4047/ruby           

tcp        0      0 :::22                       :::*                        LISTEN      1108/sshd           

tcp        0      0 ::1:25                      :::*                        LISTEN      1907/master       


어이쿠 많이 도 올리네..

다음 시간에는 정리 좀 해야겠다..


3. Browse to the hostname and login

On your first visit, you'll be redirected to a password reset screen. Provide the password for the initial administrator account and you will be redirected back to the login screen. Use the default account's username root to login.



root 계정에 대한 비밀번호 세팅이다..

입력 하게 되면




gitlab-ee 는 가격이 무료가 아니어서 재설치를 진행하였다..

https://about.gitlab.com/products/

다시 삭제를 하고  ee ==> ce 로 변경 한 후에


깔끔하게 서버를 새로 넣어서 설치해야겠다.

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









반응형
Comments