gpt4 book ai didi

vagrant - 改变厨房 Vagrant 从哪里下载 Chef

转载 作者:行者123 更新时间:2023-12-03 22:28:46 26 4
gpt4 key购买 nike

我正在 vagrant virtuals 上使用 test-kitchen 进行一些 Chef 配方测试。每次跑kitchen test ,它正在从标准位置(亚马逊)下载厨师综合安装程序的副本。问题是我在家,每次下载都需要时间,并且增加了我每月的网络使用量。

有没有办法配置 test-kitchen/kitchen-vagrant/whatever 以便下载来自本地缓存?如果我在我的 PC 上设置了一个缓存代理网络服务器,我可以让 test-kitchen 配置 vagrant 实例以将其用于厨师下载吗?

最佳答案

是 - 该过程记录在 this gist 中,但简而言之:

在您的 .kitchen.yml 中使用 ERB :

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

运行代理的说明使用 polipo,但您可以使用任何您喜欢的缓存代理。

关于vagrant - 改变厨房 Vagrant 从哪里下载 Chef ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24841642/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com