Your SlideShare is downloading. ×
0
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
3分間 開発環境クッキング 2012.07 #pyfes
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

3分間 開発環境クッキング 2012.07 #pyfes

7,366

Published on

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

No Downloads
Views
Total Views
7,366
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
37
Comments
0
Likes
29
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Sphinx ハンズオンの中の人 小宮健
  • 2. 自己紹介:小宮 健 Twitter: @tk0miya 仕事  (株)タイムインターメディア所属  テクニカルオフィサ(技術責任者)として活動 参加コミュニティ  Sphinx-users.jp  Python mini hack-a-thon Sphinx を中心にツールを開発  blockdiag シリーズ  Sphinx 拡張機能の開発  Googlechart やカレンダー機能 #bookathon 他読書会やってます
  • 3. 自己紹介:小宮 健
  • 4. お知らせ Pycon JP 2012 (9/15-17) きてね SphinxCon JP 2012 も併催してます この資料はあとで公開します  細かいとこはあとで読んでください
  • 5. 3分間で開発環境つくれますか? 開発環境が壊れた。捨てて再構築したい 手順 Wiki が 20項目ぐらいある しかも間違ってる なんだかんだ対応してたら一日過ぎた
  • 6. その他環境まわりの問題 複雑な手順 本番とステージングがばらばら 開発環境だってずれてる 手順の抜け、漏れ
  • 7. その他環境まわりの問題 複雑な手順 本番とステージングがばらばら 開発環境だってずれてる 手順の抜け、漏れ → 環境構築って面倒ばかり
  • 8. 継続的デリバリー
  • 9. 曰く 環境をバージョン管理せよ できる限り自動化せよ すべての環境を同じ手順で構築せよ
  • 10. 3分間 開発環境クッキング 道具紹介 Vagrant  VirtualBox の管理ソフトウェア  コマンドラインから利用できる Chef (chef-solo)  環境構築ソフトウェア  パッケージ、設定を自動的に最新に保つ  今回は chef-solo のみ
  • 11. 3分間 開発環境クッキング 道具紹介 開発環境 / 本番環境(VM) 1. Vagrant で VM を作る 2. Chef で環境をセットアップ 本番環境 (実機) 1. 手作業で OS をインストール 2. Chef で環境をセットアップ 環境づくりは Chef で揃える
  • 12. Vagrant インストール  VirtualBox 入れる  gem で vagrant 入れる $ gem install vagrant
  • 13. Vagrant: VM イメージの作り方 (基本)1. box(ベースイメージ)登録 $ vagrant box add lucid32 http://files.vagrantup.com/lucid32.box1. 設定ファイル生成 $ vagrant init1. 設定 $ vi Vagrantfile1. 起動 $ vagrant up
  • 14. Vagrant: 設定ファイルの書き方 box を指定するだけ Vagrant::Config.run do |config| config.vm.box = "lucid32" config.vm.customize do |vm| vm.memory_size = 512 end end
  • 15. Vagrant: VM の動かし方 起動 $ vagrant up 終了 $ vagrant halt 破棄 $ vagrant destroy 管理ログイン $ vagrant ssh
  • 16. Vagrant: box について よくある例では Web から拾う  http://www.vagrantbox.es/ 有志が作って公開している いろんな OS が揃ってる
  • 17. Vagrant: box 問題 セキュリティ面  トロイが仕掛けられてないか  誰も担保していない Guest Additions バージョン不一致  手元の VirtualBox が新しいと起きがち  Chef 連携(後述)が動かない
  • 18. Vagrant: box 問題(解決編) A. VeeWee を使いましょう OS のインストーラから VM イメージを作成 してくれる  ISO イメージのダウンロード  kickstart でインストール  Chef, Guest Additions のインストール
  • 19. VeeWee: インストール gem は古いので、必ず github のものを使うこと  ISO の URL が古くてハマったり… 自分でローカル用 gem パッケージ作った $ git clone https://github.com/jedi4ever/veewee.git $ cd veewee $ gem build veewee.gemspec $ gem install veewee-0.3.0.alpha9.gem
  • 20. VeeWee: 使い方1. templates で目的の物を探す2. define で定義ファイルを生成する  定義ファイルの URL を近いミラーに書き換えると幸 せ3. build で VM テンプレート作成  実際にインストールするので時間がかかる4. export でテンプレート化5. vagrant から使えるようになる
  • 21. VeeWee デモ VeeWee を使って、新しい box を作ってみます
  • 22. Chef: おさらい 環境構築ソフトウェア パッケージ、設定を自動的に最新に保つ
  • 23. Chef: どんなことができるの? 環境作るときにいつもやることを自動化 Firewall, DNS, NTP などの設定 依存パッケージ入れたりする LAMP 環境の構築 手順書の代わりにレシピを書く
  • 24. Chef: インストール vagrant 経由で実行する場合は不要 レシピ作りには入れておく必要あり gem install chef CentOS6 なら rpm がある  http://matetsu.hatenablog.com/entry/ 2012/01/15/142720
  • 25. Chef: 設定方法 Chef はレシピを使って設定する レシピ = 設定手順 例::  hosts の設定の仕方  MySQL のインストールの仕方
  • 26. Chef: 誰かが書いたレシピを使う Opscode社がレシピ集を公開してる  https://github.com/opscode/cookbooks knife コマンドで取り込む $ mkdir -p cookbooks $ knife cookbook site install ntp -o cookbooks 基本的なものは入っている  RedHat 系では動かないものがいくつかある 他にもレシピが公開されてる  37 Signals, コミュニティ製
  • 27. Chef: 誰かが書いたレシピを使う 使うレシピのリストを Vagrantfile に書き足す config.vm.provision :chef_solo do |chef| chef.cookbooks_path = ["cookbooks”] chef.add_recipe "ntp" chef.json = { :ntp => {:servers => [ntp.foobar.jp]}, } end
  • 28. Chef: オリジナルのレシピを書く Opscode で見つからない場合 $ mkdir -p site-cookbooks $ knife cookbook create my_recipe -o site- cookbooks 次のファイルを書き換える  cookbook/attributes/default.rb  cookbook/recipes/default.rb  cookbook/templates/default/* 書き方は OpscodeWiki や他のレシピを参考 に
  • 29. Chef: 使い方 Vagrant 経由  起動時に実行される $ vagrant up  明示的に呼び出す $ vagrant provision コマンドライン $ chef-solo –c solo.rb –j chef.json  今回は詳細は割愛!
  • 30. Chef: デモ Vagrant + chef で環境づくり  CentOS 5.8  EPEL リポジトリを使うようにする  Selinux、NTP, タイムゾーンの設定  Iptables も設定しとく  thrift 入れる
  • 31. 次やること ESXi + chef でかんたん開発環境づくり  VeeWee + VMWare Fusion でイメージ作れた 実機に chef-solo をどうインストールするの か chef-server の使い道を検討 デプロイについて (capistrano ?)
  • 32. まとめ Chef + Vagrant で環境構築できるようにした おおよそ 3分間で環境作った(はず) 環境マニア募集中 継続的デリバリー座談会やってるよ  Connpass みてね
  • 33. おまけ: vagrant-snap vagrant plugin VirtualBox snapshot の操作 chef レシピ作りのときに便利 vagrant snap サブコマンドが追加される $ vagrant snap take $ vagrant snap list $ vagrant snap go [n] $ vagrant snap back

×