文件路径必须是完全限定的-Puppet
我刚开始学习puppet,我有一个关于在类中使用变量的基本问题。这是我的课文件路径必须是完全限定的-Puppet,puppet,Puppet,我刚开始学习puppet,我有一个关于在类中使用变量的基本问题。这是我的课 # == Class: mysql::configure_mysql class mysql::configure_mysql inherits mysql { $mysql_backup = "/var/mysql_backup" #Create directories file { 'mysql_backup': path => '($mysql_backup)', ens
# == 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)'
有人能帮我声明一个变量并使用它吗
我已将此作为参考:
谢谢文件标题必须是文件的绝对路径
file { '/your/full/file/path/here':
path => "${mysql_backup}"
ensure => 'directory',
}
路径应设置为:
path => $mysql_backup,
在您的案例中,它不起作用的原因是变量(如$mysql\u backup)没有插入单引号。将单引号更改为双引号会有所帮助,但是您还需要删除多余的(..)
括号。'
是编码语言中的字符串文字。您需要解析变量$mysql\u backup
。您的资源实际上使用了字符串($mysql\u backup)
。您还需要删除这些偏执,因为它们只是一个语法错误。由于这些原因,'($mysql\u backup)
需要更改为$mysql\u backup
。您也可以在变量周围加上双引号,但这没有意义
file { 'mysql_backup':
path => $mysql_backup,
ensure => 'directory',
}
Puppet还使用文件资源的标题作为路径,因此您可以将资源缩短为:
file { $mysql_backup: ensure => 'directory' }
另外,您能告诉我在哪里可以存储全局变量,以及如何在不同的模块中使用它们吗?非常感谢。@Adithya Puppet可以使用的全局变量可以从Facter(系统定义的文本全局变量)或数据(现在是Hiera,后来是Puppet数据提供程序;这些变量将由您定义)访问。签出以下链接:。不需要更改标题,但需要在标题或路径参数中指定路径。按照您所做的方式修复引号将实现后者。