Puppet : Указване на версия на пакет за инсталиране

Явно това не е възможно, но не мога да повярвам, че само аз имам нужда от това.

Искам да посоча версията на php за инсталиране, защото работя върху стар проект, изискващ php 5.2.

Всъщност моята виртуална машина е базирана на Oneiric с php 5.3

Имате ли някакво решение за това?


person JulienD    schedule 23.07.2012    source източник


Отговори (2)


Можете да посочите версия:

package { 'php' :
  ensure => '5.2' ,
}

Ако обаче тази версия на PHP RPM/Deb/package не е налична във вашето репо нагоре по веригата, тогава ще искате да:

  1. Намерете алтернативно репо, което има този пакет, и го добавете към вашия списък с репо
  2. Настройте свое собствено репо с пакета
  3. Инсталирайте от вашата файлова система, като предоставите път към пакета:

    package { 'php' :
      ensure => '5.2' ,
      source => '/some/path/to/php-5.2.rpm' ,
    }
    
person opsmason    schedule 23.07.2012
comment
Опитах решението за промяна на моя списък с предпочитания/източници, но срещам проблеми с изтеглянето на публичния ключ на archive.debian :s - person JulienD; 24.07.2012
comment
@opsmason: Трябва ли стойността на версията да е низ? можете ли да го посочите като ensure => 5.2? - person greenpool; 08.02.2015
comment
@greenpool: версията е низ. Вземете httpd-2.4.29 като пример:: 2.4.29 не е float, това е низ! - person opsmason; 13.12.2017

Това е доста близко до начина, по който използвам персонализирани apt хранилища в марионетка с техните gpg ключове

# put downloaded pgp keys into modulename/files/pgp/
# this will copy them all into /tmp
file { '/tmp/pgp-keys':
        ensure  => directory,
        recurse => true,
        source  => 'puppet:///modules/modulename/pgp',
}

# add any keys that you need
exec { 'apt-key add':
        command     => '/usr/bin/apt-key add /tmp/pgp-keys/number1.gpg.key &&/
                        /usr/bin/apt-key add /tmp/pgp-keys/number2.gpg.key',
        subscribe   => File['/tmp/pgp-keys'],
        refreshonly => true,
}

# make sure you add your custom apt repository
file { 'cassandra.sources.list':
        ensure  => 'present',
        path    => '/etc/apt/sources.list.d/cassandra.sources.list',
        source  => 'puppet:///modules/modulename/cassandra.sources.list',
        require => Exec['apt-key add'],
}

# update your package list
exec { 'apt-get update':
        command => '/usr/bin/apt-get update',
        require => File['cassandra.sources.list'],
}

# Install your specific package - I haven't actually used this yet, 
# based on answer by opsmason
package { 'cassandra':
        ensure  => '1.2.0',
        require => Exec['apt-get update'],
}
person StuartW    schedule 01.03.2013