puppet 将两行作为一个行插入到配置文件中

puppet 将两行作为一个行插入到配置文件中

我已经创建了下一个 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\"",}

请注意,我必须转义字符串内的双引号。

相关内容