Puppet - Como instalar o git 1.8.x que não está nos pacotes padrão

Puppet - Como instalar o git 1.8.x que não está nos pacotes padrão

Como você automatizaria a instalação de uma versão específica do git usando o fantoche?

apt-get update && apt-get install git-coreno meu servidor Ubuntu 12.04 resulta na versão git 1.7.9.
Devo ter 1.7.10 ou mais recente.

Existem duas opções que posso ver. 1. Adicione o ppa
2. Instale o git da fonte

Acho que adicionar um ppa seria mais fácil do que compilar a partir do código-fonte, e é isso que estou tentando.

Eu tentei usar omódulo puppetlabs/aptpara instalar o git-core ppa, mas minha versão git ainda é 1.7.9 após a execução do fantoche.

root@gitlab:~# puppet module list
/etc/puppet/modules
├── puppetlabs-apt (v1.2.0)
├── puppetlabs-git (v0.0.3)
├── puppetlabs-stdlib (v4.1.0)
└── ruby (???)


root@gitlab:~# cat /etc/puppet/manifests/git.pp  

class { 'apt': }
apt::ppa { 'ppa:git-core/ppa': 
  before => Exec['apt-get update'],

}

exec{'apt-get update':
  path => ['/usr/bin', '/usr/sbin'],
}

package {'git-core':
   ensure => latest,
   require => Exec['apt-get update'],
}

root@gitlab:~# puppet apply /etc/puppet/manifests/git.pp --verbose
Info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/facter_dot_d.rb
Info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/pe_version.rb
Info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/puppet_vardir.rb
Info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/root_home.rb
Warning: Config file /etc/puppet/hiera.yaml not found, using Hiera defaults
Info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/facter_dot_d.rb
Info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/pe_version.rb
Info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/puppet_vardir.rb
Info: Loading facts in /etc/puppet/modules/stdlib/lib/facter/root_home.rb
Info: Applying configuration version '1379214336'
Notice: /Stage[main]//Exec[apt-get update]/returns: executed successfully
Notice: Finished catalog run in 5.80 seconds
root@gitlab:~# git --version
git version 1.7.9.5

Responder1

git-corenão é o pacote nesse PPA - você deseja git(e provavelmente remover git-coredo repositório do Ubuntu).

Responder2

Como Shane mencionou, você deve usar gitem vez de git-corena definição do pacote.

Também não há necessidade de criar a Exec['apt-get update']dependência, pois o módulo já está cuidando disso.

Código do módulo:

exec { "add-apt-repository-${name}":
  ...
  notify    => Exec['apt_update'],
  ...
}

Então, se você quiser manter o git atualizado o tempo todo, você deve fazer algo assim:

class {'ntp': always_apt_update => true, }

e

package {'git':
 ensure => latest,
 require => Apt::Ppa['ppa:git-core/ppa'],
}

informação relacionada