簡體   English   中英

當資源被聲明為抽象資源類型時,木偶清單給出錯誤

[英]puppet manifest giving error when resources are declared as abstract resource types

我在木偶中讀到,也可以在清單中使用Resource []語法聲明資源。 我在下面的清單中寫了,但給出了錯誤

Error: Could not parse for environment production: Syntax error at 'NO'; expected '}' at /etc/puppet/manifests/no.pp:3 on node pk-docker-01.cs1cloud.internal
Error: Could not parse for environment production: Syntax error at 'NO'; expected '}' at /etc/puppet/manifests/no.pp:3 on node pk-docker-01.cs1cloud.internal


file { '/var/NO/tmp' : ensure => directory,
}
Resource[User] {"NO":

    ensure => present ,
    password => 'admin@123',
}

group { no :
    ensure => present ,
}

謝謝

您參考的文檔適用於Puppet 4.2。 您可以在此處找到Puppet 3.8參考。

3.8不支持您使用的聲明類型。 無論哪種方式,都應使用標准file{ 'dfsf': }資源聲明,因為它與更多版本的puppet兼容。

我檢查了Puppet 3.8文檔中的資源,沒有看到抽象資源,但這並不意味着該功能不存在。 話雖如此,我還在“ 數據資源類型”頁面上找到了以下信息和示例。 在3.8中,資源類型可能需要用引號引起來,如以下示例所示:

# A resource declaration using a resource data type:
File { "/etc/ntp.conf":
  mode  => "0644",
  owner => "root",
  group => "root",
}

# Equivalent to the above:
Resource["file"] { "/etc/ntp.conf":
  mode  => "0644",
  owner => "root",
  group => "root",
}

# A resource default:
File {
  mode  => "0644",
  owner => "root",
  group => "root",
}

因此,您可以對代碼嘗試以下操作,看看它是否可以解決問題:

file { '/var/NO/tmp' : ensure => directory,
}
Resource["user"] {"NO":

    ensure => present ,
    password => 'admin@123',
}

group { no :
    ensure => present ,
}

不過,我最好的建議是在查看Puppet文檔時要特別小心。 在計划對生產環境進行更改時,請確保始終查看正在運行的版本,而不僅僅是嘗試了解即將發布的功能等。

我希望這有幫助!

暫無
暫無

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

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