2014-07-19 17 views
5

Wykonuję test receptury szefa kuchni przy użyciu testowej kuchni na wirtualnych wirtualach. Za każdym razem, gdy uruchamiam kitchen test, pobiera się kopię instalatora omnibus szefa kuchni ze standardowego miejsca (Amazon). Problem polega na tym, że jestem w domu, a każde z tych pobierań wymaga czasu i zwiększa miesięczne wykorzystanie sieci.Zmiana miejsca, w którym kucharz-włóczęga ściąga szefa kuchni z

Czy istnieje sposób, aby skonfigurować test-kuchnia/kuchnia-włóczęga/cokolwiek, aby pobieranie pochodziło z lokalnej pamięci podręcznej? Jeśli skonfiguruję serwer proxy buforowania na moim komputerze, czy mogę dostać testową kuchnię, aby skonfigurować instancję Vagrant, aby użyć jej do pobrania przez szefa kuchni?

Odpowiedz

1

Tak - proces jest udokumentowany w this gist, ale w skrócie:

Używaj ERB w swoim .kitchen.yml:

<% 
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 %> 

instrukcjach prowadzenia Użyj proxy Polipo, ale można użyć dowolnego serwera proxy buforowania chciałbyś.

Powiązane problemy