Vagrant UpとうっとうしいNFSパスワードの質問


18

私が犯した言語のミスでごめんなさい。NFSによって共有フォルダーをマウントするときに、迷惑メールがパスワードを要求しないようにしようとしています。

 [server] Exporting NFS shared folders...
 Preparing to edit /etc/exports. Administrator privileges will be required...
 [sudo] password for timur: #!!!

githubや他の著者の投稿など、多くのオンラインリソースを利用しましたが、私には何の役にも立ちません...

ここで見つかった指示を試しまし。cliの作業に関する深い知識はありません。だから誰かが私の問題の正しい解決策を与えることができますか?


Vagrantのドキュメントでこれがカバーされているので、受け入れられた答えを今すぐにお願いできますか?
タイタイ

まずnfs-server、マシンにサービスがインストールされているかを確認する必要があります。
ギャンビット

回答:


32

Vagrantの公式ドキュメントがhttps://www.vagrantup.com/docs/synced-folders/nfs.html#root-privilege-requirementをカバーしています

/etc/sudoersファイルにエントリを追加する必要があり、それを編集する方法はターミナルでこれを入力することです:sudo visudo

パスワードを入力すると、ファイルを編集しています。これらの行を以下に貼り付けます(OS XまたはLinuxでVagrantを実行しているかどうかによって異なります)。

開いているvimに慣れていない場合は、このページが役に立ちました。基本的に、以下の適切なテキストブロックをコピーします。次に、visudoで、テキストをファイルに貼り付ける場所に移動し(ファイルの終わりは問題ありません)、「i」を押して挿入モードに入ります。CMD + Vでテキストを貼り付けます。次に、ESCキーを押し、入力:wして変更を保存してから、:q終了します。

バージョン1.7.3以降、OS Xのsudoersファイルには次のエントリが必要です。

Cmnd_Alias VAGRANT_EXPORTS_ADD = /usr/bin/tee -a /etc/exports
Cmnd_Alias VAGRANT_NFSD = /sbin/nfsd restart
Cmnd_Alias VAGRANT_EXPORTS_REMOVE = /usr/bin/sed -E -e /*/ d -ibak /etc/exports
%admin ALL=(root) NOPASSWD: VAGRANT_EXPORTS_ADD, VAGRANT_NFSD, VAGRANT_EXPORTS_REMOVE

Linuxには次のエントリが必要です。

Cmnd_Alias VAGRANT_EXPORTS_CHOWN = /bin/chown 0\:0 /tmp/*
Cmnd_Alias VAGRANT_EXPORTS_MV = /bin/mv -f /tmp/* /etc/exports
Cmnd_Alias VAGRANT_NFSD_CHECK = /etc/init.d/nfs-kernel-server status
Cmnd_Alias VAGRANT_NFSD_START = /etc/init.d/nfs-kernel-server start
Cmnd_Alias VAGRANT_NFSD_APPLY = /usr/sbin/exportfs -ar
%sudo ALL=(root) NOPASSWD: VAGRANT_EXPORTS_CHOWN, VAGRANT_EXPORTS_MV, VAGRANT_NFSD_CHECK, VAGRANT_NFSD_START, VAGRANT_NFSD_APPLY

これらはVagrantの1つのバージョンから別のバージョンに変更されるため、上記は古くなっている可能性があります。重要なことは、ドキュメントがそれをカバーしていることです。


奇妙なことに、/var/log/auth.logそこにリストされているコマンドのみが含まれていて、sudo許可が機能していることを手動で確認できても、これは機能しません 。
Tgr

1
メインのsudoersファイルを編集する代わりに、これを新しいファイルとして追加することをお勧めします。これにより/etc/sudoers.d、OSの更新時に将来の競合を回避できます。Ubuntu:sudo visudo -f /etc/sudoers.d/vagrant-nfsまたはOSX:sudo visudo -f /private/etc/sudoers.d/vagrant-nfs
EmilVikström17年

1
これは役に立ちました、ありがとう!vimエディターを回避するためのアドバイスへの簡単なコメント:visudoをsudo EDITOR=nano visudoコマンドで開くだけで、vimを完全にバイパスできます。
ペトルチブルカ

2

正確なコマンドはVagrantバージョン間で変更される可能性があるため、常に機能するコマンドをリストすることはできません。

とにかく、この要点の sudoersルールはまだかなり近いはずです。Vagrantバージョンの実際のコマンドが明らかになった場合は/var/log/auth.logを確認し、それに応じてルールを調整します。


感謝しますが、私はずっと前にこの解決策を試しました-それは私にとってはうまくいきません。
ティムールファイズラフマノフ14

2

OSXでこれを行う人にとって(私はMacOS Sierraバージョン10.12.6を使用しています)、これらの行を追加した後でも、許可に苦労しました。この投稿は本当に役に立ちました:

https://github.com/cogitatio/vagrant-hostsupdater/issues/50

基本的には、そのフォルダに自分で設定したアクセス許可がないという事実です。したがって、次を実行する必要があります。

sudo chmod +a "$USER allow write,append" /etc/hosts

1

Vagrantfileの-行, nfs_export: falseの最後に追加して、config.vm.synced_folderそれを解決しました。

すでに有効なnfs-configがあり、Vagrantを起動するたびに上書きする必要がない場合は、エクスポートファイルへの書き込みを無効にすることができます。

同じフォルダーにアクセスしようとしているVagrantが複数いる場合、たとえば、2つのほぼ同一のVagrants、1つはphp 5.6を実行し、もう1つはphp 7.2を実行するなど、衝突の問題も解決します。


0

TL&DR:次のoverride.vm.synced_folder "。"、 "/ vagrant"、無効を追加します:true

Rational:デフォルトでは、VagrantはNFS / SMBフォルダーを検出しようとします。開発者がこの機能を追加した理由を理解することはできますが、私のユースケースではこれは非常に迷惑です。解決策は、NFSフォルダーの同期を単に無効にすることです。

これは、VM同期フォルダーオプションをオーバーライドすることで実行できます。考慮のために、デジタルオーシャンの次の構成を添付しました。そのため、構成全体を確認できます。

 config.vm.define "droplet1" do |config|
 config.vm.provider :digital_ocean do |provider, override|
    override.vm.synced_folder ".", "/vagrant", disabled: true
        override.ssh.private_key_path = '~/.ssh/id_rsa'
        override.vm.box = 'digital_ocean'=
        override.vm.box_url = "https://github.com/devopsgroup-io/vagrant- 
 digitalocean/raw/master/box/digital_ocean.box"
    override.nfs.functional = false
            provider.image = 'ubuntu-14-04-x64'
            provider.region = 'nyc1'
            provider.size = '512mb'
       end
      end
    end

「TL&DR」の人たちが大好き!乾杯。
ルイスミラネーゼ

1
ありがとう!
投票

あなたの「TL&DR」のために、あなたは得ることができるすべての賛成に値しますが、真実はあなたの答えが私を助けなかったということです。それは良くないからではありませんが、私が抱えていた問題はそもそも尋ねられたものとわずかに異なっていました。それでも、良い姿勢をありがとう。:)
ルイスミラネーゼ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.