puppet insere duas linhas como uma em um arquivo de configuração

3

Eu criei o próximo arquivo de manifesto do 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"',}
 }

Depois de aplicar o manifesto, eu verifico /etc/sysconfig/vncserver e se parece com isso:

VNCSERVERS=6:root\nVNCSERVERARGS[6]="-geometry 1152x864"

Em vez de estar separado em duas linhas como esta:

VNCSERVERS=6:root
VNCSERVERARGS[6]="-geometry 1152x864"

Eu usei o mesmo formato ao definir o arquivo /etc/skel/.vimrc e ele funcionou como um encanto, então não entendi por que ele não funciona ao tentar definir /etc/sysconfig/vncserver , acredito que tenha algo a ver com o aspas duplas "" . Qualquer ajuda seria apreciada!

    
por Itai Ganot 25.07.2013 / 15:31

1 resposta

5

Você precisa usar aspas duplas ( " ") em vez de aspas simples ( ' ). Assim como o shell, perl e outras linguagens, as aspas simples no Puppet indicam uma string literal e inibem a interpolação variável interpretação de escapes de backslash.

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

Observe que eu tive que escapar das aspas duplas dentro da string.

    
por 25.07.2013 / 15:32