더북(TheBook)

Vagrantfile이 어떻게 구성돼 있는지 코드를 보면서 살펴보겠습니다.

Vagrantfile

  1. # -*- mode: ruby -*-
  2. # vi: set ft=ruby :
  3.  
  4. Vagrant.configure("2") do |config|
  5.   N = 3 # max number of worker nodes 
  6.   Ver = '1.18.4' # Kubernetes Version to install
  7.  
  8.   #=============#
  9.   # Master Node #
  10.   #=============#
  11.  
  12.     config.vm.define "m-k8s" do |cfg|
  13.       cfg.vm.box = "sysnet4admin/CentOS-k8s"
  14.       cfg.vm.provider "virtualbox" do |vb|
  15.         vb.name = "m-k8s(github_SysNet4Admin)"
  16.         vb.cpus = 2
  17.         vb.memory = 3072
  18.         vb.customize ["modifyvm", :id, "--groups", "/k8s-SgMST-1.13.1(github_ SysNet4Admin)"]
  19.       end
  20.       cfg.vm.host_name = "m-k8s"
  21.       cfg.vm.network "private_network", ip: "192.168.1.10"
  22.       cfg.vm.network "forwarded_port", guest: 22, host: 60010, auto_correct: true,  id: "ssh"
  23.       cfg.vm.synced_folder "../data", "/vagrant", disabled: true 
  24.       cfg.vm.provision "shell", path: "config.sh", args: N
  25.       cfg.vm.provision "shell", path: "install_pkg.sh", args: [ Ver, "Main" ] 
  26.       cfg.vm.provision "shell", path: "master_node.sh"
  27.     end
  28.  
  29.   #==============#
  30.   # Worker Nodes #
  31.   #==============#
  32.  
  33.   (1..N).each do |i|
  34.     config.vm.define "w#{i}-k8s" do |cfg|    
  35.       cfg.vm.box = "sysnet4admin/CentOS-k8s"
  36.       cfg.vm.provider "virtualbox" do |vb|
  37.         vb.name = "w#{i}-k8s(github_SysNet4Admin)"
  38.         vb.cpus = 1
  39.         vb.memory = 2560
  40.         vb.customize ["modifyvm", :id, "--groups", "/k8s-SgMST-1.13.1(github_ SysNet4Admin)"]
  41.       end
  42.       cfg.vm.host_name = "w#{i}-k8s"
  43.       cfg.vm.network "private_network", ip: "192.168.1.10#{i}"
  44.       cfg.vm.network "forwarded_port", guest: 22, host: "6010#{i}", auto_correct:  true, id: "ssh"
  45.       cfg.vm.synced_folder "../data", "/vagrant", disabled: true
  46.       cfg.vm.provision "shell", path: "config.sh", args: N
  47.       cfg.vm.provision "shell", path: "install_pkg.sh", args: Ver
  48.       cfg.vm.provision "shell", path: "work_nodes.sh"
  49.     end
  50.   end
  51.  
  52. end
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.