#ansible #yum
Вопрос:
У меня есть rpm моего приложения. Я использую ansible для развертывания и установки rpm в нескольких службах. В случае сбоя установки rpm я хочу сохранить только предыдущую версию rpm, которая была установлена. Например, если я установлю rpm v15, а затем v18 и v18 выйдут из строя, я хочу сохранить v15 и отменить изменения в установке v18.
При использовании rpm я могу легко установить несколько версий одних и тех же rpm с помощью следующей команды :
rpm -ihv --oldpackage my-rpm-18.rpm
Есть ли способ сделать это с помощью модуля yum в ansible ?
Ответ №1:
Вы можете попытаться установить последнюю версию, а block
затем использовать rescue
ее, чтобы вернуться к нужной версии в случае ошибки:
- block
- yum:
name: my-rpm
state: latest
rescue:
- yum:
name: my-rpm-18
state: present
Комментарии:
1. Это хорошее решение, но оно недостаточно хорошо. Yum удаляет предыдущую версию, я не хочу ее удалять. Я хочу, чтобы в любое время были установлены 2 версии моего rpm.
2. Если ваш резервный rpm всегда имеет одну и ту же версию и вы достаточно уверены, что пакет не выйдет из строя, не могли бы вы просто передать список различных версий, которые вы хотите установить?
name: [my-rpm-15, my-rpm17]
?3. Я не хочу переустановить предыдущую версию, я хочу сохранить 2 версии в любое время..