2014-07-19 28 views
5

dan değiştirilmesiyle ilgili değişiklikler, sınama sanal sanal makinelerinde test-kitchen kullanarak şef tarifi testi yapıyorum. kitchen test'u her çalıştırdığımda, standart yerdeki (Amazon) şef omnibus yükleyicisinin bir kopyasını indiriyor. Sorun şu ki, evde olduğum ve bu indirmelerin her biri zaman alıyor ve aylık ağ kullanımımıma ekliyor.Kitchen-vagrant indiricinin şefin

Test-mutfak/mutfak-vagrant/her ne olursa olsun, indirmelerin yerel bir önbellekten gelmesi için yapılandırmanın bir yolu var mı? Bilgisayarımda bir önbellek proxy web sunucusu kurduysam, şef indirmesi için kullanacağı vagrant örneği yapılandırmak için test-mutfak alabilir miyim?

cevap

1

Evet - süreç this gist belgelenen ancak kısaca edilir:

kullanın ERB sizin .kitchen.yml yılında: bir proxy kullanımı Polipo çalıştırmak için

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

talimatlar ancak herhangi önbellek proxy kullanabilirsiniz sen seversin.