伊藤直也さんの入門Chef Solo - Infrastructure as Codeを購入したこともあって、Chefにトライした。最初は、第2章をMac+Vagrantで試してみて、続いて先日作ったUbuntuの開発環境を自動化してみようと思った。
会社で始めたので、残念ながらProxyの環境。以下の参考URL通りに進めたんだけど、やっぱProxyあたりで一工夫必要だったので、ブログに残すことにした。
参考:
Windows7上で Vagrant + Chef solo + knife-soloを使い、Ubuntu + ubuntu-desktopの環境を構築してみた - メモ的な思考的な
環境
- Windows 7 Professional 64bit
- Cygwin 1.7
- 認証Proxy必須…
準備
- CygwinにOpenSSHをインストールしておく
- VirtualBoxインストール → インストーラーの通りに
- Vagrantインストール → インストーラーの通りに
chef, knife-soloインストール
% gem install chef --no-ri --no-rdoc % gem install knife-solo -v 0.3.0.pre2 --no-ri --no-rdoc % knife configure →全てEnter、参考にあるffiのエラーは出なかった
Ubuntu 12.10 32bitをインストール
% vagrant box add Ubuntu12.10 http://files.vagrantup.com/precise32.box % vagrant init Ubuntu12.10
knife
% knife solo init chef-repo % vi Vagrantfile → config.vm.network :private_network, ip: "192.168.33.10" をコメント外す % vagrant up
ここでVM側のProxyを設定&chefをアップデート
% vagrant ssh -- $ vi /etc/environment http_proxy="http://user:password@hostname:port/" https_proxy="http://user:password@hostname:port/" $ sudo vi /etc/wgetrc http_proxy=http://user:password@hostname:port/ https_proxy=http://user:password@hostname:port/ →ダブルコーテーション入れたらエラーになる $ sudo gem update chef --http-proxy http://user:password@hostname:port/ $ exit -- % cd chef-repo % knife solo -V prepare vagrant@192.168.33.10
VM側の/etc/wgetrcにProxyを書かないと以下のエラー
knife-soloのコードを追い掛け回してやっと判明
Bootstrapping Chef... Enter the password for vagrant@192.168.33.10: --2013-04-10 08:23:17-- https://www.opscode.com/chef/install.sh Resolving www.opscode.com (www.opscode.com)... failed: Name or service not known. wget: unable to resolve host address `www.opscode.com'
% vagrant halt % knife cookbook create piyo -o cookbooks % vi cookbooks/piyo/recipes/default.rb → 参考URL通りに記述 % vi ../Vagrantfile →いくつかコメントを外して実態に合わせて書き換える config.vm.provision :chef_solo do |chef| chef.cookbooks_path = "./chef-repo/cookbooks" # chef.roles_path = "../my-recipes/roles" # chef.data_bags_path = "../my-recipes/data_bags" chef.add_recipe "piyo" # chef.add_role "web" # # # You may also specify custom JSON attributes: # chef.json = { :mysql_password => "foo" } end % vi nodes/192.168.33.10.json {"run_list":["recipe[piyo]"]} % vagrant up Bringing machine 'default' up with 'virtualbox' provider... [default] Setting the name of the VM... [default] Clearing any previously set forwarded ports... [default] Creating shared folders metadata... [default] Clearing any previously set network interfaces... [default] Preparing network interfaces based on configuration... [default] Forwarding ports... [default] -- 22 => 2222 (adapter 1) [default] Booting VM... [default] Waiting for VM to boot. This can take a few minutes. [default] VM booted and ready for use! [default] Configuring and enabling network interfaces... [default] Mounting shared folders... [default] -- /vagrant [default] -- /tmp/vagrant-chef-1/chef-solo-1/cookbooks [default] Running provisioner: VagrantPlugins::Chef::Provisioner::ChefSolo... Generating chef JSON and uploading... Running chef-solo... stdin: is not a tty [2013-04-11T02:00:37+00:00] INFO: *** Chef 11.4.0 *** [2013-04-11T02:00:39+00:00] INFO: Setting the run_list to ["recipe[piyo]"] from JSON [2013-04-11T02:00:39+00:00] INFO: Run List is [recipe[piyo]] [2013-04-11T02:00:39+00:00] INFO: Run List expands to [piyo] [2013-04-11T02:00:39+00:00] INFO: Starting Chef Run for precise32 [2013-04-11T02:00:39+00:00] INFO: Running start handlers [2013-04-11T02:00:39+00:00] INFO: Start handlers complete. [2013-04-11T02:00:39+00:00] INFO: Processing execute[update package index] action run (piyo::default line 9) [2013-04-11T02:00:58+00:00] INFO: execute[update package index] ran successfully [2013-04-11T02:00:58+00:00] INFO: Processing execute[update package index] action nothing (piyo::default line 9) [2013-04-11T02:00:58+00:00] INFO: Processing log[done update] action write (piyo::default line 15) [2013-04-11T02:00:58+00:00] INFO: done update [2013-04-11T02:00:58+00:00] INFO: Processing package[ubuntu-desktop] action install (piyo::default line 17) [2013-04-11T02:33:14+00:00] INFO: Processing log[done install] action write (piyo::default line 21) [2013-04-11T02:33:14+00:00] INFO: done install [2013-04-11T02:33:14+00:00] INFO: Chef Run complete in 1954.115293972 seconds [2013-04-11T02:33:14+00:00] INFO: Running report handlers [2013-04-11T02:33:14+00:00] INFO: Report handlers complete % vagrant halt % vagrant up
参考:
Chefのプロキシ設定 #chef - Qiita
↓この本は良かった。Chefを始めてみるのに最適。ユースケースごとに解説されてるから、始めた段階でのリファレンスとしても良かった。
番外編:Ubuntuでリトライ
WindowsのProxy環境でどうにもうまくいかなくて、気分転換にWindows上のVMware Playerでやってみようと思った。結果から言うと、VMのネストが原因かVagrantをupできずやめた。
一応、Vagrantをインストールするとことまでを残しておく。
VirtualboxとVagrantをインストール
% sudo apt-get install libqt4-opengl % sudo apt-get install libsdl1.2debian % wget http://download.virtualbox.org/virtualbox/4.2.10/virtualbox-4.2_4.2.10-84104~Ubuntu~quantal_i386.deb % sudo dpkg -i virtualbox-4.2_4.2.10-84104~Ubuntu~quantal_i386.deb % wget http://files.vagrantup.com/packages/64e360814c3ad960d810456add977fd4c7d47ce6/vagrant_i686.deb % sudo dpkg -i vagrant_i686.deb
Chefとknife-soloをインストール
Rubyが2.0.0しか入ってなかったので、1.9.3をインストール
% rbenv install 1.9.3-p392 % rbenv global 1.9.3-p392 % gem install rbenv-rehash --no-ri --no-rdoc % gem install bundle --no-ri --no-rdoc % gem install chef --no-ri --no-rdoc % gem install knife-solo --no-ri --no-rdoc % knife configure # 全てEnter
Ubuntu 12.10 32bitをインストール
% vagrant box add Ubuntu12.10 http://files.vagrantup.com/precise32.box % vagrant init Ubuntu12.10 % vagrant up # VMware Player上のUbuntuでVirtualBoxを動かそうとしているからかupしない
0 コメント:
コメントを投稿