CI/CD를 위한 시스템 아키텍처 실습(1)

Soyeon You·2023년 5월 25일
0

System

목록 보기
1/3

참고자료: 도커 공식문서

Precondition

Minimum Quantity

2CPU, 4G(권장 8G)

Docker install

yum -y update
yum install -y yum-utils

docker repository를 system에 추가

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum-config-manager --enable docker-ce-nightly

install docker

yum -y install docker-ce docker-ce-cli containerd.io

run docker

systemctl start docker
systemctl enable docker
systemctl status docker

docker-compose install

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

check installed docker-compose

docker-compose —version 

[❓]위 커맨드를 실행했을 때, 아래와 같은 에러가 발생했다.

bash: /usr/local/bin/docker-compose: 허가 거부

[❗️]실행파일에 실행권한을 부여해주자.

sudo chmod +x /usr/local/bin/docker-compose

Set selinux as disabled(/etc/seliux/config)


Architecture


최소 3개의 VM이 필요하다.

Install gitlab

Create docker-compose.yml

home 디렉토리에 docker-compose.yml 파일을 만들어준다.

version: '3.8'
services:
gitlab:
image: "gitlab/gitlab-ce:latest"
restart: always
hostname: "172.16.210.76" #해당 인스턴스 IP
container_name: gitlab
environment:
GITLAB_OMNIBUS_CONFIG: |
external_url 'http://172.16.210.76' #해당 인스턴스 IP
ports:
- "9090:80"
- "1022:22"
- "443:443"
volumes:
- "~/gitlab/config:/etc/gitlab"
- "~/gitlab/logs:/var/log/gitlab"
- "~/gitlab/data:/var/opt/gitlab"
- "~/gitlab/backups:/var/opt/gitlab/backups"

--hostname: 접속 도메인
--container_name: container 이름
--volumes: 로컬 PC와 docker의 디렉토리 연결

Run docker-compose.yml

docker-compose up -d

Set firewall

방화벽 설정 및 재시작을 해줄 것이다.
firewall이 설치가 안되어있다면 아래 커맨드를 작성해준다.

yum install firewalld
systemctl unmask firewalld
systemctl enable firewalld
systemctl start firewalld

방화벽 설정 후 재시작

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --permanent --add-port=9090/tcp
sudo systemctl reload firewalld

Access git lab

web browser에서 git lab으로 접속해보자.
생성하고 바로 접속은 안 되고 10분정도 지나야 접속 가능한듯하다.
http://[gitlabServerIP]:9090/

위와 같은 화면이 뜨면 성공이다.

Login

처음 접속할 땐 root password가 설정되어 있지 않으므로 초기암호를 사용해야한다.
초기 암호를 확인해보자.

docker exec -it gitlab /bin/bash
cat /etc/gitlab/initial_root_password

"Password:"에 해당되는 부분이 초기암호이다.


ID: root
PW: 확인한 초기 암호

로그인 후 아래와 같이 main page를 확인할 수 있다.

Change password

초기 암호가 너무 길어서 불편하므로 변경해주겠다.
로그인 후, 오른쪽 아이콘 > Edit profile > Password > Save password

8자 이상으로 바꿔주면 된다.
나는 팀플에서 사용할 것이므로 팀비밀번호로 변경했다.

Create Gitlab project

blank project를 생성해보자.


project name은 자유롭게 적고 visibility level은 Public으로 설정해준다.

Test Gitlab project

터미널에서 gitlab의 프로젝트에 파일을 push/pull/merge 해보자.
우선 올릴 파일 디렉토리로 이동한다.

git config --global user.name "cindy"
git config --global user.email "yeon000409@gmail.com"
git init
git remote add origin http://172.16.210.76/kakaqserver/kakaqserver.git
git add .
git status
git commit -m "comment"
git push -uf origin master

[❓]마지막 커맨드를 입력했을 때, 아래와 같은 오류가 발생했다.

error: failed to push some to 'https://github.com/K-Kaos/KaKaQ-server.git'

[❗️]git push -f origin main을 입력한다.


오늘은 CI를 위한 Gitlab을 설치하고 프로젝트까지 생성해보았다.
다음은 Jenkins를 설치하고 Gitlab과 연동해 볼 것이다..
할 게 너무 많다 !!

0개의 댓글