この記事は約21分28秒で読むことができます。

vagrant管理の仮想ゲストOSマシンと仮想ホストOSマシンの同期をとる話

実行例

Cntrl+Cするんだな。仮想ゲストOSの作業を仮想ホストOSに反映することができない。nfsとかのファイル同期遅くていやになる。いろいろ考えないとな。

コード表示

[oracle@centos vx]$ ll
合計 24
-rw-r--r--. 1 oracle docker  767  5月 27 00:50 Vagrantfile
-rw-r--r--. 1 oracle docker 3015  5月 24 05:16 Vagrantfile_org
-rwxr-xr-x. 1 oracle docker  133  5月 26 23:48 a.sh
-rwxr-xr-x. 1 oracle docker  221  5月 27 00:55 s.sh
drwxr-xr-x. 3 oracle docker 4096  5月 27 01:02 share
drwxr-xr-x. 2 oracle docker 4096  5月 27 00:59 tmpl
[oracle@centos vx]$ vagrant ssh node1 -c "ls -l /vagrant"
total 16
-rw-r--r--. 1 vagrant vagrant  767 May 26 15:50 Vagrantfile
-rw-r--r--. 1 vagrant vagrant 3015 May 23 20:16 Vagrantfile_org
-rw-r--r--. 1 vagrant vagrant    0 May 26 22:31 a
-rwxr-xr-x. 1 vagrant vagrant  133 May 26 14:48 a.sh
-rwxr-xr-x. 1 vagrant vagrant  221 May 26 15:55 s.sh
drwxr-xr-x. 3 vagrant vagrant   18 May 26 16:02 share
drwxr-xr-x. 2 vagrant vagrant   20 May 26 15:59 tmpl
Connection to 192.168.121.179 closed.
[oracle@centos vx]$ vagrant rsync-auto
==> node1: Doing an initial rsync...
==> node1: Rsyncing folder: /home/oracle/vx/ => /vagrant
==> node1: Watching: /home/oracle/vx
^C[oracle@centos vx]$ 
[oracle@centos vx]$ vagrant ssh node1 -c "ls -l /vagrant"
total 16
-rw-r--r--. 1 vagrant vagrant  767 May 26 15:50 Vagrantfile
-rw-r--r--. 1 vagrant vagrant 3015 May 23 20:16 Vagrantfile_org
-rwxr-xr-x. 1 vagrant vagrant  133 May 26 14:48 a.sh
-rwxr-xr-x. 1 vagrant vagrant  221 May 26 15:55 s.sh
drwxr-xr-x. 3 vagrant vagrant   18 May 26 16:02 share
drwxr-xr-x. 2 vagrant vagrant   20 May 26 15:59 tmpl
Connection to 192.168.121.179 closed.
[oracle@centos vx]$ vagrant ssh node1 -c "touch /vagrant/a"
Connection to 192.168.121.179 closed.
[oracle@centos vx]$ vagrant ssh node1 -c "ls -l /vagrant"
total 16
-rw-r--r--. 1 vagrant vagrant  767 May 26 15:50 Vagrantfile
-rw-r--r--. 1 vagrant vagrant 3015 May 23 20:16 Vagrantfile_org
-rw-rw-r--. 1 vagrant vagrant    0 May 26 22:38 a
-rwxr-xr-x. 1 vagrant vagrant  133 May 26 14:48 a.sh
-rwxr-xr-x. 1 vagrant vagrant  221 May 26 15:55 s.sh
drwxr-xr-x. 3 vagrant vagrant   18 May 26 16:02 share
drwxr-xr-x. 2 vagrant vagrant   20 May 26 15:59 tmpl
Connection to 192.168.121.179 closed.
[oracle@centos vx]$ ll
合計 24
-rw-r--r--. 1 oracle docker  767  5月 27 00:50 Vagrantfile
-rw-r--r--. 1 oracle docker 3015  5月 24 05:16 Vagrantfile_org
-rwxr-xr-x. 1 oracle docker  133  5月 26 23:48 a.sh
-rwxr-xr-x. 1 oracle docker  221  5月 27 00:55 s.sh
drwxr-xr-x. 3 oracle docker 4096  5月 27 01:02 share
drwxr-xr-x. 2 oracle docker 4096  5月 27 00:59 tmpl
[oracle@centos vx]$ vagrant rsync-auto
==> node1: Doing an initial rsync...
==> node1: Rsyncing folder: /home/oracle/vx/ => /vagrant
==> node1: Watching: /home/oracle/vx
^C[oracle@centos vx]$ ll
合計 24
-rw-r--r--. 1 oracle docker  767  5月 27 00:50 Vagrantfile
-rw-r--r--. 1 oracle docker 3015  5月 24 05:16 Vagrantfile_org
-rwxr-xr-x. 1 oracle docker  133  5月 26 23:48 a.sh
-rwxr-xr-x. 1 oracle docker  221  5月 27 00:55 s.sh
drwxr-xr-x. 3 oracle docker 4096  5月 27 01:02 share
drwxr-xr-x. 2 oracle docker 4096  5月 27 00:59 tmpl
[oracle@centos vx]$ vagrant ssh node1 -c "ls -l /vagrant"
total 16
-rw-r--r--. 1 vagrant vagrant  767 May 26 15:50 Vagrantfile
-rw-r--r--. 1 vagrant vagrant 3015 May 23 20:16 Vagrantfile_org
-rwxr-xr-x. 1 vagrant vagrant  133 May 26 14:48 a.sh
-rwxr-xr-x. 1 vagrant vagrant  221 May 26 15:55 s.sh
drwxr-xr-x. 3 vagrant vagrant   18 May 26 16:02 share
drwxr-xr-x. 2 vagrant vagrant   20 May 26 15:59 tmpl
Connection to 192.168.121.179 closed.

rsyncがあった

Vagrantfile。各仮想ゲストOSマシンでの共有フォルダは共通していいとおもう。デフぉは無効にする。

コード表示

# -*- mode: ruby -*-
# vi: set ft=ruby :

Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  config.vm.synced_folder '.', '/mnt', type: 'rsync'
  config.vm.synced_folder '.', '/vagrant', disabled: true
  config.vm.define "node1" do |centos_on_kvm|
    centos_on_kvm.vm.provision :shell, :path => "a.sh"
    centos_on_kvm.vm.hostname = "node1"
    centos_on_kvm.vm.provider "libvirt" do |spec|
      spec.memory = 2048
      spec.cpus = 2
    end
  end
end

vagrant-rsync-backをいんすこ

コード表示

[oracle@centos vx]$ vagrant plugin install vagrant-rsync-back
Installing the 'vagrant-rsync-back' plugin. This can take a few minutes...
Fetching: vagrant-rsync-back-0.0.1.gem (100%)
Installed the plugin 'vagrant-rsync-back (0.0.1)'!

仮想ゲストOSの同期対象を仮想ホストOSの方にmergeする

コード表示

[oracle@centos vx]$ vagrant ssh node1
Last login: Mon May 27 12:10:04 2019 from 192.168.121.1
[vagrant@node1 ~]$ cd /mnt
[vagrant@node1 mnt]$ ll
total 16
-rwx------. 1 vagrant vagrant  878 May 27 12:09 Vagrantfile
-rwx------. 1 vagrant vagrant 3015 May 23 20:16 Vagrantfile_org
-rwx------. 1 vagrant vagrant  133 May 26 14:48 a.sh
-rwx------. 1 vagrant vagrant  221 May 26 15:55 s.sh
drwx------. 3 vagrant vagrant   18 May 26 16:02 share
drwx------. 2 vagrant vagrant   20 May 26 15:59 tmpl
[vagrant@node1 mnt]$ touch a
[vagrant@node1 mnt]$ ll
total 16
-rwx------. 1 vagrant vagrant  878 May 27 12:09 Vagrantfile
-rwx------. 1 vagrant vagrant 3015 May 23 20:16 Vagrantfile_org
-rw-rw-r--. 1 vagrant vagrant    0 May 27 12:14 a
-rwx------. 1 vagrant vagrant  133 May 26 14:48 a.sh
-rwx------. 1 vagrant vagrant  221 May 26 15:55 s.sh
drwx------. 3 vagrant vagrant   18 May 26 16:02 share
drwx------. 2 vagrant vagrant   20 May 26 15:59 tmpl
[vagrant@node1 mnt]$ logout
Connection to 192.168.121.147 closed.
[oracle@centos vx]$ ll
合計 24
-rwx------. 1 oracle docker  878  5月 27 21:09 Vagrantfile
-rwx------. 1 oracle docker 3015  5月 24 05:16 Vagrantfile_org
-rwx------. 1 oracle docker  133  5月 26 23:48 a.sh
-rwx------. 1 oracle docker  221  5月 27 00:55 s.sh
drwx------. 3 oracle docker 4096  5月 27 01:02 share
drwx------. 2 oracle docker 4096  5月 27 00:59 tmpl
[oracle@centos vx]$ vagrant rsync-back
==> node1: Rsyncing folder: /mnt/ => /home/oracle/vx
[oracle@centos vx]$ ll
合計 24
-rwx------. 1 oracle docker  878  5月 27 21:09 Vagrantfile
-rwx------. 1 oracle docker 3015  5月 24 05:16 Vagrantfile_org
-rw-rw-r--. 1 oracle docker    0  5月 27 21:14 a
-rwx------. 1 oracle docker  133  5月 26 23:48 a.sh
-rwx------. 1 oracle docker  221  5月 27 00:55 s.sh
drwx------. 3 oracle docker 4096  5月 27 01:02 share
drwx------. 2 oracle docker 4096  5月 27 00:59 tmpl

仮想ホストOSの同期対象を仮想ゲストOSの方にmergeする

コード表示

[oracle@centos vx]$ vagrant ssh node1
[vagrant@node1 ~]$ cd /mnt
[vagrant@node1 mnt]$ ll
total 16
-rwx------. 1 vagrant vagrant  878 May 27 12:09 Vagrantfile
-rwx------. 1 vagrant vagrant 3015 May 23 20:16 Vagrantfile_org
-rwx------. 1 vagrant vagrant  133 May 26 14:48 a.sh
-rwx------. 1 vagrant vagrant  221 May 26 15:55 s.sh
drwx------. 3 vagrant vagrant   18 May 26 16:02 share
drwx------. 2 vagrant vagrant   20 May 26 15:59 tmpl
[vagrant@node1 mnt]$ touch aine
[vagrant@node1 mnt]$ ll
total 16
-rwx------. 1 vagrant vagrant  878 May 27 12:09 Vagrantfile
-rwx------. 1 vagrant vagrant 3015 May 23 20:16 Vagrantfile_org
-rwx------. 1 vagrant vagrant  133 May 26 14:48 a.sh
-rw-rw-r--. 1 vagrant vagrant    0 May 27 12:10 aine
-rwx------. 1 vagrant vagrant  221 May 26 15:55 s.sh
drwx------. 3 vagrant vagrant   18 May 26 16:02 share
drwx------. 2 vagrant vagrant   20 May 26 15:59 tmpl
[vagrant@node1 mnt]$ logout
Connection to 192.168.121.147 closed.
[oracle@centos vx]$ ll
合計 24
-rwx------. 1 oracle docker  878  5月 27 21:09 Vagrantfile
-rwx------. 1 oracle docker 3015  5月 24 05:16 Vagrantfile_org
-rwx------. 1 oracle docker  133  5月 26 23:48 a.sh
-rwx------. 1 oracle docker  221  5月 27 00:55 s.sh
drwx------. 3 oracle docker 4096  5月 27 01:02 share
drwx------. 2 oracle docker 4096  5月 27 00:59 tmpl
[oracle@centos vx]$ vagrant rsync
==> node1: Rsyncing folder: /home/oracle/vx/ => /mnt
[oracle@centos vx]$ ll
合計 24
-rwx------. 1 oracle docker  878  5月 27 21:09 Vagrantfile
-rwx------. 1 oracle docker 3015  5月 24 05:16 Vagrantfile_org
-rwx------. 1 oracle docker  133  5月 26 23:48 a.sh
-rwx------. 1 oracle docker  221  5月 27 00:55 s.sh
drwx------. 3 oracle docker 4096  5月 27 01:02 share
drwx------. 2 oracle docker 4096  5月 27 00:59 tmpl

Leave a Reply

Your email address will not be published. Required fields are marked *