1. vagrant 다운로드
https://www.vagrantup.com/downloads.html
Install | Vagrant | HashiCorp Developer
Explore Vagrant product documentation, tutorials, and examples.
developer.hashicorp.com
Vagrant 플러그인을 설치
vagrant plugin install vagrant-disksize >>> 디스크 사이즈 플러그인
vagrant plugin install vagrant-hostmanager >>> 호스트 매니저 플러그인
Vagrant 버전 확인
vagrant --version

vagrant box add generic/ubuntu2204 >>> 가상머신 이미지 다운
해당 오류 발생 [ SSL/TLS 인증서 문제로 발생 ]

ssl인증서 추가
certutil -addstore -f "ROOT" "C:\Users\82108\Downloads\27e624ad-5d96-4380-846e-b8ae0a8f4906.cer"
설치후
vagrant box list
vagrant plugin list

2. 가상환경 배포
vagrant file
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
# Define kube-control1 virtual machine
config.vm.define "kube-control1" do |control1|
control1.vm.box = "generic/ubuntu2204"
control1.vm.hostname = "kube-control1"
control1.vm.network "private_network", ip: "192.168.56.10"
control1.vm.provider "virtualbox" do |vb|
vb.name = "kube-control1"
vb.cpus = 2
vb.memory = 2048
unless File.exist?("disk00.vdi")
vb.customize ["createhd", "--filename", "disk00.vdi", "--size", 10240, "--variant", "Fixed"]
end
vb.customize ["storageattach", :id, "--storagectl", "SATA Controller", "--port", 1, "--device", 0, "--type", "hdd", "--medium", "disk00.vdi"]
end
end
# Define kube-node1 virtual machine
config.vm.define "kube-node1" do |node1|
node1.vm.box = "generic/ubuntu2204"
node1.vm.hostname = "kube-node1"
node1.vm.network "private_network", ip: "192.168.56.11"
node1.vm.provider "virtualbox" do |vb|
vb.name = "kube-node1"
vb.cpus = 1
vb.memory = 2048
unless File.exist?("disk01.vdi")
vb.customize ["createhd", "--filename", "disk01.vdi", "--size", 10240, "--variant", "Fixed"]
end
vb.customize ["storageattach", :id, "--storagectl", "SATA Controller", "--port", 1, "--device", 0, "--type", "hdd", "--medium", "disk01.vdi"]
end
end
# Define kube-data1 virtual machine
config.vm.define "kube-data1" do |data1|
data1.vm.box = "generic/ubuntu2204"
data1.vm.hostname = "kube-data1"
data1.vm.network "private_network", ip: "192.168.56.12"
data1.vm.provider "virtualbox" do |vb|
vb.name = "kube-data1"
vb.cpus = 1
vb.memory = 1024
unless File.exist?("disk02.vdi")
vb.customize ["createhd", "--filename", "disk02.vdi", "--size", 10240, "--variant", "Fixed"]
end
vb.customize ["storageattach", :id, "--storagectl", "SATA Controller", "--port", 1, "--device", 0, "--type", "hdd", "--medium", "disk02.vdi"]
end
end
# Define kube-data2 virtual machine
config.vm.define "kube-data2" do |data2|
data2.vm.box = "generic/ubuntu2204"
data2.vm.hostname = "kube-data2"
data2.vm.network "private_network", ip: "192.168.56.13"
data2.vm.provider "virtualbox" do |vb|
vb.name = "kube-data2"
vb.cpus = 1
vb.memory = 1024
unless File.exist?("disk03.vdi")
vb.customize ["createhd", "--filename", "disk03.vdi", "--size", 10240, "--variant", "Fixed"]
end
vb.customize ["storageattach", :id, "--storagectl", "SATA Controller", "--port", 1, "--device", 0, "--type", "hdd", "--medium", "disk03.vdi"]
end
end
# Define kube-data3 virtual machine
config.vm.define "kube-data3" do |data3|
data3.vm.box = "generic/ubuntu2204"
data3.vm.hostname = "kube-data3"
data3.vm.network "private_network", ip: "192.168.56.14"
data3.vm.provider "virtualbox" do |vb|
vb.name = "kube-data3"
vb.cpus = 1
vb.memory = 1024
unless File.exist?("disk04.vdi")
vb.customize ["createhd", "--filename", "disk04.vdi", "--size", 10240, "--variant", "Fixed"]
end
vb.customize ["storageattach", :id, "--storagectl", "SATA Controller", "--port", 1, "--device", 0, "--type", "hdd", "--medium", "disk04.vdi"]
end
end
# Disable hostmanager plugin auto management of /etc/hosts
config.hostmanager.enabled = false
config.hostmanager.manage_guest = false
# Enable SSH Password Authentication and update package sources
config.vm.provision "shell", inline: <<-SHELL
sed -i 's/ChallengeResponseAuthentication no/ChallengeResponseAuthentication yes/g' /etc/ssh/sshd_config
sed -i 's/archive.ubuntu.com/ftp.daum.net/g' /etc/apt/sources.list
sed -i 's/security.ubuntu.com/ftp.daum.net/g' /etc/apt/sources.list
systemctl restart ssh
systemctl start systemd-timesyncd
timedatectl set-timezone Asia/Seoul
SHELL
end
관련 명령어
vagrant plugin list 확인
vagrant up 가상머신 배포
vagrant status 가상머신 상태확인
vagrant ssh default -> default 라는 이름의 가상머신에 원격접속
vagrant halt 가상머신 종료
vagrant destroy : 가상머신 제거
윈도우 서버 파일 보내기
scp C:\Users\82108\Desktop\6_data_work_240419\* root@192.168.56.10:/data/work/
'데이터 엔지니어( 실습 정리 )' 카테고리의 다른 글
| 하둡 클러스터 운영( 도커 컨테이너 ) 실습[주키퍼] (0) | 2024.05.08 |
|---|---|
| 우분투 22.04 config 자동 설정 파이프라인 (0) | 2024.05.01 |
| Centos <<--->> 우분투 SSH 접속 알고리즘 호환 관련 설정 (0) | 2024.01.16 |
| 쉘 스크립트(user_info) (0) | 2023.12.04 |
| 쿠버네티스+airflow(쿠붕이 활용 워크플로우 설계 파이프라인) (0) | 2023.12.01 |