我刚从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
由于
答案 0 :(得分:3)
''
是编码语言中的字符串文字。您需要解析变量$mysql_backup
。您的资源实际上是使用字符串($mysql_backup)
。您还需要删除这些parantheses,因为它们只是语法错误。出于这些原因,'($mysql_backup)'
需要更改为$mysql_backup
。你也可以在变量周围加上双引号,但没有意义。
file { 'mysql_backup':
path => $mysql_backup,
ensure => 'directory',
}
Puppet还使用文件资源的标题作为路径,因此您可以将资源缩短为:
file { $mysql_backup: ensure => 'directory' }
答案 1 :(得分:0)
文件的标题必须是文件的绝对路径。
file { '/your/full/file/path/here':
path => "${mysql_backup}"
ensure => 'directory',
}
答案 2 :(得分:0)
路径应设置为:
path => $mysql_backup,
它在你的情况下没有工作的原因是变量(如$ mysql_backup)没有用单引号插值。将单引号更改为双引号会有所帮助,但是您还需要删除无关的(..)
括号。