2016-07-29 60 views
2

我剛剛開始使用puppet,並且在課堂中使用變量時有一個基本問題。這是我的課文件路徑必須完全合格 - 木偶

# == Class: mysql::configure_mysql 
class mysql::configure_mysql inherits mysql { 

    $mysql_backup = "/var/mysql_backup" 

    #Create directories 
    file { 'mysql_backup': 
    path => '($mysql_backup)', 
    ensure => 'directory', 
    } 
} 

我得到一個錯誤

Error: Failed to apply catalog: Parameter path failed on File[mysql_backup]: File paths must be fully qualified, not '($mysql_backup)' 

是否有人可以幫助我如何聲明一個變量,並使用它呢?

我已經使用這個供參考:https://serverfault.com/questions/41577/how-to-fix-puppet-fully-qualified-parameter-path-error

感謝

回答

3

''是編碼語言中的字符串文字。您需要解決變量$mysql_backup。您的資源字面上使用字符串($mysql_backup)。您還需要刪除這些缺口,因爲它們只是語法錯誤。由於這些原因,'($mysql_backup)'需要更改爲$mysql_backup。你也可以在變量上加雙引號,但是沒有意義。

file { 'mysql_backup': 
    path => $mysql_backup, 
    ensure => 'directory', 
} 

木偶也使用文件資源作爲路徑的標題,所以你可以縮短你的資源:

file { $mysql_backup: ensure => 'directory' } 
+0

我確實嘗試了你的語法,它的確幫助了謝謝! – Adithya

+0

也可以請指導我在哪裏可以存儲全局變量,以及如何跨越不同模塊使用它們?我真的很感激。 – Adithya

+0

@Adithya Puppet可以使用的全局變量可以從Facter(由系統定義的字面全局變量)或數據(現在是Hiera,後來的Puppet數據提供程序;這些將由您定義)訪問。請查看以下鏈接:https://docs.puppet.com/facter/ https://docs.puppet.com/hiera/。 –

-1

文件的標題必須是你的文件absoloute路徑。

path => $mysql_backup, 

它之所以沒有工作你的情況是變量(如$ mysql_backup)沒有在單引號內插:

file { '/your/full/file/path/here': 
    path => "${mysql_backup}" 
    ensure => 'directory', 
    } 
+0

更改標題是沒有必要的,但無論是在標題確定的路徑或者路徑參數是。如你所做的那樣修復報價將做後者。 –

0

的路徑應該設置。將單引號更改爲雙引號會有所幫助,但是您還需要刪除多餘的(..)括號。