반응형
Notice
Recent Posts
Recent Comments

04-29 07:04
관리 메뉴

SaevOps

[쿠버네티스/도커] Vagrant 가상머신 본문

클라우드/Kubernetes

[쿠버네티스/도커] Vagrant 가상머신

세브웁스 2022. 9. 14. 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"
     # virtualbox에서 필요한 설정 추가
     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"
     # 호스트와 게스트 사이에 디렉토리 동기화 x
     cfg.vm.synced_folder "../data", "/vagrant", disabled: true
   end
end

2. 베어그란트 네트워크 추가


# 베어그란트 설정에 따라 프로비저닝 실행
grant up

# 베어그란트로 관리중인 머신 실행
vagrant ssh

# 접속후에 IP가 제대로 설정됐는지 확인
ip addr show eth1
PS C:\HashiCorp> vagrant ssh
[vagrant@m-k8s ~]$ ip addr show eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:a3:ab:ff brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.10/24 brd 192.168.1.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fea3:abff/64 scope link
       valid_lft forever preferred_lft forever

3. Vagrantfile 셸 프로비전 추가 ( 추가 패키지 설치 )


cfg.vm.provision "shell", path: "install_pkg.sh"
PS C:\HashiCorp> vagrant provision
==> m-k8s: Running provisioner: shell...
    m-k8s: Running: C:/Users/rlatp/AppData/Local/Temp/vagrant-shell20220913-12324-4q9wiu.sh
    m-k8s: Loaded plugins: fastestmirror
    m-k8s: Determining fastest mirrors
    m-k8s:  * base: mirror.navercorp.com
    m-k8s:  * extras: mirror.navercorp.com
    m-k8s:  * updates: mirror.navercorp.com
    m-k8s: Resolving Dependencies
    m-k8s: --> Running transaction check
    m-k8s: ---> Package epel-release.noarch 0:7-11 will be installed
    m-k8s: --> Finished Dependency Resolution
    m-k8s:
    m-k8s: Dependencies Resolved
    m-k8s:
    m-k8s: ================================================================================
    m-k8s:  Package                Arch             Version         Repository        Size
    m-k8s: ================================================================================
    m-k8s: Installing:
    m-k8s:  epel-release           noarch           7-11            extras            15 k
    m-k8s:
    m-k8s: Transaction Summary
    m-k8s: ================================================================================

4. 추가된 EPEL 저장소 확인

PS C:\HashiCorp> vagrant ssh
[vagrant@m-k8s ~]$ yum repolist
Loaded plugins: fastestmirror
Determining fastest mirrors
 * base: mirror.kakao.com
 * epel: ftp.yz.yamagata-u.ac.jp
 * extras: mirror.kakao.com
 * updates: mirror.kakao.com
repo id                                   repo name                                                               status
base/7/x86_64                             CentOS-7 - Base                                                         10,072
epel/x86_64                               Extra Packages for Enterprise Linux 7 - x86_64                          13,756
extras/7/x86_64                           CentOS-7 - Extras                                                          516
updates/7/x86_64                          CentOS-7 - Updates                                                       4,156
repolist: 28,500

5. 생성한 vm 종료

PS C:\HashiCorp> vagrant destroy -f
==> m-k8s: Forcing shutdown of VM...
==> m-k8s: Destroying VM and associated drives...

* 쉘 프로비전을 추가하는 것은 init 스크립트를 만들어 실행하는 것과 똑같은 효과인 것으로 보인다.

* Ruby 문법이 특이한게, 변수에:표시 띄어쓰기에 신경 써야 한다.

반응형
Comments