Você pode usar o módulo PuppetLabs Concat para inserir partes dinamicamente no arquivo rc.local
, assim: p>
Defina o arquivo como um arquivo de concat e adicione um cabeçalho (comentário hash-bang, "gerenciado por Puppet", etc.) - observe o abaixo pode não funcionar, não tenho certeza se o tratamento de nova linha do Puppet está no topo do meu cabeça!
concat { '/etc/rc.local':
ensure => present,
}
concat::fragment { '00_rc.local_header':
target => '/etc/rc.local'
content => '#!/bin/bash\n# This file is manageed by Puppet, do not modify!',
order => '01'
}
Adicione suas peças personalizadas, certificando-se de especificar o valor correto de target
e um valor de order
maior do que o cabeçalho:
concat::fragment { '05_rc.local_custom':
target => '/etc/rc.local',
content => template('path/to/template.erb'),
order => '05'
}
concat::fragment { '15_rc.local_custom_2':
target => '/etc/rc.local',
source => 'puppet:///modules/mymodule/myfile.txt',
order => '06'
}
Adicione o rodapé exit 0
:
concat::fragment { '99_rc.local_footer':
target => '/etc/rc.local',
content => 'exit 0\n',
order => '99'
}
Et fin!
Você pode usar concat::fragment
em várias subclasses (e também vários módulos, embora isso realmente não seja recomendado!), desde que você defina o valor correto de target
e tenha esse arquivo declarado como um recurso concat
. O parâmetro order
permite posicionar elementos dentro do arquivo.
Verifique o leiame de uso do módulo para saber mais.