ネットワーク的にプロキシが必要なサーバに対して Chef (chef-solo) を実行する方法を試した.
フォワードプロキシ
フォワードプロキシ用のサーバを事前に用意しておく.今回は Squid を利用することにした.今回 nginx を使ったフォワードプロキシも試したけど,https のリクエストを通すことができなくて断念した経緯がある.
curl
でプロキシを設定して適当なサイトにアクセスできれば,正常に動いていると言える.
$ curl --proxy http://localhost:3128 http://example.com $ curl --proxy http://localhost:3128 https://example.com
クックブックを適用するノード側のプロキシ設定
次にノード側に設定をする.記事によっては /etc/wgetrc
も必要と書いてあったけど,今回は設定しなかった.
/etc/profile.d/proxy.sh
export http_proxy=http://${user}:${password}@${host}:3128 export https_proxy=http://${user}:${password}@${host}:3128
/etc/yum.conf
proxy=http://${user}:${password}@${host}:3128
Chef を実行するホスト側のプロキシ設定
ホスト側は特に設定はしなかった..chef/knife.rb
に以下のようなプロキシ設定をする必要があるのは,Chef Server を使っている環境だったり,chef-solo を実行する環境もプロキシが必要な場合になる.
http_proxy http_proxy_user http_proxy_pass https_proxy https_proxy_user https_proxy_pass
Chef をインストールする
上記の設定をしても knife solo prepare ${node}
は通らなかった.wget
でプロキシを通ってないような気もするけど,深くまで追うことができず,今回はノード側に手動で Chef をインストールする形で対応した.
cd /tmp curl -LO https://packages.chef.io/stable/el/6/chef-11.4.4-2.el6.x86_64.rpm rpm -i chef-11.4.4-2.el6.x86_64.rpm
上記のバージョンはサンプルで,以下のページから適切なバージョンを選択する.
Chef を実行する
通った!
構成
そのまんまだけど Flowchart Maker & Online Diagram Software を使ってみたかったというw