4651


Vagrant で CoreOS を立ち上げようとしています。  
その際に NFS を使って synced_folder で同期をしたいんですが、 `vagrant up`
をしても途中で処理が止まってしまい正常に立ち上げられません。  
色々と調べても原因が分からないためお知恵をお借りしたいです。

CoreOS は以下のリポジトリのものを使用しています。  
<https://github.com/coreos/coreos-vagrant>

手を加えた箇所は README に書いてあるように Vagrantfile の95行目をアンコメントしているのみです。  
`config.vm.synced_folder ".", "/home/core/share", id: "core", :nfs => true,
:mount_options => ['nolock,vers=3,udp']`

実際に `vagrant up` をした時に吐き出されるメッセージが以下になります。

[code]

    Bringing machine 'core-01' up with 'virtualbox' provider...
    ==> core-01: Importing base box 'coreos-alpha'...
    ==> core-01: Matching MAC address for NAT networking...
    ==> core-01: Checking if box 'coreos-alpha' is up to date...
    ==> core-01: Setting the name of the VM: coreos-vagrant_core-01_1421312749866_77635
    ==> core-01: Clearing any previously set network interfaces...
    ==> core-01: Preparing network interfaces based on configuration...
        core-01: Adapter 1: nat
        core-01: Adapter 2: hostonly
        core-01: Adapter 3: hostonly
    ==> core-01: Forwarding ports...
        core-01: 22 => 2222 (adapter 1)
    ==> core-01: Running 'pre-boot' VM customizations...
    ==> core-01: Booting VM...
    ==> core-01: Waiting for machine to boot. This may take a few minutes...
        core-01: SSH address: 127.0.0.1:2222
        core-01: SSH username: core
        core-01: SSH auth method: private key
        core-01: Warning: Connection timeout. Retrying...
    ==> core-01: Machine booted and ready!
    ==> core-01: Setting hostname...
    ==> core-01: Configuring and enabling network interfaces...
    ==> core-01: Exporting NFS shared folders...
    ==> core-01: Preparing to edit /etc/exports. Administrator privileges will be required...
    Password:
    ==> core-01: Mounting NFS shared folders...
    
[/code]

`Mounting NFS shared folders` と表示されたまま何も出力されず反応がなくなってしまいます。  
NFS サービスはちゃんと動いていることが確認出来ています。

[code]

    $ nfsd status
    nfsd service is enabled
    nfsd is running (pid 21562, 8 threads)
    
[/code]

エラーメッセージも見つけられず行き詰っています。  
よろしくお願いします。

_追記(2015.01.16)_  
/etc/exports の中身がどうなっているか質問がありましたので下記に記載します。

[code]

    # VAGRANT-BEGIN: 501 cf7c54a8-1366-4d3b-9c99-0a1d15996f1f
    "/path/to/coreos-vagrant" 172.17.8.101 -alldirs -mapall=501:20
    # VAGRANT-END: 501 cf7c54a8-1366-4d3b-9c99-0a1d15996f1f
    
[/code]


CC BY-SA 3.0
2015-01-15T09:18:12.320
4604
2015-01-16T09:55:04.247
2015-01-16T00:02:06.210
3150
3150
question
vagrant
Vagrant で nfs を使った synced_folder が機能しない


ホスト側のファイアウォールの問題では？、と想像します。

( `nfsd status` なので、勝手に OS X と想定して、、)  
とりあえず、`システム環境設定` の `セキュリティとプライバシー` の `ファイアウォール` タブで、 `ファイアウォールを切にする` で試してみて、  
これで動きだすなら、たぶんキャッシュが飛んだような気がするので、再び入にしても大丈夫な気がします。(必要に応じて、適切な設定に戻してくださいませ。。)

  

## 追記

単純に nfs でマウントするのはどうでしょう？

  1. `Vagrantfile` の `config.vm.synced_folder` をコメントアウトに戻して `$ vagrant up` します。

  2. ターミナルで `ifconfig vboxnet0` などを実行して、ホスト側の ip address を確認します。(例では **172.17.8.1** )
[code]     $ ifconfig vboxnet0

    vboxnet0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
            ether 0a:00:27:00:00:00 
            inet 172.17.8.1 netmask 0xffffff00 broadcast 172.17.8.255
    
[/code]

  3. `vagrant ssh` で CoreOS に入ります。

  4. `ip a show dev eth1` で ip address を確認します。(例では **172.17.8.101** )
[code]     core@core-01 ~ $ ip a show dev eth1

    3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP qlen 1000
        link/ether 08:00:27:a2:ed:d8 brd ff:ff:ff:ff:ff:ff
        inet 172.17.8.101/24 brd 172.17.8.255 scope global eth1
           valid_lft forever preferred_lft forever
        inet6 fe80::a00:27ff:fea2:edd8/64 scope link 
           valid_lft forever preferred_lft forever
    core@core-01 ~ $ 
    
[/code]

  5. 一旦 `exit` して(もしくはもう一枚ターミナルを開いて)、 `/etc/exports` に CoreOS の ip address に許可を出していることを確認します。( 違う値になっているなら修正します)
[code]     $ cat /etc/exports

    # VAGRANT-BEGIN: 501 cf7c54a8-1366-4d3b-9c99-0a1d15996f1f
    "/path/to/coreos-vagrant" 172.17.8.101 -alldirs -mapall=501:20
    # VAGRANT-END: 501 cf7c54a8-1366-4d3b-9c99-0a1d15996f1f
    $
    
[/code]

  6. CoreOS 側に入って、ホスト側に `ping` が通るか確認しつつ、素手でマウンントしてみます。(nolock だけは必須っぽいです)
[code]     core@core-01 ~ $ ping -c 3 172.17.8.1

    PING 172.17.8.1 (172.17.8.1) 56(84) bytes of data.
    64 bytes from 172.17.8.1: icmp_seq=1 ttl=64 time=0.362 ms
    64 bytes from 172.17.8.1: icmp_seq=2 ttl=64 time=0.410 ms
    64 bytes from 172.17.8.1: icmp_seq=3 ttl=64 time=0.552 ms
    
    --- 172.17.8.1 ping statistics ---
    3 packets transmitted, 3 received, 0% packet loss, time 2003ms
    rtt min/avg/max/mdev = 0.362/0.441/0.552/0.082 ms
    core@core-01 ~ $ 
    core@core-01 ~ $ 
    core@core-01 ~ $ mkdir mount_point
    core@core-01 ~ $ sudo mount -t nfs -o "nolock" 172.17.8.1:/path/to/coreos-vagrant ./mount_point
    core@core-01 ~ $ ls mount_point/
    README.md  Vagrantfile  config.rb  config.rb.sample  user-data  user-data.sample
    core@core-01 ~ $ 
    
[/code]

(後からこの問題を参照する人向けに、以下はコメントからのフィードバックしています。)

  7. ping が通らない場合は VirtualBox で vboxnet0 の設定を消去して再度 CoreOS を立ち上げ直してから試すと正常にもどるようです。


CC BY-SA 3.0
2015-01-16T02:47:25.073
4651
2015-01-16T09:55:04.247
2020-06-17T08:14:45.997
-1
2992
4604
answer