2014-07-19 3 views
5

에서 요리사를 다운로드하는 장소 변경 나는 방황하는 가상의 테스트 - 주방을 사용하여 일부 요리사 제조법 테스트를하고 있습니다. kitchen test을 실행할 때마다 표준 장소 (아마존)에서 요리사 옴니버스 설치 프로그램 사본을 다운로드합니다. 문제는 내가 집에 있고, 다운로드에 각각 시간이 걸리고 월간 네트워크 사용량이 늘어나는 것입니다.주방장이

테스트 키친/주방 - 방랑제/기타를 구성하여 로컬 캐시에서 다운로드하도록하는 방법이 있습니까? 내 PC에 캐싱 프록시 웹 서버를 설치 한 경우, cheag 다운로드에 사용하기 위해 방황하는 인스턴스를 구성 할 테스트 키친을 얻을 수 있습니까?

답변

1

예 - 과정은 this gist에 설명하지만, 짧은에 있습니다

사용 ERB 당신의 .kitchen.yml에 : 프록시 사용 Privoxy를 실행을위한

<% 
require 'socket' 

def local_ip 
    @local_ip ||= begin 
    # turn off reverse DNS resolution temporarily 
    orig, Socket.do_not_reverse_lookup = Socket.do_not_reverse_lookup, true 

    UDPSocket.open do |s| 
     s.connect '64.233.187.99', 1 
     s.addr.last 
    end 
    ensure 
    Socket.do_not_reverse_lookup = orig 
    end 
end 

def local_port ; 8123 ; end 
def http_proxy_url ; "http://#{local_ip}:#{local_port}" ; end 

def proxy_running? 
    socket = TCPSocket.new(local_ip, local_port) 
    true 
rescue SocketError, Errno::ECONNREFUSED, 
    Errno::EHOSTUNREACH, Errno::ENETUNREACH, IOError 
    false 
rescue Errno::EPERM, Errno::ETIMEDOUT 
    false 
ensure 
    socket && socket.close 
end 
%> 
--- 
<% if proxy_running? %> 
driver: 
    http_proxy: <%= http_proxy_url %> 
    https_proxy: <%= http_proxy_url %> 
    provision_command: "env http_proxy=<%= http_proxy_url %> bash -c 'curl -L http://www.getchef.com/chef/install.sh | bash'" 

provisioner: 
    chef_omnibus_url: http://www.getchef.com/chef/install.sh 
<% end %> 

지침,하지만 당신은 어떤 캐싱 프록시를 사용할 수 있습니다 당신이 좋아.