• 1~2번째 줄: 에디터에 현재 파일이 루비(ruby)임을 인식하게 하는 호환 코드입니다. 여기서 ft는 파일 종류(file type)의 약자이며, 해당 내용은 실행에 아무런 영향을 미치지 않습니다.
• 3번째 줄: "2"는 베이그런트에서 루비로 코드를 읽어 들여 실행할 때 작동하는 API 버전이고, 뒤의 do |config|는 베이그런트 설정의 시작을 알립니다.
• 4번째 줄: 버추얼박스에서 보이는 가상 머신을 "m-k8s"로 정의하고, do|cfg|를 추가해 원하는 설정으로 변경합니다. 이렇게 do |이름|으로 시작한 작업은 end로 종료합니다.
• 5번째 줄: 기본값 config.vm.box를 do |cfg|에 적용한 내용을 받아 cfg.vm.box로 변경합니다.
• 6번째 줄: 베이그런트의 프로바이더(provider)가 버추얼박스라는 것을 정의합니다. 프로바이더는 베이그런트를 통해 제공되는 코드가 실제로 가상 머신으로 배포되게 하는 소트프웨어입니다. 버추얼박스가 여기에 해당합니다. 다음으로 버추얼박스에서 필요한 설정을 정의하는데, 그 시작을 do |vb|로 선언합니다.
• 7~11번째 줄: 버추얼박스에 생성한 가상 머신의 이름, CPU 수, 메모리 크기, 소속된 그룹을 명시합니다. 그리고 마지막으로 end를 적어 버추얼박스 설정이 끝났음을 알립니다.
• 12번째 줄: 여기부터는 가상 머신 자체에 대한 설정으로, do |cfg|에 속한 작업입니다. 12번째 줄은 호스트의 이름(m-k8s)을 설정합니다.
• 13번째 줄: 호스트 전용 네트워크를 private_network로 설정해 eth1 인터페이스를 호스트 전용(Host-Only)으로 구성하고 IP는 192.168.1.10으로 지정합니다.2
• 14번째 줄: ssh 통신은 호스트 60010번을 게스트 22번으로 전달되도록 구성합니다. 이때 혹시 모를 포트 중복을 대비해 auto_correct: true로 설정해서 포트가 중복되면 포트가 자동으로 변경되도록 합니다.
• 15번째 줄: 호스트(PC 또는 노트북)와 게스트(가상 머신) 사이에 디렉터리 동기화가 이뤄지지 않게 설정(disabled: true)합니다.
• 16~17번째 줄: 설정 작업(do |config|, do |cfg|)이 종료됐음을 end 구문으로 명시합니다. 이때 do와 end의 들여쓰기(indentation) 위치가 정확하게 일치해야 합니다.
2 호스트 전용 네트워크는 호스트 내부에 192.168.1.0대의 사설망을 구성합니다. 가상 머신은 NAT(Network Address Translation, 네트워크 주소 변환) 인터페이스인 eth0를 통해서 인터넷에 접속합니다.