我已经创建了下一个 Puppet 清单文件:
node 'puppetmaster' {
package { "screen": ensure => "installed"}
$enhancers = [ "pixman","pixman-devel","libXfont","tigervnc-server" ]
package { $enhancers: ensure => "installed" }
file { '/etc/skel/.vimrc':
content => ":set nu\n :set incsearch\n :set ignorecase\n :set smartcase\n:set ts=2",}
file { '/root/.vimrc':
content => ":set nu\nset incsearch\n:set ignorecase\n:set smartcase\n:set ts=2",}
file { '/etc/sysconfig/vncserver':
content => 'VNCSERVERS="6:root"\nVNCSERVERARGS[6]="-geometry 1152x864"',}
}
应用清单后,我检查/etc/sysconfig/vncserver
它看起来像这样:
VNCSERVERS=6:root\nVNCSERVERARGS[6]="-geometry 1152x864"
而不是像这样分成两行:
VNCSERVERS=6:root
VNCSERVERARGS[6]="-geometry 1152x864"
我在设置文件时使用了相同的格式/etc/skel/.vimrc
,并且效果很好,所以我不明白为什么在尝试设置时它不起作用/etc/sysconfig/vncserver
,我相信这与双引号有关""
。任何帮助都将不胜感激!
答案1
您需要使用双引号("
“)而不是单引号('
)。与 shell、perl 和其他语言非常相似,Puppet 中的单引号表示文字字符串并禁止变量插值和反斜杠转义的解释。
file { '/etc/sysconfig/vncserver':
content => "VNCSERVERS=\"6:root\"\nVNCSERVERARGS[6]=\"-geometry 1152x864\"",}
请注意,我必须转义字符串内的双引号。