Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
 ReVIEW & CI 
ChefでCI環境構築
@vvakame
わかめ まさひろ
わしゃインフラとか
よくわからんのじゃよ!
@vvakame
話を始める前に
本日の仕込み
その他の準備は後述
• vagrant init centos-6.4
• vagrant up
• vagrant ssh-config --host review-ci ↩
>> ~/.ssh/config
• knife sol...
動機
動機
• ReVIEWで原稿書いてgitで管理したい
• pushしたら自動でビルドされてほしい
• 構文エラーがあったらすぐわかる
• エンジニア以外も成果物がすぐ見れる
• 編集さんがGitHubサイト上で編集
• でもサーバとかよくわから...
ReVIEW環境構築
• gem install review で入る
• review-pdfmaker を動かすのが大変
• Mac OS X → MacTeX 入れる
• CentOS 6.4系 → TeX Live 2013 入れる
•...
gitで管理+自動でビルド
• GitHubを普通に使えばOK
• ビルドシステムは適当に使う
• 愚直にshell scriptとか
• わかめはgruntを使う
ReVIEWは文化的にRakeも多そう?
継続的インテグレーション
• 知名度最強 Jenkins 氏
• GitHubをpollingで監視してコミット
あったら自動でビルドして結果収集
• GitHubからのHookもあるよ!
• まだ試してない…
• GitHubへの 登録はCh...
サーバの自動セットアップ
• サーバよくわからん…
• 他人の叡智を借りたい!
• 手順書を作るのはめんどくさい
• 本当に正しく動くのかも疑わしい
• ドキュメントよりコードだ
さくらVPSでもEC2でもGCEでも多分動く(願望)
Chefについて
Chefって何?
• サーバのセットアップをしてくれる
• あるべき状態に収束させるツール
• ReVIEWが使える環境で
• Jenkinsが動いている
• 冪等性が必要
• =何回実行しても同じ結果に落ち着く
• Rubyで書く
類似ツール...
Chef Solo
• Chef SoloとChef (server & client)がある
• Server & Client の方はよく知らない…
• 開発元のOpsCodeはコレで稼いでる
• 今回は Chef Solo を使った
参考書籍
http://goo.gl/RRb3FB
• @naoya_ito さん著
• KDPで出てる(Kindle専)
• 神書籍やで実際
• vagrant 回りが少し古い
Chef用語
• Chef - シェフ
• Knife - ナイフ
• Node料理用コマンドラインツール
• リポジトリ
• Cookbookの束
• Cookbook - クックブック
• Recipeの束
• Recipe - レシピ
•...
Chef用語
• Attributes 
• 味付けの設定・変更
• Role 
• 役割
• このRecipeとこのRecipeでこういう
attributeな!
• Node 
• セットアップするサーバのこと
補助ツール
• Berksfile 
• gem install berkshelf で入る
• 他の人の作ったレシピを取得
• community.opscode.com/cookbooks/
• knife でも一応取得してこられる
• kn...
下拵え
github.com/vvakame/chef-repo
話の全てはここにあり
リポジトリ作る
• gem install chef 
• gem install knife-solo 
• knife solo init chef-repo
フォルダ構成
• cookbooks 
• 3rd parthのCookbook
• data_bags 
•
• nodes 
• 設定情報.json
• roles 
• Roleの定義
• site-cookbooks 
• 自作Cook...
コミュニティのCookbook
• Berkshelf 経由でダウンロードする
• community.opscode.com/cookbooks/
• Jenkins, iptables あたりは見つかる
• ReVIEW はやはりない→自作...
Berksfile
site :opscode
cookbook 'java'
cookbook 'jenkins', ↩
git: 'https://github.com/opscode-cookbooks/jenkins.git', ↩
r...
nodes/hoge.json
{
	 "java": {
	 	 "install_flavor": "oracle",
	 	 "jdk_version": 7,
	 	 "oracle" : {
	 	 	 "accept_oracle_d...
java レシピを読む
• attributes/default.rb を読む
• 設定可能な項目はここにまとまってる
• recipe/default.rb を読む
• デフォルトの挙動はここに定義される
• java::default 相当...
java レシピを読む
• template/ と files/
• 生成ファイルの原本
• template は変数有り files は無し
• providers/ 
• *.rb 中で不明な関数あったらここ探す
• java/ark.rb だ...
ReVIEW レシピを作る
ReVIEWに必要なもの
• gem install review 
• review-pdfmaker のために
• TeX環境
• review-epubmaker のために
• zipコマンド
おさらい
とりあえず
knife cookbook create review -o site-cookbooks
Cookbook作る
ReVIEWに必要なTeX
• Mac
• MacTeX 入れればOK
• Debian系
• apt-get install texlive-lang-cjk 
• CentOS系
• yumで入らないのでtexlive2013
@narus...
TeXの辛み
• アホみたいにデカイ
• 2.3GBとか
• インストーラがおばか
• 勝手に止まるので手動でリトライ
• 動作確認したい!
• 毎回GB単位でDL
• 途中で止まる… TeXはクソなのではない
かと思い始めてきた
TeX以外
• review
• recipe/default.rb で
gem_install review てやるだけ
• zip
• recipe/default.rb で
• install zip てやるだけ
• yumとかapt-g...
実際のRecipe
見てみよう
http://goo.gl/lv4aa1
http://goo.gl/6fhJj7
ReVIEW with Jenkins
実際のRecipe
激流に身を任せ同化する
http://goo.gl/jO7Iy6
http://goo.gl/FFDtTV
http://goo.gl/kFfpv4
http://192.168.50.12:8080/
実際にやってみた
GCEでやってみた
結論:さくらVPSでやれ
うっかり会社のアカウントで作ってしまい
怒られそうなので消しました☆(ゝω・)v
• ReVIEW(Ruby)がus-asciiじゃねーよ!
• て、怒られる
• GCEのデフォがUTF-8じゃない...
今後の課題
今後の課題
• Communityにpublishしたい
• TeXの安定構成を探したい
• 結局JenkinsでPDF出てない…
• 楽しい!✌('!'✌ )三✌('!')✌三( ✌'!')✌
• Windows対応したい
• GitHubの...
謝辞
http://goo.gl/CglFP
夏の戦の同志達
途中でReVIEWに移行!
ReVIEW道を一緒に歩いて来た
人々のノウハウとか血とか洟
水がレシピに詰まってます!
Nächste SlideShare
Wird geladen in …5
×

ReVIEW & CI - ChefでCI環境構築

5.939 Aufrufe

Veröffentlicht am

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

ReVIEW & CI - ChefでCI環境構築

  1. 1.  ReVIEW & CI  ChefでCI環境構築 @vvakame
  2. 2. わかめ まさひろ わしゃインフラとか よくわからんのじゃよ! @vvakame
  3. 3. 話を始める前に
  4. 4. 本日の仕込み その他の準備は後述 • vagrant init centos-6.4 • vagrant up • vagrant ssh-config --host review-ci ↩ >> ~/.ssh/config • knife solo prepare review-ci • knife solo cook review-ci ↩ ~/Dropbox/chef-repo/nodes/review-jenkins.json
  5. 5. 動機
  6. 6. 動機 • ReVIEWで原稿書いてgitで管理したい • pushしたら自動でビルドされてほしい • 構文エラーがあったらすぐわかる • エンジニア以外も成果物がすぐ見れる • 編集さんがGitHubサイト上で編集 • でもサーバとかよくわからん辛い CI = 継続的インテグレーション = 金糸雀
  7. 7. ReVIEW環境構築 • gem install review で入る • review-pdfmaker を動かすのが大変 • Mac OS X → MacTeX 入れる • CentOS 6.4系 → TeX Live 2013 入れる • Debian 7系 → texlive-lang-cjk • review-epubmaker は割りと楽 • zip コマンドあればOKぽい TeXで2.3GBくらい取られる辛い
  8. 8. gitで管理+自動でビルド • GitHubを普通に使えばOK • ビルドシステムは適当に使う • 愚直にshell scriptとか • わかめはgruntを使う ReVIEWは文化的にRakeも多そう?
  9. 9. 継続的インテグレーション • 知名度最強 Jenkins 氏 • GitHubをpollingで監視してコミット あったら自動でビルドして結果収集 • GitHubからのHookもあるよ! • まだ試してない… • GitHubへの 登録はChefじゃ無理? 登録まで勝手にされたら流石にキモい
  10. 10. サーバの自動セットアップ • サーバよくわからん… • 他人の叡智を借りたい! • 手順書を作るのはめんどくさい • 本当に正しく動くのかも疑わしい • ドキュメントよりコードだ さくらVPSでもEC2でもGCEでも多分動く(願望)
  11. 11. Chefについて
  12. 12. Chefって何? • サーバのセットアップをしてくれる • あるべき状態に収束させるツール • ReVIEWが使える環境で • Jenkinsが動いている • 冪等性が必要 • =何回実行しても同じ結果に落ち着く • Rubyで書く 類似ツールに Puppet がある
  13. 13. Chef Solo • Chef SoloとChef (server & client)がある • Server & Client の方はよく知らない… • 開発元のOpsCodeはコレで稼いでる • 今回は Chef Solo を使った
  14. 14. 参考書籍 http://goo.gl/RRb3FB • @naoya_ito さん著 • KDPで出てる(Kindle専) • 神書籍やで実際 • vagrant 回りが少し古い
  15. 15. Chef用語 • Chef - シェフ • Knife - ナイフ • Node料理用コマンドラインツール • リポジトリ • Cookbookの束 • Cookbook - クックブック • Recipeの束 • Recipe - レシピ • サーバ上で実行する時の最小単位
  16. 16. Chef用語 • Attributes  • 味付けの設定・変更 • Role  • 役割 • このRecipeとこのRecipeでこういう attributeな! • Node  • セットアップするサーバのこと
  17. 17. 補助ツール • Berksfile  • gem install berkshelf で入る • 他の人の作ったレシピを取得 • community.opscode.com/cookbooks/ • knife でも一応取得してこられる • knife cookbook site vender java  • 一括DLやVersionに活躍
  18. 18. 下拵え github.com/vvakame/chef-repo 話の全てはここにあり
  19. 19. リポジトリ作る • gem install chef  • gem install knife-solo  • knife solo init chef-repo
  20. 20. フォルダ構成 • cookbooks  • 3rd parthのCookbook • data_bags  • • nodes  • 設定情報.json • roles  • Roleの定義 • site-cookbooks  • 自作Cookbook
  21. 21. コミュニティのCookbook • Berkshelf 経由でダウンロードする • community.opscode.com/cookbooks/ • Jenkins, iptables あたりは見つかる • ReVIEW はやはりない→自作 • berk --path=cookbooks でDLされる • Berksfile.lock 生成 →これも管理
  22. 22. Berksfile site :opscode cookbook 'java' cookbook 'jenkins', ↩ git: 'https://github.com/opscode-cookbooks/jenkins.git', ↩ ref: '0ff2a4e20e5ca0646a112b3bc11c22af87a9f3ad' cookbook 'iptables' cookbook 'npm' Jenkinsは新しいコードがだいぶ リリースされていなかったので GitHubの最新を使うように設定
  23. 23. nodes/hoge.json { "java": { "install_flavor": "oracle", "jdk_version": 7, "oracle" : { "accept_oracle_download_terms": true } }, "run_list":[ "recipe[java]" ] } Attributes の上書き(設定) このNodeが実行する Recipe & Role
  24. 24. java レシピを読む • attributes/default.rb を読む • 設定可能な項目はここにまとまってる • recipe/default.rb を読む • デフォルトの挙動はここに定義される • java::default 相当 • recipe/oracle.rb は java::oracle run_list:[ “recipe[java::oracle]” ]
  25. 25. java レシピを読む • template/ と files/ • 生成ファイルの原本 • template は変数有り files は無し • providers/  • *.rb 中で不明な関数あったらここ探す • java/ark.rb だと java_ark ていう関数に • その他 • よくわかんない 既存レシピを読むの超参考になる
  26. 26. ReVIEW レシピを作る
  27. 27. ReVIEWに必要なもの • gem install review  • review-pdfmaker のために • TeX環境 • review-epubmaker のために • zipコマンド おさらい
  28. 28. とりあえず knife cookbook create review -o site-cookbooks Cookbook作る
  29. 29. ReVIEWに必要なTeX • Mac • MacTeX 入れればOK • Debian系 • apt-get install texlive-lang-cjk  • CentOS系 • yumで入らないのでtexlive2013 @narusemotoki ありがとう! でもまだ実は動作確認できてない… OK ? ?
  30. 30. TeXの辛み • アホみたいにデカイ • 2.3GBとか • インストーラがおばか • 勝手に止まるので手動でリトライ • 動作確認したい! • 毎回GB単位でDL • 途中で止まる… TeXはクソなのではない かと思い始めてきた
  31. 31. TeX以外 • review • recipe/default.rb で gem_install review てやるだけ • zip • recipe/default.rb で • install zip てやるだけ • yumとかapt-get使い分けてるぽ? ちょー簡単
  32. 32. 実際のRecipe 見てみよう http://goo.gl/lv4aa1 http://goo.gl/6fhJj7
  33. 33. ReVIEW with Jenkins
  34. 34. 実際のRecipe 激流に身を任せ同化する http://goo.gl/jO7Iy6 http://goo.gl/FFDtTV http://goo.gl/kFfpv4 http://192.168.50.12:8080/
  35. 35. 実際にやってみた
  36. 36. GCEでやってみた 結論:さくらVPSでやれ うっかり会社のアカウントで作ってしまい 怒られそうなので消しました☆(ゝω・)v • ReVIEW(Ruby)がus-asciiじゃねーよ! • て、怒られる • GCEのデフォがUTF-8じゃないぽ? • export LC_ALL=en_US.UTF-8 …?
  37. 37. 今後の課題
  38. 38. 今後の課題 • Communityにpublishしたい • TeXの安定構成を探したい • 結局JenkinsでPDF出てない… • 楽しい!✌('!'✌ )三✌('!')✌三( ✌'!')✌ • Windows対応したい • GitHubのprivate repo対応したい TeX is 最強の敵
  39. 39. 謝辞
  40. 40. http://goo.gl/CglFP 夏の戦の同志達 途中でReVIEWに移行! ReVIEW道を一緒に歩いて来た 人々のノウハウとか血とか洟 水がレシピに詰まってます!

×