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\"",}

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

相关文章

1、安装Apache。 1)执行如下命令,安装Apache服务及其扩展包...
一、先说一下用ansible批量采集机器信息的实现办法: 1、先把...
安装配置 1. 安装vsftpd 检查是否安装了vsftpd # rpm -qa | ...
如何抑制stable_secret读取关键的“net.ipv6.conf.all.stabl...
1 删除0字节文件 find -type f -size 0 -exec rm -rf {} ...
## 步骤 1:安装必要的软件包 首先,需要确保系统已安装 `dh...