Назад | Перейти на главную страницу

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, Я считаю, что это как-то связано с двойными кавычками "". Любая помощь будет оценена по достоинству!

Вам нужно использовать двойные кавычки ("") вместо одинарных кавычек ('). Подобно оболочке, Perl и другим языкам, одинарные кавычки в Puppet обозначают буквальную строку и запрещают интерполяцию переменных и интерпретацию обратных косых черт.

file { '/etc/sysconfig/vncserver':
  content => "VNCSERVERS=\"6:root\"\nVNCSERVERARGS[6]=\"-geometry 1152x864\"",}

Обратите внимание, что мне пришлось избегать двойных кавычек внутри строки.