Aizu.LT::Tokyo #4

793 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
793
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Aizu.LT::Tokyo #4

  1. 1. 環境構築自動化ツール Chef を試してみた Aizu.LT kanagawaWithIndex:1 2013/3/30 at uPhyca inc. Taku Unno DWANGO Co,. Ltd boscoworks@gmail.com
  2. 2. Profile 海野 拓 (Taku Unno) 2004-2008 会津大学 (画像処理学講座) 2008-2012 Yahoo!JAPAN  Yahoo!バラエティ、Yahoo!ニュース、Yahoo!ロコ 2012/4-Now Dwango  RCP、許諾楽曲開発、NicoSound、マーケティング Mail: boscoworks@gmail.com Facebook: http://on.fb.me/yDZ2XO
  3. 3. 【PR】あわせて読みたい http://www.slideshare.net/boscoworks/  転職LT  ニコニコ動画の著作権管理の仕組み  PHPカンファレンス2012 レポート
  4. 4. 【PR】ニコニコ超会議2 http://www.chokaigi.jp/ 4/27-28 幕張メッセ
  5. 5. デプロイの話
  6. 6. 開発マイルストーン PDCA サイクル  Plan, Do, Check, Act  企画・設計  開発・テスト  リリース  性能評価・マーケティング  改善 今日はリリースの話です
  7. 7. How to deploy? 独自シェルスクリプト SCP svn switch rake kickstart Puppet yinst
  8. 8. Chef とは サーバ構成管理ツール 環境構築を自動化出来る Ruby で書ける インフラ構築の作業手順書をスクリプトに出来る
  9. 9. 時代はDevOps インフラエンジニアの作業負荷軽減  デプロイ手順の簡略化 環境再現・構築の容易化 構築手順のバージョン管理
  10. 10. Chef 導入のメリット デプロイが簡単 スクリプトで書いた通りにデプロイできる バージョン管理出来る 適用する recipe をサーバによって自由に組み替えられ る
  11. 11. Chef のデメリット 既存システムに組み込むのが大変 学習コストは低くない 環境によってディストリビューションが違うと泥沼 組み込みコマンドは使えない そもそもChef導入までがいばらの道  (Chef-Serverを使う場合) Recipe のメンテをサボりがち
  12. 12. Chef の構成
  13. 13. 構成要素 Cookbook (ソフトウェアを構築するための手順ひとま とめ)  Recipe (実行内容を記述するスクリプト)  Attribute (変数の定義)  Template (テンプレートファイル)  Resource (処理の抽象化)  Role (Recipeを組み合わせて役割として定義) Node (管理対象のクライアントマシン)
  14. 14. 単体でも実行可能 (Chef-Solo) 中小規模アプリケーションであればこれで十分 Chef そのものの導入が手軽 ざっくり以下2ファイルを準備:  chef.json  run_list (recipe一覧) を記述  solo.rb  Cookbook のパス、ログレベルなどを指定  % sudo chef-solo –c solo.rb –j chef.json
  15. 15. chef.json{ "run_list": [ "recipe[php::php]", "recipe[php::apache]", "recipe[php::phpunit]” ]}
  16. 16. solo.rbfile_cache_path "/tmp/chef-solo"cookbook_path "/home/boscoworks/chef/cookbooks"role_path "/var/chef/roles"log_level :debug
  17. 17. Recipe でパッケージをいれるpackage "php-pear" do action :install not_if "which pear"end
  18. 18. OSによる条件分岐package "php5-cli" do case node[:platform] when "ubuntu" package_name "php5-cli" when "centos" package_name "php53" end action :install not_if "which php"end
  19. 19. PEARパッケージをいれるphp_pear "PHPUnit" do action :install channel "phpunit" options "--alldeps --force" version "3.6.11" not_if "which phpunit"end
  20. 20. コマンドを実行するexecute "package update" do case node[:platform] when "ubuntu" command "apt-get update" when "centos" command "yum -y update" endend
  21. 21. ディレクトリを作成するdirectory "/tmp/users" do owner "root" mode "0777" action :create not_if do File.exists?("/tmp/users") endend
  22. 22. Template を配置するtemplate "/usr/local/apache2/conf/extra/httpd-vhosts.conf" do owner "root" group "root" mode "0777" not_if do File.exists?("/usr/local/apache2/conf/extra/httpd-vhost.conf") endend
  23. 23. Attribute を Template で使う Template<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName <%= node[:server_name] %> DocumentRoot /home/boscoworks/public…
  24. 24. Attribute を Template で使う Attributedefault[server_name] = ”localhost"
  25. 25. Attribute を Recipe で使う Recipeexecute "tar" do command "tar jxvf /tmp/httpd-#{node.httpd_version}.tar.bz2 -C /tmp/" only_if do File.exists?("/tmp/httpd-#{node.httpd_version}.tar.bz2") end…
  26. 26. Attribute を Recipe で使う Attributedefault[httpd_version] = "2.2.19"
  27. 27. まとめ 構築の自動化が凄く楽 「作る/壊す」開発環境VMが手軽に準備出来る Chefは何でもやってくれる万能ツールではない イニシャルコスト・メンテナンスコストをきちんと割 きたい
  28. 28. 参考文献 Chef wiki  http://wiki.opscode.com/display/chef/Home Opscode Community  http://community.opscode.com/cookbooks 日本Chefユーザー会  https://www.facebook.com/japan.chef.users.group Chef でサーバ管理を楽チンにしよう!  http://jp.rubyist.net/magazine/?0035-ChefInDECOLOG Chef を試してみた  http://higelog.brassworks.jp/?p=643 ChefでCookbookを作るときのちょっとしたコツ 9選  http://heartbeats.jp/hbblog/2013/01/chef-cookbook-tips.html chef-soloで環境設定  http://tdoc.info/blog/2012/05/08/chef_solo.html
  29. 29. ご清聴ありがとうございまし た Taku Unno DWANGO Co,. Ltd boscoworks@gmail.com http://on.fb.me/yDZ2XO

×