LINUX.ORG.RU

Обновление ПО с помощью Puppet

 


0

1

Есть ПО Check Point, которое вручную установлено на ПК пользователей, версию которого необходимо обновить. Пытаюсь сделать через Puppet, но получаю ошибку в логах винды: </Stage[main]/Install_checkpoint/Package[E84.60_CheckPointVPN.msi]/ensure: change from ‘absent’ to ‘present’ failed: Failed to install: В процессе установки произошла неисправимая ошибка. (corrective)> В Puppet имеется два класса это класс на создание директории и копирование установочного пакета:

     class checkpoint {
     file { 'C:/Program Files/Automation/checkpoint':
     ensure  => directory,
    #owner   => 'Administrator',
    #group   => 'Administrators',
     owner   => 'Администратор',
     group   => 'Администраторы',
}

-> file { 'C:/Program Files/ Automation/checkpoint/E84.60_CheckPointVPN.msi':
    ensure  => file,
    #owner   => 'Administrator',
    #group   => 'Administrators',
    owner   => 'Администратор',
    group   => 'Администраторы',
    source  => 'puppet:///modules/checkpoint/E84.60_CheckPointVPN.msi',
}

} На этом этапе все отрабатывает хорошо.

Также есть класс, который описывает установку ПО:

    class install_checkpoint {
    package { ‘E84.60_CheckPointVPN.msi’:
    provider => ‘windows’,
    ensure => installed,
    source => ‘C:/Program 
    Files/Automation/checkpoint/E84.60_CheckPointVPN.msi’,
    install_options => [’/quiet’],
    }
   }

Здесь возникают проблемы, т.к. если ставить на чистый пк, всё ок. Подскажите, что нужно дописать для переустановки пакета?



Последнее исправление: londonfan (всего исправлений: 3)

package { ‘E84.60_CheckPointVPN.msi’

Имя package должно точно совпадать с таковым после установки, так puppet проверяет что пакет уже установлен и не надо пытаться его ставить.

Подсмотреть название можно например выполнив puppet resource package

Flotsky ★★
()
Последнее исправление: Flotsky (всего исправлений: 1)
Ответ на: комментарий от londonfan
  1. Назвать имя package ресурса правильно. Правильное название подсмотреть из вывода puppet resource package на машине, где это ПО установлено
  2. Смотря на puppet resource package до обновления и после понять что меняется в package, если версия, то явно указать в package новую версию в ensure, если что-то ещё - думать по месту, в ссылке выше это описано

Это всё присказка как правильно. Теперь к change from ‘absent’ to ‘present’ failed: Failed to install:. Puppet не делает ничего необычного, он просто запускает msi пакет к установке как будто из консоли когда не находит в системе установленный пакет по имени совпадающий с указанным именем package.
И раз уж это падает, то надо запустить на тестовой машине это руками и посмотреть почему падает. Вдруг пакет не умеет обновляться? Или ключа /quiet не знает. Или ещё 100500 причин, которые станут понятны после запуска руками.

Как альтернатива - запустить на клиенте, где это падает puppet с ключем --debug, читать что туда понапишется и возможно станет что-то понятнее.

Flotsky ★★
()
Ответ на: комментарий от Flotsky

Проблема в том, что пакет, который устанавливается, он версии ниже. Как переустановить пакет на версию ниже, я так и не додумался пока к сожалению.

londonfan
() автор топика