Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Pythonユーザのための構成管理入門 #pyconapac

9,326 views

Published on

Published in: Technology
  • Follow the link, new dating source: ♥♥♥ http://bit.ly/2Qu6Caa ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Dating direct: ❤❤❤ http://bit.ly/2Qu6Caa ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • (Unlimited)....ACCESS WEBSITE Over for All Ebooks ................ accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M }
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes.........ACCESS WEBSITE Over for All Ebooks ..... (Unlimited) ......................................................................................................................... Download FULL PDF EBOOK here { https://urlzs.com/UABbn } .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • DOWNLOAD THI5 BOOKS INTO AVAILABLE FORMAT (Unlimited) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ACCESS WEBSITE for All Ebooks ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... ......................................................................................................................... ......................................................................................................................... .............. Browse by Genre Available eBooks ......................................................................................................................... Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult,
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Pythonユーザのための構成管理入門 #pyconapac

  1. 1. (株)タイムインタメーディア 小宮健 http://www.flickr.com/photos/yelpar/6678239091/
  2. 2. 自己紹介:小宮 健  仕事  (株)タイムインターメディア所属  参加コミュニティ  Sphinx-users.jp  Python mini hack-a-thon  Author of blockdiag  Chef 歴 1.5年ぐらい  Community cookbook 推進派です  こつこつ Pull Req. 投げてます Twitter: @tk0miya
  3. 3. 宣伝:Sphinx をはじめよう  世界初のSphinx本  電子書籍  100ページ弱相当  オライリー・ジャパン  1,680円  2013/9/13 発売
  4. 4. アジェンダ  サーバの構成管理していますか?  構成管理ツールを使おう  Chef の紹介  デプロイツールを使おう  Capistrano の紹介  まとめ
  5. 5. アジェンダ  サーバの構成管理していますか?  構成管理ツールを使おう  Chef の紹介  デプロイツールを使おう  まとめ
  6. 6. サーバの構成管理していますか?  サーバの構築には沢山のステップがある  OSのインストール/設定  ミドルウェアのインストール/設定  アプリケーションのインストール  セキュリティ対策  あなたのサーバは、それを再現できます か?  サーバの故障  増強が必要となった  新メンバー用の開発環境が必要になった
  7. 7. サーバの構成管理していますか?  よくあるサーバ構築の方法  サーバ構築手順書がある  Wiki に集約されている  職人芸 (担当者しかしらない)  考えられてない (現在のサーバから推測)
  8. 8. よくあるトラブル…  記述通りに構築しても動かない  そもそも記述通りに進まない  そもそも手順がまとまっていない  隣の人と入っているパッケージが違う  なぜかサーバごとに設定が違う(歴史的経 緯)  手順を飛ばして本番で事故る  バッチを停止したままだった  何十台も手作業で設定してるとつい…  手順書にはクロスチェック欄がある
  9. 9.  環境を管理せよ  本番環境と同じ方法で開発 環境を構築せよ  本番用スクリプトでは最後 までテストされない  開発開始時点から環境構築 を自動化する 『継続的デリバリー』曰く
  10. 10. 環境を管理する  環境を管理するいくつかの方法  手順書を用意する  シェルスクリプトにする  PXE + kickstart による自動インストール  sed/awk などによる設定ファイル書き換え  PHP で設定ファイルを生成したことがあります  オレオレパッケージ(rpm,debなど)を作る  AMI や VM snapshot を作る  構成管理ツールを使う
  11. 11. その方法、変更に耐えられますか?  システムは進化するもの  ミドルウェアの追加  設定の変更、チューニング  ミドルウェア・ライブラリのバージョンアッ プ  構築済みのサーバを更新できますか?  アップデート用のスクリプトを作る  サーバを再構築/新規構築できますか?  アップデート用のスクリプトが増えると辛い
  12. 12. 冪等性 (べきとうせい)  何度実行しても同じ結果になるという性質  たとえば echo “…” >> /path/to/conf はダメ  環境構築スクリプトが冪等性を持っている と…  サーバの新規構築にも使える  既存のサーバのアップグレードにも使える  何度実行してもエラーにならない  AMI や VM snapshot と相性がいい  いつ保存したものでも、実行すれば最新状態に
  13. 13. 構成管理ツールを使おう  構成管理ツールは環境管理に特化  冪等性を持っている  いつも指定したパッケージが入る  いつも指定した設定になる  いつも指定したディレクトリ構成になる  サーバのあるべき姿を定義する
  14. 14. 著名な構成管理ツール (1)  Puppet  Ruby 製の構成管理ツール  比較的歴史があり、長く使われている  各サーバにインストールして利用する  クライアント-サーバ型 もしくは単体実行  独自の DSL で環境の定義を行う  puppet-forge という共有リポジトリがある  誰かが書いた定義を使うことができる  例: MySQL のインストール、設定の定義
  15. 15. 著名な構成管理ツール (2)  Chef  Ruby 製の構成管理ツール  去年ブームになった構成管理の火付け役  各サーバにインストールして利用する  クライアント-サーバ型 もしくは単体実行  独自の DSL で環境の定義を行う  Rubyベースなのでループや if などが使える  OpscodeCommunityという共有リポジトリが ある  誰かが書いた定義を使うことができる
  16. 16. 著名な構成管理ツール (3)  Ansible  Python 製の構成管理ツール  興味を持っている人が多い注目株  サーバへのインストールは不要  SSHで接続して操作を行う  YAML ベースの DSL で環境の定義を行う  他の言語で補助コマンドを作ることも可能  今のところ共有リポジトリは存在しない
  17. 17. 著名な構成管理ツール (4)  Fabric + cuisine  Python 製のツール  リモート管理ツール(fabric)とその拡張機能  あまり利用事例は多くないが、書きやすい  サーバへのインストールは不要  SSHで接続して操作を行う  Python スクリプトで環境の定義を行う  Fabric, cuisine が提供する関数を用いる  今のところ共有リポジトリは存在しない
  18. 18. 環境構築ツールの比較 名前 言語 定義 インストー ル 共有 リポジト リ Puppet Ruby 独自DSL 必要 ○ Chef Ruby 内部DSL 必要 ○ Ansible Python YAML 不要 × Fabric + Cuisine Python Python 不要 ×
  19. 19. どの構成管理ツールを使うべきか  ベストアンサーはない  手に馴染んだものを使うべき  場合によってはシェルスクリプトでも可  情報量では chef が一歩リードしている印象  台数が多い場合はpuppet/chefが有利か  共有リポジトリの有無も参考になるかも  既に定義されているためショートカットでき る  ただし、すべて自分で書くという話もよく聞きます  定義を書くときの参考になる
  20. 20. アジェンダ  サーバの構成管理していますか?  構成管理ツールを使おう  Chef の紹介  デプロイツールを使おう  まとめ
  21. 21. 構成管理ツール Chef  Chef  Ruby 製の構成管理ツール  管理対象のホストにインストールして使う  サーバ/クライアント型 (単体実行も可能)  cookbook で環境を定義する  インストール手順や設定方法をまとめたもの  ソフトウェア単位で作成することが多い  例: MySQL用cookbook、Postfix用cookbook
  22. 22. Chef の種類  Chef-Server / Chef-Client  大規模用  ホスト間の連携(Orchestration)が可能  設定の自動反映  Hosted Chef  ASP 版 Chef-Server  Chef-solo  単体で稼働する (実行ホストの設定をする)  手動で実行する  20台ぐらいまでは chef-solo で十分 まずはここからはじめましょう
  23. 23. chef-solo のインストール  以下のコマンドを実行する  /opt/chef 以下にファイルがインストールされ る  一部、/usr/bin, /etc/chef にファイルが入る curl -L https://www.opscode.com/chef/install.sh | sudo bash
  24. 24. chef で環境構築をしていく流れ 1. 設定する対象を決める  例: ntpd をインストールする 2. 共有リポジトリで cookbook を探す  作成することもできます(今回は説明しませ ん) 3. 設定ファイルを書く 4. chef-solo コマンドを実行する
  25. 25. 共有リポジトリで cookbook を探す  OpscodeCommunity  http://community.opscode.com/cookbooks  1,100以上のcookbookが登録されている
  26. 26. 設定ファイルを書く  solo.rb  chef-solo の設定ファイル。主にパスを設定す る  solo.json  chef-solo の定義ファイル (JSON形式)。  run_list: 実行する cookbook を列挙する  attributes: 各 cookbook に対するパラメータ  設定できる値は各 cookbook の README 参照のこと  例: ntp の設定情報
  27. 27. 設定ファイルを書く  solo.rb  solo.json file_cache_path "/home/app/chef-solo/cache" cookbook_path "/home/app/chef-solo/cookbooks” { "run_list" : ["recipe[ntp]”], "ntp" : { "servers" : ["ntp.nict.jp”] } }
  28. 28. chef-solo コマンドを実行する  chef-solo コマンドを実行する  root 権限を持った状態(sudoなど)で実行する こと  何度実行しても同じ状態になる  デモします sudo chef-solo –c solo.rb -j solo.json
  29. 29. 実際の構築例  とある Rails アプリ用の環境  OS 設定  yum の設定 (EPEL, repoforge), timezone  iptables, SELinux 無効化  logrotate, rsyslog, NTP  nginx, postfix, MySQL  開発言語/ツール  Ruby, Python  vim, screen, git, mercurial, TeXLive  Jenkins, Jenkins プラグイン
  30. 30. chef に関する情報源  公式ドキュメント (docs.opscode.com)  入門 Chef Solo (電子書籍)  #opschef, #opschef_ja  各種 chef 勉強会
  31. 31. アジェンダ  サーバの構成管理していますか?  構成管理ツールを使おう  Chef の紹介  デプロイツールを使おう  まとめ
  32. 32. デプロイって何をやるの?  アプリ(ソースコード/バイナリ)の配布  リリース前の準備  asset precompile  JavaScript Compile/minify  サービスの再起動  トラブル発生時のバージョンダウン(切り 戻し)  DB Migration  データ修正など
  33. 33. 構成管理ツールでデプロイできないか  一部の操作は『冪等性』と相性の悪い  切り戻し操作  DB Migration  データ修正  デプロイ作業は他のツールが向いている
  34. 34. 著名なデプロイツール (1)  Fabric  Python 製のツール  Python スクリプトで操作を定義する  プリミティブな機能が提供されている  複雑な操作は自分で実装する必要がある def create_link(): run("ln -s /usr/local/bin/ruby /usr/bin/ruby”)
  35. 35. 著名なデプロイツール (2)  Capistrano  Ruby 製のツール  Ruby スクリプトで操作を定義する  あらかじめいくつかの機能を持っている  VCS からのチェックアウト、デプロイ  ソースコードの切り戻しに対応 task :create_link do run "ln -s /usr/local/bin/ruby /usr/bin/ruby” end
  36. 36. アジェンダ  サーバの構成管理していますか?  構成管理ツールを使おう  Chef の紹介  デプロイツールを使おう  まとめ
  37. 37. ツールを導入するメリット/デメリット  メリット  量産、再構築をするたびに効果が得られる  構築、アップデートのスピードが速くなる  操作ミスが尐なくなる  デメリット  覚えるまでに試行錯誤が必要になる  新しい設定を追加する際に苦労する  Postfix の設定で半日かかった (手動なら 10分)  手動管理を混ぜるとトラブルになる
  38. 38. まとめ  サーバの構築にはツールを使うと捗る  構成管理ツール  デプロイツール  個人的には chef, capistrano がお薦め  手動派の人は見直すチャンス  向かないケースもあるので検討は必要  重要なのは自動化と環境が再現できること

×