Upload
hiro-fukami
View
1.417
Download
1
Embed Size (px)
Citation preview
DevOps研修 初級編
Hiro Fukami ShakeSoul, inc.
I’m …深海 寛信 Hiro Fukami
株式会社シェイクソウル 代表取締役 CEO
創業者 + エンジニア + 一人娘のパパ
Blog hirofukami.com
Facebook /fukami
Twitter @d_sea
今日お話すること
DevOps の 代表ツールである Chef を具体的に解説します
今日のゴール
Chef のツールへの理解と演習を始めるための事前知識を得る
目次1. Chef を知る
2. Chef の動作を見る
3. Chef の ツール群
4. Chef の使い方
5. 群衆の叡智
6. 演習に向けての準備
ちょっと質問
お仕事内容を把握させてください
開発 or 運用 or どっちも
ワンフレーズ紹介
参加者へのお願い
わからないまま帰らない
わからない時は、
• その場で質問をする
• わからない顔をする
質問の効果自分がわからないものが何かを知ることができる - [認識]
わからないものを言語化してアウトプットできる - [理解]
わからないものがわかるようになる - [成長]
Chefを知る
ChefサーバにおけるOperationをコードによって実行する
冪等性
Infrastructure as Code
サードパーティCookbook: Chef Supermarket
ソフトウエアが人に代わって素早く正確に作業することができる
今まで管理しづらかったサーバにおける作業がコードに置き換わる
Chef Software, inc.Headquarters: Seattle, WA
Founded: September, 2008
資金調達額: $65M ($32M Dec 2013, $19.5M Mar 2012, $11M Jun 2010, $2.5M Apr 2009)
https://www.chef.io/
https://www.crunchbase.com/organization/chef
Chefの効果サーバアプリケーションインストール・セットアップ時間
ex.) Ruby on Rails 本番環境
昔 : 手順を見つつインストール、セットアップ、トライ・アンド・エラーしながら何とか動作させる 1日
今 : Chef Cookbook 10分
1日(1 x 24 x 60) / 10 = 144倍
Chef の特徴料理用語
冪等性
自動化
コード化
Ruby
料理用語Chef
knife : 実行コマンド
Cook : 定義したコードを適用すること
Cookbook : Cookするためのコード群
Recipe : Cook時の動作を定義する基本コード
Supermarket : Cookbooksのサードパーティサイト
冪等性ある操作を1回行っても複数回行っても結果が同じであることをいう概念である。(Wikipedia)
=> あるべき姿に収束するように動作する
自動化
人からシステムへ
誰よりも早くて正確
Chef | IT automation for speed and awesomeness
コード化
Infrastructure as Code
インフラをコードでコントロールする
作業手順や設定内容がコードで管理できる
Chefの動作を見る
DemoサンプルCookbookを動作させる
DemoサンプルCookbookをもう一度動作させる
冪等性の確認
Chefのツール群
Chef Tools
Chef Server
Chef Client
Chef Solo
Chef ServerChef 社の主力商品
サポートが充実すると料金が上がる
Node(適用先)の管理、Cookbook適用を行う
WebUIもオプションである
Workstationから操作も可能
http://docs.chef.io/server/
Chef ServerWorkstation - Chef Server - Node
Chef ClientNodeの内部で動作する
Cookbookを同期し、knifeコマンドをインストールする
Cookするためには必ずNodeにChef Clientのインストールが必要
Unix/Linux以外にWindows/Mac OS Xにも対応
https://www.chef.io/download-chef-client/
Chef Soloオープンソース
https://github.com/matschaffer/knife-solo
Chef Serverを使うことなくCookbookをNodeに適用できる
Chef Serverほど機能や管理を求めないケースで用いる
sshもしくはlocalhostにて適用する
https://docs.chef.io/chef_solo.html
Chefの使い方
ディレクトリ構成- cookbooks
- nodes
- site-cookbooks
- [cookbook name]
- recipes
- templates
重要なのは recipes- site-cookbooks
- [cookbook name]
- recipes
- default.rb
- xxxx.rb
PracticeデモしたCookbookのディレクトリ構成を見る
https://github.com/shakesoulinc/sample-cookbooks
PracticeResources Reference を見る
https://docs.chef.io/chef/resources.html
群衆の叡智から学ぶ
Chef Supermarket
Cookbookを登録・参照できる
サードパーティCookbookサイト
https://supermarket.chef.io/
PracticeChef Supermarket で好きなCookbookを見つける
Cookbookのソースを読む
演習に向けての準備
前提となる知識Linux(CentOS)オペレーションの経験
ssh login
Linux基本コマンド
パッケージインストール (ex. CentOSなら yum)
やりながら学ぶ知識
Chef アーキテクチャ
Chef コマンド
基本的 Rubyスクリプト
演習開始までに行ってほしいこと
疑問点をなくす
事前知識を得る
演習環境を整える
疑問点をなくす今まで登場した単語、サービス名で意味がわからないものは、調べる or 質問して解消してください
ex. サービス名は検索してサービスページのAbout, Pricingページを参照する
質問は Contact 情報を活用ください
事前知識を得るResources Reference(https://docs.chef.io/chef/resources.html) を一通り眺め、どんなことができるのか知る
Chef Supermarketから気に入ったCookbookを1つ以上見つける
そのCookbookの recipe, attribute のコードを読みどんな動作をさせているのかを想像する
演習環境を整える
自分専用のLinuxマシンが2台あること
1台のChef実行マシンからNode(Chef適用先)へssh loginできること
ssh loginはキー認証で入れるとあとあと楽です
Thanks!!
Q&A