文件路径必须完全限定 - Puppet
File paths must be fully qualified - Puppet
我刚开始使用 puppet,我有一个关于在 class 中使用变量的基本问题。这是我的 class
# == 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
谢谢
文件的标题必须是文件的绝对路径。
file { '/your/full/file/path/here':
path => "${mysql_backup}"
ensure => 'directory',
}
路径应设置为:
path => $mysql_backup,
它在您的情况下不起作用的原因是变量(如 $mysql_backup)未插入单引号中。将单引号更改为双引号会有所帮助,但是您还需要删除无关的 (..)
括号。
''
是编码语言中的字符串文字。您需要解析变量 $mysql_backup
。您的资源实际上是在使用字符串 ($mysql_backup)
。您还需要删除那些括号,因为它们只是语法错误。由于这些原因,'($mysql_backup)'
需要更改为 $mysql_backup
。您也可以在变量周围加上双引号,但这样做没有意义。
file { 'mysql_backup':
path => $mysql_backup,
ensure => 'directory',
}
Puppet 还使用文件资源的标题作为路径,因此您可以将资源缩短为:
file { $mysql_backup: ensure => 'directory' }
我刚开始使用 puppet,我有一个关于在 class 中使用变量的基本问题。这是我的 class
# == 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
谢谢
文件的标题必须是文件的绝对路径。
file { '/your/full/file/path/here':
path => "${mysql_backup}"
ensure => 'directory',
}
路径应设置为:
path => $mysql_backup,
它在您的情况下不起作用的原因是变量(如 $mysql_backup)未插入单引号中。将单引号更改为双引号会有所帮助,但是您还需要删除无关的 (..)
括号。
''
是编码语言中的字符串文字。您需要解析变量 $mysql_backup
。您的资源实际上是在使用字符串 ($mysql_backup)
。您还需要删除那些括号,因为它们只是语法错误。由于这些原因,'($mysql_backup)'
需要更改为 $mysql_backup
。您也可以在变量周围加上双引号,但这样做没有意义。
file { 'mysql_backup':
path => $mysql_backup,
ensure => 'directory',
}
Puppet 还使用文件资源的标题作为路径,因此您可以将资源缩短为:
file { $mysql_backup: ensure => 'directory' }