簡體   English   中英

如何在puppet清單中的一個類中添加多個源以及如何聲明?

[英]How to add multiple source in one class in puppet manifest and how to declare that?

class practice_oracle
{
$files_inst = [
/tmp/packages/compat-libstdc++-33-3.2.3-47.3.x86_64.rpm,
/tmp/packages/elfutils-libelf-0.125-3.ML5.x86_64.rpm,
/tmp/packages/elfutils-libelf-devel-0.125-3.ML5.x86_64.rpm,
/tmp/packages/gcc-4.6.3-2.fu2012.x86_64.rpm,
/tmp/packages/gcc-c++-4.6.3-2.fu2012.x86_64.rpm,
/tmp/packages/glib2-2.28.8-1.fc15.x86_64.rpm,
]
file {
$files_inst:
ensure => present,
owner => root,
group => root,
mode => 0755,
source => "puppet:///modules/practice_oracle/compat-libstdc++-33-32.3-47.3.x86_64.rpm",
source =>puppet:///modules/practice_oracle/elfutils-libelf-0.125-3.ML5.x86_64.rpm",
source => "puppet:///modules/practice_oracle/elfutils-libelf-devel-0.125-3.ML5.x86_64.rpm",
source => "puppet:///modules/practice_oracle/gcc-4.6.3-2.fu2012.x86_64.rpm",
source => "puppet:///modules/practice_oracle/gcc-c++-4.6.3-2.fu2012.x86_64.rpm",
}

在這段代碼中,我嘗試編寫多個源代碼,然后在代理計算機上運行,​​但在代理計算機上運行此腳本時,對於列表中的第一個包,所有包的大小都相同。
那么為這個腳本編寫什么代碼,以及我的代碼中的錯誤是什么。 請幫我解決這個問題。

你這樣做的方式是行不通的。 但是, file類型確實有一個recurse選項用於目錄。 您可以按如下方式使用:

 file { '/tmp/packages': ensure => directory, source => 'puppet://modules/practice_oracle", owner => 'root', group => 'root', mode => '0755', recurse => true } 

這將使用${::modulepath}/practice_oracle/files的整個目錄內容填充/tmp/packages目錄。

參考

https://docs.puppetlabs.com/references/latest/type.html#file-attribute-recurse

希望這可以幫助

在你的具體案例中:ptierno說的是什么。

通常,創建實用程序定義的類型:

define remote_file($dest_dir='/tmp/packages', $module='practice_oracle') {
    file {
        "$dest_dir/$title":
            ensure => present,
            owner => root,
            group => root,
            mode => 0755,
            source => "puppet:///modules/$module/$title",
    }
}

只是

remote_file { $file_inst: }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM