Bootstrap Iac 툴

 Bootstrap IaC 툴을 이용하여 코드를 이용해서 어플리케이션 배포를 위한 머신을 생성하고 관리.

 대표적인 툴들의 종류로는 Vagrant, Docker, Cloud CLI가 존재.

 

Docker

독립적인 어떤 하나의 컨테이너 기반으로 하나의 어플리케이션이나 서비스 관리

도커 컨테이너는 일종의 소프트웨어, 소프트웨어의 실행에 필요한 모든 것을 포함하는 완전한 파일 시스템 안에 감싼다.
여기에는 코드, 런타임, 시스템 도구, 시스템 라이브러리 등 서버에 설치되는 무엇이든 아우른다.
이는 실행 중인 환경에 관계 없이 언제나 동일하게 실행될 것을 보증한다.

 

Vagrant

하시코프사에서 개발한 툴로서 코드를 이용해 다양한 가상환경을 생성하고 관리 가능.

포터블 가상화 소프트웨어 개발 환경(예: 개발 생산성 증가를 위해 가상화의 소프트웨어 구성 관리의 단순화를 시도하는 버추얼박스, 하이퍼-V, 도커 컨테이너, VM웨어, AWS)의 생성 및 유지보수를 위한 오픈 소스 소프트웨어 제품의 하나.

베이그런트는 루비 언어로 작성되어 있지만 생태계는 몇 가지 언어로 개발을 지원.

 

Vagrant vs 수동 VM 생성

 수동으로 VirtualBox에 Ubuntu VM을 생성하는 과정

1) ubuntu iso 파일 다운로드

2) ubuntu iso 파일을 이용한 VM설정 및 생성

 

 Vagrant를 이용하는 경우는 아래와 같이 2줄의 코드를 입력하는 과정으로 간단하게 VirtualBox에 Ubuntu VM을 생성

1) vagrant init ubuntu/bionic64

2) vagrant up

 

Vagrant 실습 1 – Vagrant를 이용한 Ubuntu VM 생성

1) VirtualBox 설치가 되어있다는 가정 하에 https://developer.hashicorp.com/vagrant/install  에서 다운로드 받아서 Vagrant 설치 먼저 해주기

 

Vagrant는 구동가능한 다양한 머신 환경을 Box 형태로 지원.
https://app.vagrantup.com/boxes/search 에서 Vagrant를 이용해서 생성할 수 있는 Box 목록을 확인.


2) Vagrant를 이용해서 Ubuntu VM(Ubuntu/bionic64)을 생성하기 위한 초기화를 진행.

“vagrant init ubuntu/bionic64” 명령어 입력하면,
Vagrantfile 파일이 생성되고 해당 파일안에 Vagrant로 생성할 VM에 대한 정보들이 들어있음.

※ mac OS라 나는 desktop에 새 폴더 하나 만들어주고 터미널로 이 경로 찾아간 다음에 명령어 입력해주었다.

3) Vagrant를 이용해서 “vagrant up” 명령어로 Ubuntu VM(Ubuntu/bionic64)을 생성


4) VirtualBox에 들어가보면 ubuntu가 생성되고, 실행되어 있는 모습을 확인할 수 있음.
Virtualbox에서 ubuntu를 실행하고 로그인하고자 할때는 id 랑 pw 모두 vagrant 입력해서 확인해보기.

 

Vagrant 실습 2 – Vagrant 설정파일에 Java8 설치 쉘스크립트 추가

1) Ubuntu 18.04를 설치한 뒤 Java8을 설치하는 shell script를 config.vm.provision으로 추가

config.vm.provision "shell", inline: "sudo add-apt-repository ppa:webupd8team/java"
config.vm.provision "shell", inline: "sudo apt-get update" 
config.vm.provision "shell", inline: "sudo apt-get -y install openjdk-8-jdk"

 

2) vagrant destroy, vagrant up 명령어로 Ubuntu 머신을 삭제하고 다시시작

 

3) vagrant ssh로 접속 후 java -version으로 잘 설치되어있는지 체크하기

 

참고사항

❏ CLI(Command Line Interface)

: 터미널 환경을 통해서 키보드를 통해 컴퓨터와 상호작용하는 환경

 

❏ Vagrant 명령어 정리

1) vagrant init: 현재 디렉토리에 Vagrantfile을 생성

2) vagrant up: Vagrantfile을 기반으로 VM을 생성하고 실행

3) vagrant ssh: 생성한 VM에 ssh를 이용해서 접속

4) vagrant status: 현재 실행중인 VM의 상태를 확인

5) vagrant halt: 실행중인 VM을 종료

6) vagrant destroy: 생성한 VM을 삭제

 

'DevOps&Infra > Cloud Infra' 카테고리의 다른 글

클라우드 컴퓨팅과 클라우드 네이티브  (0) 2023.11.11
IaC(Infrastructure as Code) 개요  (0) 2023.11.04