Использование шеф-повара для установки приложений Windows

Я видел несколько примеров установки приложений Windows с использованием ресурса Chef Git. У меня есть два вопроса по этому поводу:

Каков наилучший способ установки приложений Windows, которые недоступны в Git и не имеют готовых книг в сообществе Chef?

например загрузить и установить установщик Windows, размещенный на статическом URL-адресе? Я полагаю, что мог бы просто разместить его в репозитории git и вытащить, но интересно, есть ли более элегантный способ вытащить его прямо с сайта провайдера, похожего на wget?

Как запустить установщик Windows после загрузки и указать параметры, запрошенные во время процедуры установки? например что такое Windows без компиляции, эквивалентный :run, «bash [compile_app_name]», и как включить параметры, необходимые для утилиты установки (install dir и т. д.) в рецепте шеф-повара?


person 3z33etm    schedule 07.02.2014    source источник


Ответы (3)


Это, безусловно, «лучшие методы», но я взломал свой путь через здесь. В основном он использует windows поваренную книгу. В основном я читал основные документы ресурсов Windows и снова и снова запускал chef-client/solo.

person JJ Asghar    schedule 07.02.2014

поваренная книга Windows содержит windows_package LWRP. Документация включает несколько примеров, в том числе способ установки с URL-адреса. Однако я обнаружил, что в некоторых случаях это не всегда хорошо работает. Например, иногда происходит сбой процесса удаления. В своей кулинарной книге я использовала домашний рецепт. Это не идеально, но дает вам некоторый контроль над процессом загрузки и установки.

(1) Определите (или повторно используйте) механизм загрузки

def download_from_ftp package 
  ftp_info = data_bag_item(node.chef_environment, 'ftp-credentials')['credentials']['ftp']

  ftp_file_path="/#{package}"
  target = "#{node['downloads']}/#{package}" 

  remote_file "#{target}" do
    source "ftp://#{ftp_info['user']}:#{ftp_info['password']}@#{ftp_info['host']}/#{ftp_file_path}"
    action :create_if_missing
  end

  target
end

(2) Создайте действие :install

    action :install do
        package = "#{new_resource.name}_#{new_resource.build}.exe" 

        location = download_from_ftp(package)

        execute "install #{new_resource.name}" do
          command "call #{location} #{dir} /sp /verysilent /suppressmsgboxes"
        end
    end

Это немного упрощено, но суть в этом.

person Moshe Zvi    schedule 29.04.2014

Некоторые из существующих поваренных книг поддерживают платформу Windows, но, по моему опыту, в них довольно много ошибок. Большего успеха я добился с кулинарной книгой chocolatey.

person Noz    schedule 12.01.2016