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

前端之家收集整理的这篇文章主要介绍了linux – 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时不起作用,我相信它有一些东西用双引号做“”.
任何帮助,将不胜感激!

解决方法

您需要使用双引号(“”)而不是单引号(‘).就像shell,perl和其他语言一样,Puppet中的单引号表示文字字符串并禁止变量插值和反斜杠转义的解释.
file { '/etc/sysconfig/vncserver':
  content => "VNCSERVERS=\"6:root\"\nVNCSERVERARGS[6]=\"-geometry 1152x864\"",}

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

猜你在找的Linux相关文章