日々精進

新しく学んだことを書き留めていきます

proxy環境下でknife solo prepareを実行すると「Bootstrapping Chef...」で処理がとまる

chefのプロキシ設定をしてないことが原因。いくつかプロキシ設定しないといけないところがあってややこしい。
が、knife solo initした時にできるChefリポジトリの中の.chef/knife.rbに以下を追加すれば環境変数http_proxyにのみプロキシのアドレスを書けばいい。

if ENV["http_proxy"]
  require 'rest-client'
  RestClient.proxy = ENV["http_proxy"]

  require 'uri'
  proxy_env = URI.parse(ENV["http_proxy"])
  proxy_user, proxy_pass = proxy_env.userinfo.split(":")

  http_proxy "http://#{proxy_env.host}:#{proxy_env.port}"
  https_proxy "http://#{proxy_env.host}:#{proxy_env.port}"
  http_proxy_user proxy_user
  http_proxy_pass proxy_pass
  https_proxy_user proxy_user
  https_proxy_pass proxy_pass
  no_proxy "192.168.*"
end

このコードの出典は下記。ありがたやー。
Chefのプロキシ設定 - Qiita