ReVIEW & CI - ChefでCI環境構築
Upcoming SlideShare
Loading in...5
×
 

ReVIEW & CI - ChefでCI環境構築

on

  • 3,808 views

 

Statistics

Views

Total Views
3,808
Views on SlideShare
1,925
Embed Views
1,883

Actions

Likes
14
Downloads
10
Comments
0

9 Embeds 1,883

http://d.hatena.ne.jp 1735
http://webcreator.weva.jp 98
https://twitter.com 24
http://cloud.feedly.com 18
http://tweetedtimes.com 3
https://www.google.co.jp 2
http://digg.com 1
http://feedly.com 1
http://www.google.co.jp 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

ReVIEW & CI - ChefでCI環境構築 ReVIEW & CI - ChefでCI環境構築 Presentation Transcript

  •  ReVIEW & CI  ChefでCI環境構築 @vvakame
  • わかめ まさひろ わしゃインフラとか よくわからんのじゃよ! @vvakame
  • 話を始める前に
  • 本日の仕込み その他の準備は後述 • 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
  • 動機
  • 動機 • ReVIEWで原稿書いてgitで管理したい • pushしたら自動でビルドされてほしい • 構文エラーがあったらすぐわかる • エンジニア以外も成果物がすぐ見れる • 編集さんがGitHubサイト上で編集 • でもサーバとかよくわからん辛い CI = 継続的インテグレーション = 金糸雀
  • 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くらい取られる辛い
  • gitで管理+自動でビルド • GitHubを普通に使えばOK • ビルドシステムは適当に使う • 愚直にshell scriptとか • わかめはgruntを使う ReVIEWは文化的にRakeも多そう?
  • 継続的インテグレーション • 知名度最強 Jenkins 氏 • GitHubをpollingで監視してコミット あったら自動でビルドして結果収集 • GitHubからのHookもあるよ! • まだ試してない… • GitHubへの 登録はChefじゃ無理? 登録まで勝手にされたら流石にキモい
  • サーバの自動セットアップ • サーバよくわからん… • 他人の叡智を借りたい! • 手順書を作るのはめんどくさい • 本当に正しく動くのかも疑わしい • ドキュメントよりコードだ さくらVPSでもEC2でもGCEでも多分動く(願望)
  • Chefについて
  • Chefって何? • サーバのセットアップをしてくれる • あるべき状態に収束させるツール • ReVIEWが使える環境で • Jenkinsが動いている • 冪等性が必要 • =何回実行しても同じ結果に落ち着く • Rubyで書く 類似ツールに Puppet がある
  • 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 でも一応取得してこられる • knife cookbook site vender java  • 一括DLやVersionに活躍
  • 下拵え 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  • 自作Cookbook
  • コミュニティのCookbook • Berkshelf 経由でダウンロードする • community.opscode.com/cookbooks/ • Jenkins, iptables あたりは見つかる • ReVIEW はやはりない→自作 • berk --path=cookbooks でDLされる • Berksfile.lock 生成 →これも管理
  • Berksfile site :opscode cookbook 'java' cookbook 'jenkins', ↩ git: 'https://github.com/opscode-cookbooks/jenkins.git', ↩ ref: '0ff2a4e20e5ca0646a112b3bc11c22af87a9f3ad' cookbook 'iptables' cookbook 'npm' Jenkinsは新しいコードがだいぶ リリースされていなかったので GitHubの最新を使うように設定
  • nodes/hoge.json { "java": { "install_flavor": "oracle", "jdk_version": 7, "oracle" : { "accept_oracle_download_terms": true } }, "run_list":[ "recipe[java]" ] } Attributes の上書き(設定) このNodeが実行する Recipe & Role
  • java レシピを読む • attributes/default.rb を読む • 設定可能な項目はここにまとまってる • recipe/default.rb を読む • デフォルトの挙動はここに定義される • java::default 相当 • recipe/oracle.rb は java::oracle run_list:[ “recipe[java::oracle]” ]
  • java レシピを読む • template/ と files/ • 生成ファイルの原本 • template は変数有り files は無し • providers/  • *.rb 中で不明な関数あったらここ探す • java/ark.rb だと java_ark ていう関数に • その他 • よくわかんない 既存レシピを読むの超参考になる
  • 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 @narusemotoki ありがとう! でもまだ実は動作確認できてない… OK ? ?
  • TeXの辛み • アホみたいにデカイ • 2.3GBとか • インストーラがおばか • 勝手に止まるので手動でリトライ • 動作確認したい! • 毎回GB単位でDL • 途中で止まる… TeXはクソなのではない かと思い始めてきた
  • TeX以外 • review • recipe/default.rb で gem_install review てやるだけ • zip • recipe/default.rb で • install zip てやるだけ • yumとかapt-get使い分けてるぽ? ちょー簡単
  • 実際の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じゃないぽ? • export LC_ALL=en_US.UTF-8 …?
  • 今後の課題
  • 今後の課題 • Communityにpublishしたい • TeXの安定構成を探したい • 結局JenkinsでPDF出てない… • 楽しい!✌('!'✌ )三✌('!')✌三( ✌'!')✌ • Windows対応したい • GitHubのprivate repo対応したい TeX is 最強の敵
  • 謝辞
  • http://goo.gl/CglFP 夏の戦の同志達 途中でReVIEWに移行! ReVIEW道を一緒に歩いて来た 人々のノウハウとか血とか洟 水がレシピに詰まってます!