Eu mantenho um servidor com arquivos criados localmente e faço pacotes .deb ou .rpm para esses softwares.
Em alguns casos em que não me incomodei em fazer nada sobre isso, faço um exec wget
para fazer o download do arquivo e um exec
com o método de extração, seja ele qual for, com creates
atributo apontando para o binário principal. Não vai lidar com atualizações, no entanto.
Para lidar com a atualização, faça a instalação exec
a refreshonly => true
e coloque um notify
no exec
para wget
.
Amostra:
exec { "/usr/bin/wget http://fileserver.domain/jboss/jboss-${version}.prd.tar.gz -O /tmp/jboss.tgz":
creates => '/tmp/jboss.tgz',
require => Package['wget'],
alias => 'wget_jboss',
}
exec { '/bin/tar xzvf /tmp/jboss.tgz':
cwd => '/opt',
creates => "/opt/jboss-${version}/bin",
user => 'jboss',
group => 'jboss',
require => [ User['jboss'], Exec['wget_jboss'], File["/opt/jboss-${version}"], ],
before => Service['jboss'],
alias => 'untar_jboss',
}