狠狠撸
Submit Search
肠丑别蹿から颈迟补尘补别に乗り换えた话
?
0 likes
?
1,462 views
Yoshiki Kobayashi
Follow
肠丑别蹿から颈迟补尘补别に乗り换えた话
Read less
Read more
1 of 39
Download now
Download to read offline
More Related Content
肠丑别蹿から颈迟补尘补别に乗り换えた话
1.
chefからitamaeに乗り換 えた話 元ネタ:http://qiita.com/zaru/items/8ae6182e544aac6f6d79
3.
自己紹介 名前:小林芳樹 株式会社ベーシック開発部マネージャー、Canvathのメイン担当 ブログ書いてます。(http://tech.basicinc.jp) 悲しみの谷を乗り越え、約束の地にたどり着いたサービスの開発 10年以上続くサイトを初めてリニューアルして感じた事 twitter: @ykyk1218 facebook: https://www.facebook.com/yoshiki. kobayashi.7
4.
今日のお話 chefを使っていたけど、chefの学習コストの高さに負けたところ、 itamaeという救世主が現れた話
5.
みなさん颁丑别蹿使えてますか?
6.
Chefとの出会い 「Vagrant使うと仮想環境簡単につくれるよ」 「Vagrant+Chefで簡単に仮想環境上に開発環境が用意できるよ」 開発環境を構築するのはいつも大変だったし、これが簡単になる というのならやるしかない
7.
chefを学ぶ Chefを使うにはknifeコマンドが必要 サーバの設定手順を書いたファイルをrecipeと呼ぶ recipeのまとまりをcookbookと呼ぶ 本来複数サーバを管理するものだが、1台でも使えるchef-soloコマンド cookbookの管理を簡単にするのにBerkshelfというのがあるらしい
8.
Chefを学ぶ knife? cookbook? recipe? chef-solo? Berkshelf?
9.
覚えること多い
10.
さらに Vagrant+Chefで使うと良いプラグイン ?vagrant-omnibus vagrant upコマンドでchefをboxにインストールしてくれる ?vagrant-berkshelf vagrantとberkshelfの連携。Berkshelfの使い方をあまり知らなくても Berkshelfが使える
11.
なんとかつかえるレベルになるまで覚え る、、、が、、、
12.
いろいろ使えなくなる vagrant-berkshelf 非推奨になる Berkshlef ver2 chef-solo
13.
やってられない
14.
いろいろ使えなくなる vagrant-berkshelf 非推奨になる Berkshlef ver2 ver3になってなんかいろいろ変わる chef-solo
15.
やってられない
16.
いろいろ使えなくなる vagrant-berkshelf 非推奨になる Berkshlef ver2 ver3になってなんかいろいろ変わる chef-solo chef-zeroになるらしい 作業が簡単になるはず なのに、どんどんめんど くさい方向に向かってい くという矛盾
17.
やってられない
18.
てられな
19.
ついていけなくなる ベーシックにはインフラ専門のエンジニアはいません。 僕自身もインフラはあまり得意ではないので、片手間でやる には限界でした。。。
20.
悪魔のささやき 「新しく人が入ってきても開発環境0からつくるより、すでにある開発環境を vagrant packageコマンドでbox作ってを渡すほうがはやくね?」 「あたらしくサーバ立てるときも、ec2のイメージ作ってそこからあたらしくイ ンスタンス立ち上げるほうがはやくね?」
21.
それでも容赦なく変更がはいるインフラ設定 このライブラリ追加 するンゴ php.iniの設定変え るンゴ DBの設定変えるン ゴ nginxの設定変える ンゴ ユーザー追加 するンゴ パッケージ追加す るンゴ
22.
新しくテスト環境作 ろー、前にイメージ 作成したからあの AMI使えばいいか あー、あの時に 設定を変えたか らか??? 時間が無駄 エラーが発生! 調査。。。
23.
やっぱりプロビジョニングツール欲しい
24.
颈迟补尘补别と出会う
25.
itamaeとの出会い Chefをベースに開発をした、chefの簡易版の構成管理ツール。 cookpadのエンジニアの方が作成。 https://speakerdeck.com/ryotarai/itamae-infra-as-code-xian- zhuang-que-ren-hui ↑ の資料をみたところなんだかとっても使いやすそう!!
26.
実際に触ってみた感想 書き方がChefと似たような感じなので、とっつきやすい! 情報が少ないから辛いかなーと思ったけど、ドキュメントが簡易で読みやすい! https://github.com/itamae-kitchen/itamae/wiki
27.
覚えるコマンドの違い chef ?chef(chef-solo) ?knife(knife-solo) ?berks itamae ?itamae
28.
chefのざっくり手順 1. knife-soloインストール(gem install
knife-solo) 2. リポジトリ作成(knife solo init <リポジトリ名>) 3. cookbookの作成(knife cookbook create <cookbook名> -o 作成先パス) 4. レシピの作成 5. レシピ実行ファイル、run_listの作成 6. 実行前の準備(knife solo prepare?) 7. chefの実行(knife solo cook)
29.
itamaeざっくり手順 1. itamaeのインストール(gem install
itamae) 2. レシピを実行するファイルを用意(sabaku.rb) 3. レシピの作成 4. itamaeの実行 bundle exec itamae ssh -i ~ <秘密鍵> -u <ユーザ> -h <対 象サーバ> -y json/production.json sabaku.rb
30.
微妙な違い(only if、not ifについて) chef:not_if
{ File.exists? "hogehoge" } rubyのブロック構文が使える itamae:not_if “test -e hogehoge” rubyのブロック構文が使えない
31.
微妙な違い chef:対象サーバにインストールする必要がある Itamae:実行マシンにだけインストールされていればよい
32.
だんだんItamaeを使いたくなってきません か?
33.
実際のレシピを見てみる cookbook json Gemfile sabaku.rb
34.
実際のレシピを見てみる cookbook json Gemfile sabaku.rb include_recipe "cookbooks/git/default.rb" include_recipe "cookbooks/nginx/default.rb" include_recipe
"cookbooks/php/default.rb" include_recipe "cookbooks/timezone/default. rb" case node[:env] when "development" then ----- when "staging" ----- when "production" ----- end
35.
実際のレシピを見てみる cookbook json Gemfile sabaku.rb git nginx php timezone ? ? ? ? ? templates default.rb
36.
templates default.rb 実際のレシピを見てみる package "nginx" do action
:install end template "/etc/nginx/nginx.conf" do owner "root" group "root" mode "644" source "./templates/etc/nginx/nginx.conf.erb" end service "nginx" do action [:enable, :restart] end
37.
templates 実際のレシピを見てみる server { listen 80; server_name
<%= node[:nginx][:hostname] %>; root <%= [:nginx][:document_root %> } etc nginx nginx.conf.rb
38.
実際のレシピを見てみる cookbook json { "env":"development" "nginx" { "document_root":"/var/www/vhosts/local. example.com/htdocs" "hostname":"local.example.com" } } development.json staging.json production.json
39.
最後に cookpadさん、このような素晴らしいツールを作ってくれてありがとうございま す。 僕のような片手間インフラエンジニアにはおすすめです。 また、インフラ苦手だと思う人はitamaeに限らずこうしたプロビジョニング ツールを使うと結構勉強になると思うので是非触ってみてください!!
Editor's Notes
#4:
まずはじめに自己紹介をします。 Canvath これは画像をアップロードすることで、その画像を印刷したオリジナルのグッツが作成できるサービスです。 ベーシックにはテックブログがあり、たまーにブログ書いてます。
#6:
まずみなさん、chefを使えていますか? Chefを実際うまく活用できている方は、おめでとうございます。そのまま運用を続けて是非その運用ノウハウを懇親会のときにでも教えてください。 Chefを使うことを諦めた方、Chefを使おうと思ってなかなか使えてないかたは、今回お話するItamaeの導入を検討してみてください。
#7:
最初にChef と出会ったときはVagrantとセットでやれば開発環境を簡単につくれる、ということで覚えてみようと思いました。 開発環境を構築するのはいつも結構大変だったし、これが簡単になるというのならやるしかないと思いました。 ベーシックではサーバを5台も10台も使うような大規模サービスはあまりなかったので、サーバ台数を増やすことはあまりなかったので僕はどちらかというと開発環境を簡単に準備できることの方にメリットを感じました。
#8:
ということでchefを学びました chefを使うにはknifeコマンドが必要 サーバの設定手順を書いたものは、レシピと呼ばれ、複数のレシピをまとめたものをcookbookという chefは本来複数サーバを管理するものだけど、1台でも使えるchef-soloコマンドがある cookbookの管理を簡単にするberkshelfというのがあるのでつかうとよい
#10:
颁丑别蹿そのものの书き方を覚える前に颁丑别蹿周辺の理解をせねばならない
#11:
肠丑别蹿は対象サーバに肠丑别蹿をインストールしておかないと実行できないのですが、惫补驳谤补苍迟-辞尘苍颈产耻蝉プラグインを使うと产辞虫に肠丑别蹿をインストールしてくれます
#12:
いろいろ覚えて、なんとか使えるレベルにまでなったのですが、、、、、、
#13:
実际には别プロジェクトで开発が続いているっていうのもあるけど、いまいちよくわかってないし、このプラグインを使っていることでエラーになってしまうこともあったので使うのは断念
#15:
惫补驳谤补苍迟-产别谤办蝉丑别濒蹿が使えなくなって叠别谤办蝉丑濒别蹿の使い方をちゃんと覚えないとなーと思っていたのですが、そんなやさきバージョンがあがり、过去に覚えたやり方だとエラーがでるようになりました。。。
#17:
chef-soloは廃止になって、その代わりにchef-zeroというものが出てきたようです。 この辺りはあまり情報を得てないので、chef-zeroとchef-soloの違いとかはあまりわからないのですが、名前が違うぐらいなので、使い方も微妙に変わってくるでしょう??? なぜかやりたいことと、やっていることがどんどんかけ離れてしまいました。
#21:
悪魔のささやき
#23:
またベーシックの场合一部开発を他の会社にお愿いをすることをあるのですが、外部に惫补驳谤补苍迟の产辞虫をそのまま渡すわけにはいかなかったりするので、0から环境を準备できるようにしないといけない
#25:
そんなときに颈迟补尘补别と出会いました
#27:
うちの会社のサービスの場合あまり複雑なサーバ構成もないので、パッケージとかインストールできればほぼ十分なのでどうにかなります。 chefにあって、itamaeにないみたいな機能はいくらかありますが困ることはありませんでした。 あまり情報がなくても、実際のコードの書き方はchefとほぼ一緒なので、調べるときもchefの書き方を調べれば問題ありませんでした。
#28:
chefを使うのに、コマンドがknife?っていう時点で混乱 コマンド1つ!
#29:
knife-soloをインストール リポジトリ作成 cookbookの作成 run_listの作成 対象サーバにchefをインストール(knife solo prepare ディレクトリ構成とかガッチリ決まっているのでコマンド覚えてディレクトリを作成しないとしんどい
#30:
ディレクトリ構成は特に決まってない(ベストプラクティスはある) sabaku.rbも適当な名前で大丈夫。 基本自由 コマンドもitamaeコマンドだけ覚えておけばどうにかなる
#31:
ファイルがあるかどうかをチェックする場合 ブロック構文を使おうとするとエラーになるので、そこではまらないよう注意。
#34:
実際のレシピをみていただこうと思います。 Gemfileはitamaeをインストールするためにgem 'itamae'が記述してあるだけです。
#35:
rubyのファイルなので、普通にrubyのプログラムがかけます。 この 「include_recipe」で自分が書いたレシピを読み込みます。
Download