구성한 구조
구성한 구조 & 구성할 구조

- 현재 위와 같은 구조를 구성하였다
- master 에는 jenkins 를 pod 형태로 배포했으며, docker 를 이용해서 사설 저장소를 컨테이너로 배포하여 구축하였다
- 이 저장소를 web 으로 확인하기 위해 registry web 컨테이너도 배포했으며 사설 저장소와 link 되어있다
- jenkins-agent Cluster svc 도 형성되어있다. 여기에 Jenkins Pod 도 연결되어있다. Controller 에서 명령을 내리면, 각 Node 에 Jenkins Agent Pod 가 생성된다
- Agent Pod 에는 docker 가 없기에 docker 명령 사용이 불가능하다. Jenkins Agent 설정에 들어가서 Node 에 실제 docker 가 설치된 경로인 /usr/bin/docker 를 지정하면, Agent Pod 와 /usr/bin/docker 가 Volume Mount 되어 Agent 에서 docker 명령을 사용하게 할 수 있다
- 따라서 Agent 에서 docker 명령을 실행할 때, Mount 된 경로를 통해 docker 명령을 실행할 수 있다
- Agent 는 명령 실행을 끝내면 Controller 에 보고한 후 삭제된다

- 우리는 CI / CD 를 통해 위와 같은 구조를 만들고자 한다
- Agent 는 Pod 형태로 생성되는데, 이때 Pod Template 은 Controller 가 다시 시작하면 모든 설정이 초기화 된다. 따라서 Helm 으로 Jenkins 를 설치할 때 미리 구성한 설정값을 읽어들이게 구성해야 한다
GitLab 을 사용해보자
Gitlab 설치 - Docker
Gitlab 의 두 가지 역활
- hosting 의 역활 -> GITLAB 설치
- Pipeline ( CI / CD 역활 ) -> GITLAB RUNNER 설치
Gitlab 을 Docker 기반의 Container 로 설치할 것이다. Docker-Compose 를 통해 설치할 것이므로 Docker-Compose 를 설치해 두어야 한다
root@gitlab:~
Docker version 20.10.18, build b40c2f6
- gitlab Node 에서 docker 설치를 확인하자
curl -L \
"https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
- docker-compose 를 다운 받고, 실행 권한을 주자
root@gitlab:~
docker-compose version 1.24.1, build 4667896b
apt-get install -y curl openssh-server ca-certificates && curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | bash && sudo apt-get -y install gitlab-ce
- gitlab 을 설치하자. 필요한 패키지를 설치하고, curl 을 통해 gitlab 설치 파일을 다운 받은 뒤 gitlab 설치를 진행하였다
*. *.
*** ***
***** *****
.****** *******
******** ********
,,,,,,,,,***********,,,,,,,,,
,,,,,,,,,,,*********,,,,,,,,,,,
.,,,,,,,,,,,*******,,,,,,,,,,,,
,,,,,,,,,*****,,,,,,,,,.
,,,,,,,****,,,,,,
.,,,***,,,,
,*,.
_______ __ __ __
/ ____(_) /_/ / ____ _/ /_
/ / __/ / __/ / / __ `/ __ \
/ /_/ / / /_/ /___/ /_/ / /_/ /
\____/_/\__/_____/\__,_/_.___/
Gitlab 설정
vi /etc/gitlab/gitlab.rb
external_url 'http://192.168.8.200'
gitlab-ctl reconfigure
- external_url 을 수정하고, gitlab-ctl reconfigure 를 통해 변경된 사항을 반영하여 서비스를 구성하고, 새로 시작한다
Gitlab Password 확인
/etc/gitlab/initial_root_password
- Gitlab 의 최고 관리자인 root 의 초기 패스워드는 /etc/gitlab/initial_root_password 에 저장되어 있다. 단, 이는 24 시간 이내에 변경해야 한다
Gitlab 접속 - Password 변경

- Node 의 Ip 로 접속하자. root 로 login 을 하는데, password 는 위에서 확인한 password 를 입력하자



- Edit 을 눌러서 Password 를 변경하자. test1234 로 변경하였다
사용자 추가


- Account 정보는 임의로 작성하고, Create user 해주자

- Edit 을 눌러서 Password 를 설정해주자. 단, 이 Password 는 계속 사용할 수 있는 것이 아닌, 사용자가 로그인해서 Password 를 변경해주어야 한다

- 해당 계정으로 login 하면, Password 를 변경할 수 있다. test1234 로 변경하자
회원가입

- registor now 를 통해 계정을 만들어보자

- 아직 해당 계정은 pending 상태라며 login 이 되지 않는다

- root 로 로그인해서 현재 Pending 상태인 계정을 Approve 해주자
이제 해당 계정은 login 을 할 수 있다
Groups 추가


Project 생성



Git Push 하기

- 바탕화면에 새 폴더를 만들고, 우클릭하여 git bash 를 해주자
user@LAPTOP-CISI8I61 MINGW64 ~/Desktop/test1
$ touch test.txt
user@LAPTOP-CISI8I61 MINGW64 ~/Desktop/test1
$ echo "안녕하세요" > test.txt
user@LAPTOP-CISI8I61 MINGW64 ~/Desktop/test1
$ git init
- 파일을 하나 만들고, git init 을 해주자

- 위에서 표시한 부분을 입력해주자. 이는 프로젝트 생성시 나온다. Git global 을 설정하고, 저장소를 연결한 뒤, Push 할 파일을 추가한다. Push 는 git push origin master 를 입력해주자

- git push origin master 를 하면 인증창이 뜬다. Gitlab 계정을 입력해주자

잘 보고 갑니다~ :)