2014-02-07 7 views
3

Chef Git 리소스를 사용하여 Windows 응용 프로그램을 설치하는 몇 가지 예를 보았습니다. 이 문제에 대해 두 가지 질문이 있습니다.요리사를 사용하여 Windows 응용 프로그램 설치

Git에서 사용할 수 없으며 Chef 커뮤니티에 기존 요리 책이없는 Windows 응용 프로그램을 설치하는 가장 좋은 방법은 무엇입니까?

정적 URL로 호스팅되는 Windows 설치 프로그램을 다운로드하여 설치 하시겠습니까? 나는 단지 git repo에서 호스트하고 끌어낼 수 있다고 가정하지만 wget과 비슷한 공급자 사이트에서 직접 가져 오는 좀 더 우아한 방법이 있는지 궁금하십니까?

일단 다운로드 한 Windows Installer를 어떻게 실행하고 설치 루틴 중에 요청 된 매개 변수를 제공합니까? 예 : "bash [compile_app_name]"을 실행하고 설치 유틸리티 (설치 디렉토리 등)가 요구하는 매개 변수를 요리사 레서피에 어떻게 포함 시키나요?

답변

1

지금까지 "우수 사례"이지만 here을 통해 내 방식을 해킹했습니다. 주로 windowscookbook을 사용합니다. 기본적으로 나는 windows resource docs 메인을 읽고 chef-client/solo를 반복해서 실행했다.

3

Windows cookbook에는 windows_package LWRP가 포함됩니다. 이 설명서에는 URL에서 설치하는 방법을 비롯하여 몇 가지 예제가 포함되어 있습니다. 그러나 어떤 경우에는 항상 잘 작동하지 않는 것으로 나타났습니다. 예를 들어, 제거 프로세스가 실패하는 경우가 있습니다. 내 요리 책에 집에서 조리법을 사용했습니다. 완벽하지는 않지만 다운로드 및 설치 프로세스를 일부 제어 할 수 있습니다. 그것은 단순화 비트의 액션

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 

설치하되 이것의 요점이다

(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)을 만든다.

0

거기에있는 기존의 요리 책 중 일부는 Windows 플랫폼을 지원하지만 내 경험에 의하면 그들은 꽤 버그가있는 경향이 있습니다. chocolatey coobook으로 더 많은 성공을 거두었습니다.

관련 문제