DevOps 研修 初級編

Post on 09-Apr-2017

1.418 views 1 download

Transcript of DevOps 研修 初級編

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

インフラをコードでコントロールする

作業手順や設定内容がコードで管理できる

Ruby`gem install chef`

https://docs.chef.io/ruby.html

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

Practice

https://chef.ioをみる

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 を見る

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

Contact

Blog hirofukami.com

Facebook /fukami

Twitter @d_sea

Mail fukami@shakesoul.net