본문 바로가기
Tech/DevOps

[CI/CD] Vagrant란?

by 싱브이 2023. 12. 7.
728x90
반응형

IT관련 종사자들은 하나의 OS, 하나의 시스템에서만 작업하는 것이 아니다. 다양한 플랫폼과 운영 체제, 개발, 운영 환경을 사용하고 있다. 이런 멀티 플랫폼이나 개발 및 운영 환경을 구축하기 위해 물리적인 시스템을 도입하는 것은 돈이 많이 든다! 그래서 하나의 시스템이 가지고 있는 환경이나 리소스를 분할해서 사용하는 것이 필요한데, 이 개념이 바로 Virtualization(가상화 환경)이다.

 

가상화 환경 구축을 위해 필요한 기본적인 개념 및 소프트웨어에 설치하고 사용 방법에 대해서 알아보자.

 

1. Virtualization이란?

2. Vargrant를 이용한 가상화 구성 (+Virtual Box)

3. VM 환경에 Docker Engine 설치

4. Kubernetes Cluster 구축


Vagrant

Vagrant가 없어도 VM을 설치하고 사용할 수 있지만, 관리를 수월하게 하기 위해서 Vagrant를 Host PC에 설치하여 베이그란트를 통해 virtualBox를 관리한다.

 

Vargrant 란?

- 설정 스크립트를 기반으로 특정 환경의 가상머신을 생성 (코드로 인스턴스 이름, 네트워크 환경, 메모리의 크기등을 지정할 수 있다)

→ 개발 환경 공유

- 가상화 인스턴스 관리 SW(Provisioning 역할)

→ VirtualBox(기본 프로바이더), VMware, Hyper-V

 

Provisioning

- IT 인프라를 생성, 설정하는 프로세스

- 다양한 리소스에 대한 사용자 및 시스템 액세스를 관리하는 데 필요한 단계 포함

- 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포 → 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비

 

필수 SW 설치

- Vagrant (사용자 환경에 맞게! 나는 MAC)

- VirtualBox 6.1 ( Mac)

 


Vagrant 사용

Vargrant 동작

- Box 이미지 다운로드 → Box 이미지를 이용하여 프로젝트 생성(가상머신 구축)

 * Box 이미지 = OS 이미지

- 프로젝트 최상위 디렉토리에 Vagrantfile 파일 생성/수정

- 프로젝트를 위한 Vagrant 가상 인스턴스(VM) 시작

- 가상 인스턴스 접속 및 작업

- 가상 인스턴스 종료

 

Box 이미지 

아래의 주소에서 사용할 이미지 검색

https://app.vagrantup.com/boxes/search

 

Vagrant Cloud by HashiCorp

Vagrant Cloud by HashiCorp

app.vagrantup.com

이 방법은 docker에서도 똑같이 사용된다. docker 서버에서 필요로 하는 컨테이너를 생성하려고 할 때 docker에서 사용하려고 하는 이미지가 local repository에 존재하면 바로 컨테이너를 생성할 수 있지만, 없으면 공유되어 있는 docker hub사이트에서 필요한 이미지를 다운로드 받거나 private repository를 구성하여 사용한다. 

- 작업 디렉토리 ) vagrant init

 

Vagrant 명령어

vagrant v #버전
vagrant status #상태
vagrant global-status 
vagrant init #Provisioning 하는 스크립트 생성
vagrant up #Vagrantfile을 읽어 Provisioning 진행
vagrant halt #Host 종료
vagrant destroy #Host 삭제
vagrant suspend
vagrant resume
vagrant reload
vagrant ssh #Host 접속
vagrant provision #Host 설정 변경 적용

 

Vagrantfile

- Ruby 언어로 작성 된 Vagrant 설정 스크립트

- Vagrant 인스턴스로 생성 될 내용(설정) 을 작성

- vagrant init 명령어 실행 시 기본 Vagrantfile 생성

 

Vagrantfile 수정

15line 쯤에 있는 요 부분을 원하는 이미지로 바꾸면 된다!


1. Vagrant 인스턴스 시작

vagrant up

 

2. Vagrant 인스턴스 연결

vagrant ssh [vagrant_instance_name]

 

 

 

 

 

참고 : 멀티 OS 사용을 위한 가상화 환경 구축 가이드 (Docker + Kubernetes)

728x90
반응형

댓글