[Vagrant]vagrant-sshfsでファイルの同期を行う

カテゴリ: Vagrant

Vagrantではvagrant-sshfsとういプラグインを使用することで、ホストOSとゲストOSのファイル同期にsshfsを使用することができます。

インストール

vagrant-sshfsのインストールは、vagrant plugin installコマンドを使用します

$ vagrant plugin install vagrant-sshfs
Installing the 'vagrant-sshfs' plugin. This can take a few minutes...
Fetching: win32-process-0.8.3.gem (100%)
Fetching: vagrant-sshfs-1.3.1.gem (100%)
Installed the plugin 'vagrant-sshfs (1.3.1)'!

Vagrantfileの編集

フォルダの同期にvagrant-sshfsを使いたい場合、以下のような形でsynced_folderの定義にtype: "sshfs"を追加します.

Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  config.vm.synced_folder ".", "/vagrant_data", type: "virtualbox", type:"sshfs"end

上記の例では、ホストOSのカレントディレクトリ.を、ゲストOSの/vagrant_dataにマウントして同期をとります。

vagrantの起動

設定後vagrant upを行い、以下のようにSSHFS clientのインストールと起動が行われることを確認します

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'centos/7' is up to date...
...

==> default: Installing SSHFS client...
==> default: Mounting SSHFS shared folder...
==> default: Mounting folder via SSHFS: /Users/xxx/vm/centos7 => /vagrant_data
==> default: Checking Mount..
==> default: Folder Successfully Mounted!

起動後に、同期フォルダにゲストOS/ホストOS側からそれぞれファイルを作成し、ファイル動機が取れていることを確認してみてください。

 

エラー:"slave SSHFS mount failed"が出た時

vagrant upすると、以下のように"slave SSHFS mount failed"が出ることがあります。
これは、マウントされるゲストOS側のディレクトリが空でないときに発生するエラーです。

$ vagrant up

...
Mounting SSHFS shared folder via slave SSHFS mount failed. Please
look at the below STDERR output from the processes that were run.

SSH command:

Warning: Permanently added '[127.0.0.1]:2222' (ECDSA) to the list of known hosts.
fuse: mountpoint is not empty
fuse: if you are sure this is safe, use the 'nonempty' mount option

SFTP command:

このエラーが出たt場合は、ゲストOS側の該当ディレクトリをあらかじめ空にしておくか、別のディレクトリにマウントするよう場所を変更してください。

空にできない特別な事情がある場合は、上記の他に"noempty"オプションを使う方法もあります。


Amazonでおトクに買い物する方法
AmazonチャージでポイントGET


Amazonは買いもの前にAmazonギフト券をチャージしてポイントをゲットしないと損!

こちらもおススメ

コメントを残す

メールアドレスが公開されることはありません。