반응형
반응형

테스트 용도로 세팅해서 사용하던 Ubuntu14.04 머신의 Root볼륨이 20G 였는데,

docker 사용을 남발하다보니, /var/lib/docker 아래에 파일 사이즈가 커지게 되어, 50G 정도로 늘릴 일이 생겼다.


대충 개념을 설명하면, 통으로 바꿔버리는 방식이 아니라, 30G 짜리 물리 Disk를 추가하여, 20G짜리에 붙여서 확장하는 개념이다. 

이런 방식이기 때문에, 디스크를 추가하여 OS부팅 후 인식 시켜놓은 이후에는, 커맨드 라인으로 해결 가능하다.


확장 절차는 아래와 같다.


1. 가상머신 종료

$ vagrant halt


2. 기존 Root 볼륨의 디스크 파일을 VDI 포맷으로 복제 후 용량 증설

$ VBoxManage clonehd box-disk1.vmdk box-disk1.vdi –format VDI
$ VBoxManage modifyhd box-disk1.vdi –resize 50000


3. Root 볼륨의 저장소 컨트롤러가 IDE Controller라면, SATA Controller로 바꾸어 준 후, 복제과정에서 나온 VDI 파일을 추가

VirtualBox GUI 기준으로 [머신 설정] - [저장소]


4. IDE Controller 삭제


5. 가상머신 재실행

$ vagrant up


6. 파티션 생성

$ cfdisk /dev/sda

위 명령어를 치면 GUI가 나오는데, (추가한 디스크 용량 - 현재 용량)정도 되는 파티션을 선택 후 [New] - [Primary] - [Write]

Write까지하면 파티션 명 (ex: sda3)이 나오는데, 기억해두고, [Quit]을 눌러서 빠져 나온다.


6. PV (Phisical Volume)생성

$ pvcreate /dev/sda3


7. Root볼륨의 VG(Volume Group) 확인 및 VG 확장

$ vgdisplay
$ vgextend "위 커맨드로 찾은 Root의 VG Name" /dev/sda3


8. Root볼륨의 LV(Logical Volume)확인 및 LV 확장

$ lvdisplay
$ lvextend "위 커맨드로 찾은 Root의 LV Name" /dev/sda3


9. 파일시스템 갱신

$ resize2fs "8번에서 찾은 Root의 LV Name"


반응형
,
반응형

vagrant의 공식 reference에 보면, cpu, memory에 대해서 설정하는 부분이 나와있지만,

global하게 설정하는 방법밖에 나와있지 않다. (https://www.vagrantup.com/docs/virtualbox/configuration.html)


대충 아래와 같이 설정하면 global하게 설정이 됨.

# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
   config.vm.provider "virtualbox" do |vb|
       vb.cpus = 2
       vb.memory = 1024
   end
end


저 설정을 응용해서 여러대의 vm이 있는 경우 각 vm에 provider옵션을 추가하여, cpu, memory를 세팅할 수 있다.

# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|

   # 1번 머신
   config.vm.define "ubuntu1" do |ubuntu1|
      ubuntu1.vm.box = "ubuntu14_docker"
      ubuntu1.vm.network "private_network", ip: "192.168.33.10"
      ubuntu1.vm.hostname="ubuntu1604-1"
      ubuntu1.vm.provider :virtualbox do |vb|    
          vb.cpus = 2
          vb.memory = 2048
      end
  end  

  # 2번 머신
  config.vm.define "ubuntu2" do |ubuntu2|
      ubuntu2.vm.box = "ubuntu14_docker"
      ubuntu2.vm.network "private_network", ip: "192.168.33.11"
      ubuntu2.vm.hostname="ubuntu1604-2"
  end

  # 글로벌 설정
  config.vm.provider "virtualbox" do |vb|
       vb.cpus = 2
       vb.memory = 1024
  end
end


1번 머신은 세팅한 대로 2Core에 2GB로 세팅이 되었고, 별다른 설정하지 않은 2번 머신은 글로벌 설정에 따라 2코어에 1GB로 세팅이 되는 것을 확인할 수 있다.

반응형
,
반응형

vagrant 특성상 기본적으로 VagrantFile이 위치한 디렉토리를 생성될 VM의 /vagrant 폴더로 Link 시키는 작업을 하는데,

Guest Addition이 제대로 설치되지 않은 image box의 경우는 공유폴더 설정하는 부분에서 에러가 발생하기 때문에,

vm을 생성하는 데 시간이 지연되게 된다.


이런 경우 기본적으로 Link 시키지 않도록 VagrantFile에서 아래와 같이 disable 처리를 해주면 된다.


Vagrant.configure(2) do |config|
    config.vm.synced_folder '.', '/vagrant', disabled: true
...
반응형
,
반응형

추후 버전에선 고쳐질지도 모르겠는데,

Vagrant 1.7.3 버전에서는 config.vm.network의 "forwarded_port" 설정 시에, host_ip를 명시해주지 않으면,

virtualBox에서 공백으로 인식을 하게되어, vm에 private ip가 할당되어 있다고 하더라도,

동일한 네트워크 상의 다른 사람 PC에서는 접근을 못하는 문제가 생기는 것 같다.


이럴 경우에는 host_ip 옵션을 추가로 줘서, 내 PC의 private IP를 명시를 해주면, 해결이 된다.


ssh 접근의 경우 default로 설정이 되어 있어서, VagrantFile에는 명시가 되어 있지 않은데,

설정 파일에 22번 포트에 대해서 명시를 해주면, default설정이 새롭게 명시한 설정으로 매핑이 된다.

반응형
,
반응형

RabbitMQ fanout 테스트를 위해, 로컬에서 vagrant로 돌고 있던 동일한 vm이 하나 더 필요하게 되었다.


이런경우 vagrant up시에 뒤에 붙는 파라미터 값으로 구분을 해야 하는데,

VagrantFile을 열어서 아래와 같이 처리를 해주면된다.


config.vm.define "vm1" do |vm1|
// 파라미터로 vm1이라는 문자열이 들어오면 실행.
end

config.vm.define "vm2" do |vm2|
// 파라미터로 vm2이라는 문자열이 들어오면 실행.
end



처음에 설정할 땐, vm1, vm2를 init이나 box add시에 따로 지정을 해줘야되는줄 알았는데,

그냥 파라미터여서 허무했다.

반응형
,
반응형

vagrant package 하기 전에,

/etc/udev/rules.d/70-persistent-net.rules 경로에 가서 이 파일을 지워주면 된다고 한다.


자체적으로 mac address를 생성하는데, 그게 중복되서라나 뭐라나;;


이미 받은 경우에는 vagrant ssh로 접근해서 지우고 reboot하면 된다.

반응형
,
반응형
mkdir -p /home/vagrant/.ssh 

sudo chmod 0700 /home/vagrant/.ssh 

sudo wget --no-check certificate https://raw.github.com/mitchellh/vagrant/master/keys/vagrant.pub -O /home/vagrant/.ssh/authorized_keys 

sudo chmod 0600 /home/vagrant/.ssh/authorized_keys 

sudo chown -R vagrant /home/vagrant/.ssh



패키징할때 뭘 잘못했는진 모르겠는데.. vagrant ssh로 직접 접근해서 ssh key를 다시 설치하니까 잘된다.


반응형
,
반응형

virtualBox guest addition를 설치한다.

$ apt-get update
$ apt-get install virtualbox-guest-additions-iso


설치 후 /usr/share/virtualbox 디렉토리에 가보면 VBoxGuestAdditions.iso 파일이 있을 것이다.


이 파일을 아래 명령어를 쳐서, /mnt 경로에 mount시켜준다. 

$ mount -t iso9660 -o loop /usr/share/virtualbox/VBoxGuestAdditions.iso /mnt/


이미지가 마운트되었으니, 해당 경로로 가서 실행파일을 실행시켜준다.

$ cd /mnt
$ ./VBoxLinuxAdditions.run


잘 설치가 되면 좋겠지만, x.org windows driver failed 어쩌고하는 에러가 발생하는 경우가 있는데,

이 경우는 아래 명령어를 이용하여, x.org 관련된 패키지들을 설치한 뒤, 재실행 하면 정상적으로 설치가 된다.

$ sudo apt-get install xserver-xorg xserver-xorg-core


설치는 끝났는데, 그래도 안되는 경우에는 

방금 설치한 GuestAdditions 경로를 /usr/lib 밑으로 심볼릭 링크를 잡아주어야 한다.

$ sudo ln -s /opt/VBoxGuestAdditions-4.3.10/lib/VBoxGuestAdditions /usr/lib/VBoxGuestAdditions


리붓하면 정상동작한다.

$ sudo reboot
반응형
,
반응형