실습 오랜만입니다...
생각보다 설치할게 많고요, 일단은 맥북이 실습할 때 에러가 적습니다.
암튼 전 말했고요 바로 시작할게요
1. VirtualBox 설치
- VirtualBox 웹사이트에서 운영체제에 맞는 설치 파일 다운로드 (옵션은 그냥 기본 옵션하면 됨)
Vagrant 설치
- [Vagrant 웹사이트](https://www.vagrantup.com/downloads.html)에서 운영체제에 맞는 설치 파일 다운로드
- 설치 후 **시스템 재시작**
PuTTY 설치
- PuTTY 웹사이트에서 설치 파일 다운로드
- 설치 완료 후 PuTTY 실행하여 정상 작동 확인
작업 폴더 생성
C:\vagrant-test
)cd C:\vagrant-test
Vagrantfile 생성
vagrant init ubuntu/bionic64
명령 실행 (Ubuntu 18.04 이미지 사용)Vagrantfile 편집
ruby
[ ]
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/bionic64"
config.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
vb.cpus = 1
end
config.vm.network "private_network", ip: "192.168.56.10"
end
가상 머신 시작
vagrant up
명령 실행가상 머신 접속
vagrant ssh
명령으로 가상 머신에 접속ls
, pwd
, uname -a
)exit
명령으로 가상 머신 접속 종료프로비저닝 스크립트 생성
setup.sh
파일 생성:bash
[ ]
#!/bin/bash
apt-get update
apt-get install -y nginx
systemctl start nginx
systemctl enable nginx
echo "Hello from Vagrant VM!" > /var/www/html/index.html
Vagrantfile 수정
ruby
[ ]
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/bionic64"
config.vm.provider "virtualbox" do |vb|
vb.memory = "1024"
vb.cpus = 1
end
config.vm.network "private_network", ip: "192.168.56.10"
config.vm.provision "shell", path: "setup.sh"
end
변경사항 적용
vagrant provision
명령 실행vagrant up
명령 실행웹 서버 동작 확인
http://192.168.56.10
접속다중 VM Vagrantfile 생성
C:\vagrant-cluster
)ruby
[ ]
Vagrant.configure("2") do |config|
(1..3).each do |i|
config.vm.define "node#{i}" do |node|
node.vm.box = "ubuntu/bionic64"
node.vm.hostname = "node#{i}"
node.vm.network "private_network", ip: "192.168.56.#{10+i}"
end
end
end
클러스터 시작
vagrant up
명령 실행특정 노드 접속
vagrant ssh node1
명령으로 첫 번째 노드에 접속hostname
명령으로 호스트명 확인exit
명령으로 접속 종료네트워크 연결 확인
vagrant ssh node1
ping -c 3 192.168.56.12
[ ]
sudo sh -c 'echo "192.168.56.11 node1" >> /etc/hosts'
sudo sh -c 'echo "192.168.56.12 node2" >> /etc/hosts'
sudo sh -c 'echo "192.168.56.13 node3" >> /etc/hosts'
ping -c 3 node2
vagrant halt
명령으로 모든 VM 종료vagrant destroy
명령으로 VM 삭제가상 환경 구축부터 자동화, 다중 VM 관리, 원격 접속까지 컨테이너 테스트 환경의 전체 워크플로우를 경험해볼 수 있습니다.