Successfully reported this slideshow.
Your SlideShare is downloading. ×

itamaeで一撃サーバーProvisioning

Ad

itamaeで
一撃サーバー構築
Hamamatsu.rb #58
@jacoyutorius

Ad

itamae
• サーバーのプロビジョニングツール
• サーバーにインストールするパッケージや
ミドルウェアのインストール内容や設定を
Rubyのコードで記述する

Ad

package "nginx" do
action :install
end

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Ad

Upcoming SlideShare
Vagrant+Chef
Vagrant+Chef
Loading in …3
×

Check these out next

1 of 33 Ad
1 of 33 Ad
Advertisement

More Related Content

Advertisement
Advertisement

itamaeで一撃サーバーProvisioning

  1. 1. itamaeで 一撃サーバー構築 Hamamatsu.rb #58 @jacoyutorius
  2. 2. itamae • サーバーのプロビジョニングツール • サーバーにインストールするパッケージや ミドルウェアのインストール内容や設定を Rubyのコードで記述する
  3. 3. package "nginx" do action :install end
  4. 4. • サーバーの あるべき状態 を定義したファ イルに従ってパッケージやミドルウェアの インストールや設定を自動的にかつ一括で 行うツール • Linuxディストリビューションによる違 いを吸収してくれたりする プロビジョニングツール
  5. 5. • 冪等性(何度実行しても同じ状態になる) • プログラムから扱いやすい形式のファイ ルで定義することで、バージョン管理ツー ルによる差分管理が容易 • Chef, Puppet, Ansibleなど プロビジョニングツール
  6. 6. 覚える用語
  7. 7. ・レシピ ・リソース
  8. 8. レシピ • パッケージやミドルウェアのインストール内容 をRubyで記述したもの package "nginx" do action :install end
  9. 9. リソース • 対象サーバー上にて実行する命令 package "nginx" do action :install end
  10. 10. リソース • package • file • directory • git • remote_file • template • user • group • execute
  11. 11. install nginx package "nginx" do action :install end
  12. 12. create user user "yuto" do action :create end
  13. 13. create group group "yuto" do action :create end
  14. 14. template template "/root/.bash_profile" do source "./templates/bash_profile.erb" variables(root_path: node[:root_path]) end
  15. 15. shell execute echo helloitamae" do user "root" command "echo helloitamae" end
  16. 16. $ tree ├── Gemfile ├── Vagrantfile ├── cookbooks │ └── recipes │ ├── ruby_install.rb │ └── templates └── servers └── target_server └── node.yml
  17. 17. install (gem) gem install itamae
  18. 18. install (package) > echo 'deb https://dl.bintray.com/ itamae/itamae trusty contrib' ¦ sudo tee /etc/apt/sources.list.d/itamae.list > sudo apt-key adv --keyserver keyserver.ubuntu.com --recv D401AB61 > sudo apt-get install itamae Ubuntu 14.04 trustly https://github.com/itamae-kitchen/omnibus-itamae
  19. 19. 実行(local) itamae local ruby_install.rb
  20. 20. 実行(vagrant) itamae ssh --vagrant -h hostname ruby_install.rb
  21. 21. 実行(ssh) itamae ssh -h hostname ruby_install.rb
  22. 22. 色々オプションをつけて結局こうなる bundle exec itamae ssh -h hostname cookbooks/recipes/ruby_install.rb -y servers/ servername/node.yml -l debug
  23. 23. オプション ̶dry-run, -d - 試しに実行したい ̶log-level, -l - 詳細なログが見たいとき ̶node-yaml, -y - サーバーの固有情報を記述したファイル(node.yml)のパスを指定 and more …
  24. 24. plugins •itamae-plugin-recipe-rbenv •itamae-plugin-resource-iptables •itamae-plugin-recipe-minecraft •itamae-plugin-resource-aws •and more... (https://rubygems.org/search?query=itamae- plugin) plugins
  25. 25. plugin usage Gemfile gem "itamae" gem "itamae-plugin-recipe-rbenv"
  26. 26. 覚えるリソースも数種類しかないので gemの中身も読みやすい。 itamae-plugin-recipe-rbenvのコア部分 (system.rb) itamae-plugin-recipe-rbenv
  27. 27. • 使われているのはgit, package, file, executeリソースくらい • インストールパスやrubyのバージョン はnode.ymlに定義。 ディストリビュー ションによる分岐はSpecinfraから取得 itamae-plugin-recipe-rbenv
  28. 28. system.rb
  29. 29. node.yml system.rb
  30. 30. まとめ
  31. 31. まとめと今後 • itamae楽しい • 上手く動くと全能感 • 多少ハマるところもある (VM宛てに実行した時と実行結果が違う とか。OSイメージの問題かもしれない) • 実運用ではサーバー構築手順書をレシピ化した(検証中) • 出来上がったサーバーのテスト( => Serverspec)
  32. 32. otto • 何も考えずにとりあえず開発環境の入ったVMが 欲しい場合はotto • Ruby / PHP / Go / node.jsのインストール されたVMが一発で手に入る(尚、バージョンの指定 はできない模様)
  33. 33. おわり Hamamatsu.rb #58 @jacoyutorius

×