반응형
Notice
Recent Posts
Recent Comments

05-01 15:36
관리 메뉴

SaevOps

[쿠버네티스/도커] Vagrant 가상머신 여러개 생성 및 관리 본문

클라우드/Kubernetes

[쿠버네티스/도커] Vagrant 가상머신 여러개 생성 및 관리

세브웁스 2022. 9. 15. 12:00
반응형

 

1. Vagrantfile 파일 수정

# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure("2") do |config|
  config.vm.define "m-k8s" do |cfg|
     cfg.vm.box = "sysnet4admin/CentOS-k8s"
     cfg.vm.provider "virtualbox" do |vb|
       vb.name = "m-k8s(github_SysNet4Admin)"
       vb.cpus = 2
       vb.memory = 2048
       vb.customize ["modifyvm", :id, "--groups", "/k8s-SM(github_SysNet4Admin)"]
     end
     cfg.vm.host_name = "m-k8s"
     cfg.vm.network "private_network", ip:"192.168.1.10"
     cfg.vm.network "forwarded_port" , guest: 22, host:60010, auto_correct: true, id: "ssh"
     cfg.vm.synced_folder "../data", "/vagrant", disabled: true
     cfg.vm.provision "shell", path: "install_pkg.sh"
     cfg.vm.provision "file", source: "ping_2_nds.sh", destination: "ping_2_nds.sh"
     cfg.vm.provision "shell", path: "config.sh"
   end

   #========== #
   # Added Nodes #   
   #========== #

   (1..3).each do |i| 
   config.vm.define "w#{i}-k8s" do |cfg|
     cfg.vm.box = "sysnet4admin/CentOS-k8s"
     cfg.vm.provider "virtualbox" do |vb|
       vb.name = "w#{i}-k8s(github_SysNet4Admin)"
       vb.cpus = 2
       vb.memory = 2048
       vb.customize ["modifyvm", :id, "--groups", "/k8s-SM(github_SysNet4Admin)"]
     end
     cfg.vm.host_name = "w#{i}-k8s"
     cfg.vm.network "private_network", ip:"192.168.1.10#{i}"
     cfg.vm.network "forwarded_port" , guest: 22, host: "6010#{i}", auto_correct: true, id: "ssh"
     cfg.vm.synced_folder "../data", "/vagrant", disabled: true
     cfg.vm.provision "shell", path: "install_pkg.sh"
    end 
  end
end

2. install_pkg.sh 파일 생성 ( 경로는 Vagrantfile과 동일 )

#!/usr/bin/env bash
# install packages
yum install epel-release -y
yum install vim-enhanced -y

 : epel , vim 설치 스크립트


3. ping_2_nds.sh 파일 생성 ( 경로는 Vagrantfile과 동일 )

ping 192.168.1.101 -c 3
ping 192.168.1.102 -c 3
ping 192.168.1.103 -c 3

: 핑날려서 상태확인하는 스크립트


4. config.sh 파일 생성 ( 경로는 Vagrantfile과 동일 )

chmod 744 ./ping_2_nds.sh

: 스크립트 사용권한 추가 ( 스크립트를 사용하기 위해선 실행권한이 필요함 )


5. Vagrant 프로비전

# 베어그런트 프로비전
vagrant up

6. 결과 확인


※ 마스터에서 핑을날려 네트워크가 알맞게 설정되었는지 확인

PS C:\HashiCorp> vagrant ssh m-k8s
[vagrant@m-k8s ~]$ ./ping_2_nds.sh
PING 192.168.1.101 (192.168.1.101) 56(84) bytes of data.
64 bytes from 192.168.1.101: icmp_seq=1 ttl=64 time=0.423 ms
64 bytes from 192.168.1.101: icmp_seq=2 ttl=64 time=0.477 ms
64 bytes from 192.168.1.101: icmp_seq=3 ttl=64 time=0.809 ms

--- 192.168.1.101 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2000ms
rtt min/avg/max/mdev = 0.423/0.569/0.809/0.172 ms
PING 192.168.1.102 (192.168.1.102) 56(84) bytes of data.
64 bytes from 192.168.1.102: icmp_seq=1 ttl=64 time=0.359 ms
64 bytes from 192.168.1.102: icmp_seq=2 ttl=64 time=0.850 ms
64 bytes from 192.168.1.102: icmp_seq=3 ttl=64 time=0.758 ms

--- 192.168.1.102 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.359/0.655/0.850/0.215 ms
PING 192.168.1.103 (192.168.1.103) 56(84) bytes of data.
64 bytes from 192.168.1.103: icmp_seq=1 ttl=64 time=0.555 ms
64 bytes from 192.168.1.103: icmp_seq=2 ttl=64 time=0.799 ms
64 bytes from 192.168.1.103: icmp_seq=3 ttl=64 time=0.828 ms

--- 192.168.1.103 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.555/0.727/0.828/0.124 ms

오늘은 베어그런트로 이미지를 가진 VM 여러 개를 생성했다. 

Vagrant Cloud로 CentOS 이미지를 다운로드하고, 여러 개의 VM을 생성하고 하기에 아주 적합한 듯하다.

배울 때마다 편한 기술이 많이 나오는 것 같아서 매일 새롭다.

테스트 환경 구축은 오늘까지로 끝.

반응형
Comments