У меня есть rpm (redis), который мне нужно установить на десятке серверов.
Версия Redis, доступная в EPEL, слишком старая (2.4.x). Поставщики программного обеспечения не предлагают онлайн-хранилище, которое я мог бы загрузить.
Мне нужно установить последние версии 2.6.x или 2.8.x (желательно 2.6.x)
Я пробовал следующие решения. У каждого свои проблемы.
Скомпилировать 2.8.x из исходного кода (не масштабируется, нужно повторять 12 раз)
Используйте модуль redis Puppet из Puppet Forge
Все модули марионетки либо недокументированы, либо устанавливаются с использованием старого URL-адреса Redis и, таким образом, привязаны к более старым версиям. Единственный манифест, который у меня должен работать, устанавливает максимальную версию 2.6.14, которая нарушает скрипты инициализации на Centos.
Единственный другой способ, который я вижу, - это создать собственное репо и найти место для его размещения. Для этого мне потребуется создать веб-сервер или ftp-сервер внутри компании, чего я действительно не хочу делать.
Конечно, есть более простой способ установить redis 2.6.x или 2.8.x на нескольких машинах, не так ли? Как еще это можно было сделать?
Мне удалось заставить это работать, используя существующий RPM от rpmfind.net.
Затем я поместил это в марионеточный манифест.
# Define a class
class redis_repo ($redis_url) {
package {'redis':
ensure => present,
source => "${redis_repo::redis_url}",
provider => 'rpm',
}
service {'redis':
ensure => running,
require => Package['redis'],
status => true, #Change to false if running redis 2.6.x
}
}
# Declare the class
# modify this url to change the install version
class { 'redis_repo':
redis_url => 'ftp://rpmfind.net/linux/remi/enterprise/6/remi/x86_64/redis-2.8.6-1.el6.remi.x86_64.rpm'
}
Просто «сделайте» на одном сервере, запустите его, распространите, распакуйте и «сделайте установку» на каждом. Или, если вы предпочитаете использовать rpms, просто создайте свой rpm на одном сервере, распространите его и установите. Нет необходимости создавать и размещать репозиторий. Это не похоже на развертывание на 1000 машин - не тратьте на автоматизацию больше времени, чем требуется для того, чтобы просто выполнить задачу.