EMD Blog

레드햇 계열의 vm 생성 시 공유 폴더 기능 중 실시간 동기화 기능 미작동 본문

IaC/Vagrant

레드햇 계열의 vm 생성 시 공유 폴더 기능 중 실시간 동기화 기능 미작동

EmaDam 2022. 9. 3. 11:07

Vagrant의 공유 폴더 기능을 사용할 때 box로 centos를 지정하면 실시간 동기화가 되지 않는 이슈 발생. 즉, 계속 reload를 통해 파일을 동기화 시켜주어야함. 하지만 Ubuntu에서는 정상적으로 작동함.

https://stackoverflow.com/questions/29731003/synced-folder-in-vagrant-is-not-syncing-in-realtime

stackoverflow에 같은 issue를 겪고 질문을 남긴 사람이 있음. 레드햇 계열의 리눅스에서는 전부 동작하지 않는 것으로 보임.

현재 Hashicorp에 문의 중 → 그냥 문서안내만 받음

기존에 rsync__auto 옵션이 기본적으로 true로 설정되어 있다고 하는데 기본 값을 사용하든 명시적으로 지정을 해주든 작동은 똑같이 안함.

여러번 테스트 결과 같은 옵션이라도 rsync가 될때도 있고 안될 때도 있음. 정확하게는 특정 OS에서만 발생하는 것이 아닌 무작위로 발생 (CentOS7에서도 될때가 있음.)

rsync가 실행이 됐는데 작동을 안하는 것이아니고 그냥 실행자체가 안됨.

즉, rsync를 cli를 이용해 수동으로 실행시키면 정상작동함. 그래서 vagrantfile내 trigger를 통해 rsync를 수동으로 실행

Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  config.vm.network "forwarded_port", guest: 80, host: 8081
  config.vm.network "public_network", ip: "192.168.0.2"

  # 이 부분 추가 
  config.trigger.after :up do |trigger|
    trigger.info = "rsync auto"
    trigger.run = {inline: "bash -c 'vagrant rsync-auto &'"}
  end
  
  config.vm.synced_folder ".", "/vagrant", type: "rsync"
end

수동 rsync는 인터럽트가 수신될 때까지 종료되지 않으므로 백그라운드로 실행.

[참고] https://github.com/hashicorp/vagrant/issues/10002