2018년 7월 30일 월요일

Vagrant 사용 방법 (3)

Provisioning 이란?

프로비저닝(provisioning)은 사용자의 요구에 맞게 시스템 자원을 할당, 배치, 배포해 두었다가 필요 시 시스템을 즉시 사용할 수 있는 상태로 미리 준비해 두는 것을 말한다. 서버 자원 프로비저닝, OS 프로비저닝, 소프트웨어 프로비저닝, 스토리지 프로비저닝, 계정 프로비저닝 등이 있다. 수동으로 처리하는 '수동 프로비저닝'과 자동화 툴을 이용해 처리하는 '자동 프로비저닝'이 있다.
-- From wiki --

잘 모르겠다.
암튼 사용자에게 뭔가 서비스를 제공하려고 할때,
사용자가 원하는 시스템 환경이 있을 것이다. (혹은 그 사용자 요구에 맞는 시스템 환경)
그 환경을 일일이 수동으로 해주는건 번거로운 일이니,
자동으로 해주는 시스템 이라고 보면 될거 같다.

vagrant 를 통해서 ubuntu 가상머신을 생성하고 실행까지 해봤다.

이 가상머신에 apache 를 설치하고 싶다고 가정하자.
apt-get 을 통해서 설치하면 될 것이다.
수동으로 또각또각 키보드를 사용해서 설치하면 될 것이다.

근데 만약 ubuntu 서버를 100명의 고객에게 할당해 주기 위해,
100대를 생성해야 한다면은?
(1명에게 1개씩 할당해야 하는 상황이라고 가정하자)

100번을 apt-get 을 또각또각 키보드를 쳐야할 것이다.

apache 뿐만 아니라 mysql, php, java 까지 설치해야 한다면,
엄청난 일이 될것이다.

이런걸 자동화 해서 사용자 요구에 맞게 준비하는걸,
provisioning 이라고 생각하면 된다.

vagrant 에는 provisioning 기능이 존재한다.
사용해 보자.

host 머신의 /home/kimchki/test 와
guest 머신의 /vagrant 가 sync 상태인건
저번 포스트를 통해 알고 있다.

/home/kimchki/test/bootstrap.sh 파일을 생성하자.

#!/usr/bin/env bash

apt-get update
apt-get install -y apache2
if ! [ -L /var/www ]; then
    rm -rf /var/www
    ln -fs /vagrant /var/www
fi

실행 권한을 주자.
% chmod +x /home/kimchki/test/bootstrap.sh

/home/kimchki/test/Vagrantfile 파일을 편집해서,
bootstrap.sh 파일이 실행되도록 하자.

Vagrant.configure("2") do |config|
  config.vm.box = "hashicorp/precise64"
  config.vm.provision :shell, path: "bootstrap.sh"
end

가상 머신을 다시 restart 하도록 하자.
% vagrant reload --provision


주루룩 apache 가 설치가 되고,
apache home 디렉토리가 /vagrant 로 될 것이다.

$ vagrant ssh
vagrant@precise64:~$ wget -qO- 127.0.0.1

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
 <head>
  <title>Index of /</title>
 </head>
 <body>
<h1>Index of /</h1>
<table><tr><th><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr><tr><th colspan="5"><hr></th></tr>
<tr><td valign="top"><img src="/icons/unknown.gif" alt="[   ]"></td><td><a href="Vagrantfile">Vagrantfile</a></td><td align="right">20-Jun-2018 05:09  </td><td align="right">3.0K</td><td>&nbsp;</td></tr>
<tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="bootstrap.sh">bootstrap.sh</a></td><td align="right">20-Jun-2018 05:08  </td><td align="right">138 </td><td>&nbsp;</td></tr>
<tr><th colspan="5"><hr></th></tr>
</table>
<address>Apache/2.2.22 (Ubuntu) Server at 127.0.0.1 Port 80</address>
</body></html>

html 파일이 보이는걸 확인할 수 있다.
(아직까지는 가상머신(guest) 내부에서만 접속이 가능하다)





출처
https://www.vagrantup.com/intro/getting-started/index.html
https://ko.wikipedia.org/wiki/프로비저닝

댓글 없음:

댓글 쓰기

화곡 어쩌라고, 굴사냥

석화찜(굴찜)을 먹으러 여의도로 갔다 그런데 재료가 모두 소진되었다고 마감이라고 한다 응? 다들 굴에 미쳤나? 굴을 찾아 헤매다 보니, 화곡까지 가게 되었다. 화곡은 처음 가본다. 첫인상은 "술집 겁네 많네" 피똥쌀때까지 마실 수 있...