Vagrant Up और कष्टप्रद NFS पासवर्ड पूछना


18

मेरे द्वारा की गई भाषा की गलतियों के लिए क्षमा करें। जब एनएफएस द्वारा साझा किए गए फ़ोल्डरों की गणना करता है, तो मैं पासवर्ड पूछने से रोकने की कोशिश कर रहा हूं:

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

मैंने कई ऑनलाइन संसाधन जैसे github और अन्य लेखक के पदों को लाल कर दिया है, लेकिन मेरे लिए कुछ भी काम नहीं करता है ...

मैंने कोशिश की कि निर्देश यहाँ मिले । मेरे पास काम करने का गहरा ज्ञान नहीं है। तो क्या कोई मेरी समस्या का सही समाधान दे सकता है?


क्या मैं विनम्रतापूर्वक यह स्वीकार करने का अनुरोध कर सकता हूं कि अब यह वैग्रांट डॉक्स में शामिल हो गया है?
तय्ये

सबसे पहले आपको nfs-serverअपने मशीन पर स्थापित सेवा की जांच करनी होगी ।
गम्बित

जवाबों:


32

आधिकारिक वैग्रांत डॉक्स अब इसे कवर करते हैं: https://www.vagrantup.com/docs/synced-folders/nfs.html#root-privilege-requirement

आपको /etc/sudoersफ़ाइल में प्रविष्टियों को जोड़ने की जरूरत है , और इसे संपादित करने का तरीका टर्मिनल पर टाइप करना है:sudo visudo

अपना पासवर्ड टाइप करें, और आप फ़ाइल को संपादित कर रहे हैं। आप इन पंक्तियों को नीचे पेस्ट करना चाहते हैं (यह निर्भर करता है कि आप OS X या Linux पर Vagrant चला रहे हैं)

यदि आप vim से परिचित नहीं हैं , तो यह खुलता है, इस पृष्ठ ने मदद की । मूल रूप से, नीचे दिए गए पाठ के उपयुक्त ब्लॉक को कॉपी करें। फिर, विडोको में, उस स्थान पर जाएं जहां आप फ़ाइल में फ़ाइल पेस्ट करना चाहते हैं (फ़ाइल का अंत ठीक है), और सम्मिलित मोड में जाने के लिए "i" को हिट करें। CMD + V अपने पाठ को चिपकाने के लिए। फिर, ईएससी को मारो, फिर :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

और लिनक्स में ये प्रविष्टियाँ होनी चाहिए:

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

ध्यान दें कि ये परिवर्तन वैग्रांट के एक संस्करण से दूसरे में होते हैं, इसलिए उपरोक्त पुराना हो सकता है। महत्वपूर्ण बात यह है कि डॉक्स अब इसे कवर करते हैं।


अजीब तरह से यह मेरे लिए काम नहीं कर रहा है, भले /var/log/auth.logही इसमें केवल कमांड शामिल हैं जो वहां सूचीबद्ध हैं और मैं मैन्युअल रूप से सत्यापित कर सकता हूं कि sudo अनुमतियां काम कर रही हैं।
TGR

1
मुख्य sudoers फ़ाइल को संपादित करने के बजाय, मैं /etc/sudoers.dओएस को अपडेट करते समय भविष्य के टकराव से बचने के लिए इसे एक नई फ़ाइल के रूप में जोड़ने की सलाह देता हूं । उबंटू पर: sudo visudo -f /etc/sudoers.d/vagrant-nfsया OSX:sudo visudo -f /private/etc/sudoers.d/vagrant-nfs
एमिल विक्रोप्म

1
इससे मदद मिली, धन्यवाद! विम एडिटर के आस-पास जाने के लिए आपकी सलाह के लिए बस एक त्वरित टिप्पणी : sudo EDITOR=nano visudoकमांड के साथ बस ओपन विडो , जो आपको विम को पूरी तरह से बायपास करने की अनुमति देता है ।
पेट्र सिबुल्का

2

सटीक संस्करण वैग्रंट संस्करणों के बीच बदल सकते हैं, इसलिए उन लोगों को सूचीबद्ध करना असंभव है जो हमेशा काम करेंगे।

वैसे भी, में sudoers नियम इस सार अभी भी काफी करीब होना चाहिए। अगर यह आपके Vagrant संस्करण के लिए वास्तविक आदेशों को प्रकट करता है और तदनुसार नियमों को अनुकूलित करता है, तो /var/log/auth.log देखें।


धन्यवाद, लेकिन मैंने इस समाधान की कोशिश बहुत पहले की थी - यह मेरे लिए काम नहीं करता है।
तैमूर फैज़्रखमानोव

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

वैग्रांटफाइल में -इन , nfs_export: falseके अंत में जोड़कर config.vm.synced_folder, मेरे लिए इसे हल किया।

यदि आपके पास पहले से ही एक काम करने वाला nfs-config है, और इसे शुरू करने के लिए प्रत्येक बार इसे अधिलेखित करने के लिए आपके Vagrant की आवश्यकता नहीं है, तो आप केवल लेखन को निर्यात-फ़ाइल में अक्षम कर सकते हैं।

यह टकराव की समस्या को भी हल करता है, यदि आपके पास अधिक है तो एक वैगरेंट एक ही फ़ोल्डर तक पहुंचने की कोशिश कर रहा है, उदाहरण के लिए 2 लगभग समान वैग्रान्ट हैं, एक रनिंग php 5.6 और एक रनिंग php 7.2।


0

TL और DR: निम्नलिखित ओवरराइड जोड़ें ।vm.synced_folder ",", "/ योनि", अक्षम: सही

तर्कसंगत: डिफ़ॉल्ट रूप से 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

"टीएल एंड डीआर" लोगों को प्यार होगा! चीयर्स।
लुइस मिलानी

1
धन्यवाद! ऊपर
उठाना

अपने "टीएल एंड डीआर" की वजह से आप सभी अपवोट के लायक हो सकते हैं, लेकिन सच्चाई यह है कि आपके जवाब से मुझे मदद नहीं मिली। इसलिए नहीं कि यह अच्छा नहीं है, लेकिन जो समस्या मुझे हो रही थी, वह पहली जगह में पूछे गए सवाल से थोड़ी अलग थी। फिर भी, आपके अच्छे रवैये के लिए धन्यवाद। :)
लुइस मिलानी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.