कठपुतली से घुड़सवार विभाजन (fstab + आरोह बिंदु) कैसे प्रबंधित करें


14

मैं कठपुतली से घुड़सवार विभाजन का प्रबंधन करना चाहता हूं जिसमें /etc/fstabमाउंट बिंदुओं के रूप में उपयोग किए जाने वाले निर्देशिकाओं को संशोधित करना और बनाना शामिल है । mountसंसाधन प्रकार अपडेट fstabठीक है, लेकिन का उपयोग कर fileमाउंट पॉइंट बनाने के लिए थोड़ा मुश्किल है।

उदाहरण के लिए, डिफ़ॉल्ट रूप से निर्देशिका का स्वामी रूट है और यदि माउंटेड पार्टीशन के रूट (/) में कोई अन्य स्वामी है, तो कठपुतली इसे बदलने की कोशिश करेगी और मैं यह नहीं चाहता। मुझे पता है कि मैं उस निर्देशिका का स्वामी सेट कर सकता हूं, लेकिन मुझे ध्यान क्यों रखना चाहिए कि माउंटेड पार्टीशन पर क्या है? मैं केवल इतना करना चाहता हूं कि इसे माउंट करें। क्या माउंट पॉइंट के रूप में उपयोग की जाने वाली निर्देशिका की अनुमतियों की परवाह नहीं करने के लिए कठपुतली बनाने का एक तरीका है?

यह मैं अभी उपयोग कर रहा हूँ:

define extra_mount_point(
    $device,
    $location = "/mnt",
    $fstype = "xfs",
    $owner = "root",
    $group = "root",
    $mode = 0755,
    $seltype = "public_content_t"
    $options = "ro,relatime,nosuid,nodev,noexec",
) {
    file { "${location}/${name}":
        ensure  => directory,
        owner   => "${owner}",
        group   => "${group}",
        mode    => $mode,
        seltype => "${seltype}",
    }

    mount { "${location}/${name}":
        atboot  => true,
        ensure  => mounted,
        device  => "${device}",
        fstype  => "${fstype}",
        options => "${options}",
        dump    => 0,
        pass    => 2,
        require => File["${location}/${name}"],
    }
}

extra_mount_point { "sda3": 
    device   => "/dev/sda3",
    fstype   => "xfs",
    owner    => "ciupicri",
    group    => "ciupicri",
    $options => "relatime,nosuid,nodev,noexec",
}

मामले में यह मायने रखता है, मैं कठपुतली-0.25.4-1.fc13.noarch.rpm और कठपुतली-सर्वर-0.25.4-1.fc13.noarch.rpm का उपयोग कर रहा हूं।


PS undefस्वामी, समूह और अनुमतियों के लिए ठीक काम करता है, लेकिन SELinux के लिए नहीं। यदि विभाजन पहले से ही घुड़सवार हैं, तो कठपुतली शिकायत करती है:

puppetd[18052]: Failed to set SELinux context system_u:object_r:public_content_t:s0 on /mnt/sda3
puppetd[18052]: (/File[/mnt/sda3]/seluser) seluser changed 'unconfined_u' to 'system_u'
puppetd[18052]: Failed to set SELinux context unconfined_u:object_r:mnt_t:s0 on /mnt/sda3
puppetd[18052]: (/File[/mnt/sda3]/seltype) seltype changed 'public_content_t' to 'mnt_t'

माउंट किए गए विभाजन की अनुमतियाँ हैं:

drwxr-xr-x. root root unconfined_u:object_r:public_content_t:s0 /mnt/sda3/

जबकि कठपुतली द्वारा बनाए गए आरोह बिंदु की अनुमति हैं:

 drwxr-xr-x. root root system_u:object_r:mnt_t:s0       /mnt/sda3/

पीपीएस I ने इस अजीब व्यवहार के लिए एक बग की सूचना दी है ।

जवाबों:


9

आप कठपुतली को किसी भी निर्धारित मापक को प्रबंधित करने के लिए नहीं बता सकते हैं undef

file { "${location}/${name}":
    ensure                  => directory,
    owner                   => undef,
    group                   => undef,
    mode                    => undef,
    selinux_ignore_defaults => true,
}

इस घटना में, यदि निर्देशिका बढ़ते से पहले मौजूद नहीं है, तो इसे उपयोगकर्ता और समूह के रूप में बनाया जाएगा, जिसे puppetd(संभवतः मूल: पहिया) के रूप में और डिफ़ॉल्ट umask के साथ शुरू किया गया था। कठपुतली को इस बात की परवाह नहीं होगी कि ये सृष्टि के समय या बाद के किसी भी रन पर क्या सेट हैं।


वैकल्पिक रूप से, यदि आप आश्वासन के लिए थोड़ी जटिलता का व्यापार करना चाहते थे, तो आप यह निर्धारित करने के लिए एक सक्रिय तथ्य का उपयोग कर सकते हैं कि सक्रिय माउंट क्या हैं और यह पूर्व या पोस्ट-माउंटेड होने के आधार पर निर्देशिका अनुमतियों को सेट करने के लिए एक स्विच स्टेटमेंट है।


undefचाल चली। निर्देशिकाएं निम्नलिखित अनुमति से बनाई गई हैं rwxr-xr-x. root root system_u:object_r:mnt_t:s0जो मेरे साथ ठीक हैं।
क्रिस्टियन सियुपिटु

1
कृपया selrange => undef, selrole => undef, seltype => undef, seluser => undef,उत्तर में जोड़ें ।
क्रिस्टियन सियुपिटु

क्या कठपुतली की जड़ को "सुनिश्चित => घुड़सवार" के साथ प्रबंधित करने की कोशिश में कठपुतली होने का जोखिम नहीं होगा?


2

मेरे पास एक कस्टम तथ्य है (लिनक्स के साथ काम करता है केवल एटीएम) जो सिस्टम पर वर्तमान में माउंट किए गए सभी स्थानीय माउंटों को वापस कर देगा। यह बहुत ही सरल है, लेकिन मेरे लिए काम करता है - ऐसा लगता है कि आपको इसके लिए कुछ उपयोग मिल सकता है। वैसे भी, मैंने इसे जीथब पर फेंक दिया: https://github.com/justintime/puppet/tree/master/justintime-localmounts

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.