일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- c3 초
- c3 축 없애기
- 백준
- semanage
- subporcess path
- linux시간으로 변경
- c3 second
- grafana dashboard
- snmp
- snmp test
- centos pyhon 설치
- 정규식 문자열 출력
- 정규식 컴파일
- 1697
- gcc 업데이트
- c++ 정규식
- g++ 업데이트
- c3 step graph
- InfluxDB
- selinux port 등록
- 정규식 활용
- influxdb 설치
- python popen
- gcc regex
- python os
- c3 축 가리기
- regex_search
- python subprocess
- telegraf
- CentOS7
- Today
- Total
리셋 되지 말자
[Jenkins] Jenkins GitLab 연동(1) Docker 설치, GitLab 설치 본문
구현 방법
- CentOS 7 서버에 Docker와 Docker-compose를 설치하여 Docker 위에 GitLab을 설치한다.
- 작업은 CentOS 7 서버에 원격으로 ssh를 이용해 접속하여 진행하였다.
시스템 사양
CONTAINER ID NAME CPU % MEM USAGE / LIMIT MEM % NET I/O BLOCK I/O PIDS
b8df28df5887 vagrant_web_1 6.07% 2.688GiB / 3.852GiB 69.80% 37.1kB / 747kB 322MB / 79.2MB 336
위는 gitlab-ce 컨테이너를 실행했을 때의 컴퓨터 리소스 사용량이다. 최소 3 GB 정도의 메모리는 할당이 되어야 원할한 사용이 가능하다...
시스템 구성
원격으로 공유기를 통해 CentOS 7 서버에 접속
포트포워딩
ssh 포트 : 비공개
GitLab Web Server(Nginx) : iptime 공유기 -> 23002:9090, GitLab 컨테이너 -> 9090:80
- 원격 서버에 ssh 접속
$ ssh root@113.198.137.110
root@113.198.137.110's password:
Last login: Wed Feb 24 13:01:47 2021 from 113.198.137.97
[root@localhost ~]#
Docker 설치
- yum update
[root@localhost ~]# sudo yum update -y
// 업데이트 완료
Complete!
[root@localhost ~]#
- yum utils install
[root@localhost ~]# sudo yum install -y yum-utils
// 설치 완료
Complete!
[root@localhost ~]#
- docker community edition repo 추가
[root@localhost ~]# sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
// repo 추가 완료
repo saved to /etc/yum.repos.d/docker-ce.repo
[root@localhost ~]#
- docker community edition 설치(docker 설치)
[root@localhost ~]# sudo yum install -y docker-ce docker-ce-cli containerd.io
// 설치 완료
Complete!
[root@localhost ~]#
// 특정 버전을 설치하기 위해서는 아래와 같이 버전을 명시하여 설치
yum install -y docker-ce-3:20.10.2-3.el7 docker-ce-cli-3:20.10.2-3.el7 containerd.io
// 설치 가능한 버전들은 아래 명령어로 확인 가능
yum list docker-ce --showduplicates | sort -r
- docker service 확인
[root@localhost ~]# systemctl status docker
// 출력 결과
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled; vendor preset: disabled)
Active: inactive (dead)
Docs: https://docs.docker.com
- docker service 시작 및 enable
[root@localhost ~]# systemctl start docker
[root@localhost ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@localhost ~]# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2021-02-24 14:54:15 KST; 12s ago
Docs: https://docs.docker.com
Main PID: 31395 (dockerd)
CGroup: /system.slice/docker.service
└─31395 /usr/bin/dockerd -H fd:// --containerd=/run...
Feb 24 14:54:13 localhost.localdomain dockerd[31395]: time="20...
Feb 24 14:54:13 localhost.localdomain dockerd[31395]: time="20...
Feb 24 14:54:13 localhost.localdomain dockerd[31395]: time="20...
Feb 24 14:54:14 localhost.localdomain dockerd[31395]: time="20...
Feb 24 14:54:14 localhost.localdomain dockerd[31395]: time="20...
Feb 24 14:54:14 localhost.localdomain dockerd[31395]: time="20...
Feb 24 14:54:14 localhost.localdomain dockerd[31395]: time="20...
Feb 24 14:54:14 localhost.localdomain dockerd[31395]: time="20...
Feb 24 14:54:15 localhost.localdomain systemd[1]: Started Dock...
Feb 24 14:54:15 localhost.localdomain dockerd[31395]: time="20...
Hint: Some lines were ellipsized, use -l to show in full.
- docker version 확인
[root@localhost ~]# docker --version
Docker version 20.10.3, build 48d30b5
Docker compose 설치
- docker compose 설치
[root@localhost ~]# sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
/download/ 다음에 버전을 명시하여 특정 번의 docker-compose 설치가 가능함
- docker compose version 확인
[root@localhost ~]# docker-compose --version
-bash: /usr/local/bin/docker-compose: Permission denied
Permission denied가 뜨면 권한을 부여해야 한다.
- docker compose 사용권한 부여 및 version 확인
[root@localhost ~]# chmod +x /usr/local/bin/docker-compose
[root@localhost ~]# docker-compose --version
docker-compose version 1.27.4, build 40524192
GitLab 설치 및 실행
- 홈 디렉토리(~)로 이동 후, docker-compose.yml 파일을 생성한다. ls로 홈 디렉토리의 파일 목록 확인
[root@localhost ~]# cd ~
[root@localhost ~]# vi docker-compose.yml
[root@localhost ~]# ls
anaconda-ks.cfg docker-compose.yml
- docker-compose.yml
gitlab:
image: "gitlab/gitlab-ce:latest"
restart: always
hostname: "113.198.137.110"
container_name: gitlab
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://113.198.137.110'
# Add any other gitlab.rb configuration here, each on its own line
ports:
- "9090:80"
- "22:22"
- "443:443"
volumes:
- "~/gitlab/config:/etc/gitlab"
- "~/gitlab/logs:/var/log/gitlab"
- "~/gitlab/data:/var/opt/gitlab"
hostname과 external_url에는 현재 ssh로 접속한 서버의 ip주소를 적어준다.
- docker compose 실행
[root@localhost ~]# docker-compose up
up 명령으로 작성한 docker-compose.yml을 기반으로 실행시킨다. 이미지를 다운받는 작업이 수행되고(꽤 길다) gitlab이 실행된다.
위 그림에 표시된 메시지가 뜨면 설치가 완료된 것이다. 로그가 너무 빨리 지나가서 못 볼수도 있는데
위 그림의 로그들 처럼 {"get"...}, {"timestamp"..." 등등 요란한 로그가 뜨면 curl 명령으로 확인할 수 있다.
$ curl 'http://113.198.137.110:23002'
<html><body>You are being <a href="http://113.198.137.110:23002/users/sign_in">redirected</a>.</body></html>
curl을 통해 "http://<ip주소>:23002/usrs/sign_in"으로 접속하라는 정보를 확인할 수 있다. 출력되는 url을 클릭하여 접속한다.
- gitlab 접속
url로 접속 시, GitLab 페이지로 이동할 수 있다. 첫 접속시에 root 계정의 암호를 설정할 수 있다. 우측의 'Change your password'로 root 계정에 대한 패스워드를 설정할 수 있다. 적당히 패스워드를 설정하도록 한다.
+ 버전이 업데이트 되면서, 맨 처음 root 계정이 자동으로 생성되고, passowrd가 컨테이너 내부에서 확인 가능하도록 변경되었다. 아래와 같이 컨테이너 내부의 파일을 확인하여 나오는 패스워드로 로그인이 가능
$ docker exec -it <gitlab컨테이너이름> cat /etc/gitlab/initial_root_password
# WARNING: This value is valid only in the following conditions
# 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
# 2. Password hasn't been changed manually, either via UI or via command line.
#
# If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
Password: 9PG1bPBYLuh1vzhrN7Wrhtbd+3UGE+0RUZ5HgR1T82U=
# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.
'Username or email'에 root, 'Password'에는 방금 설정한 패스워드를 입력하여 로그인한다.
로그인에 성공한 모습이다.(짝짝짝)
'CI CD' 카테고리의 다른 글
[Jenkins] Jenkins GitLab 연동(5) Jenkins 설정 및 빌드 테스트 (0) | 2021.02.24 |
---|---|
[Jenkins] Jenkins GitLab 연동(4) Jenkins와 GitLab 연동-2 (0) | 2021.02.24 |
[Jenkins] Jenkins GitLab 연동(3) Jenkins와 GitLab 연동-1 (0) | 2021.02.24 |
[Jenkins] Jenkins GitLab 연동(2) Jenkins 설치 및 Jenkins 설정 (0) | 2021.02.24 |
[Jenkins] 로컬 gitlab Jenkins 연동 (0) | 2021.02.24 |