Использование модуля yum в ansible для установки нескольких версий rpm

#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 версии в любое время..