• 検索結果がありません。

プレゼンタイトルを入力してください

N/A
N/A
Protected

Academic year: 2022

シェア "プレゼンタイトルを入力してください"

Copied!
29
0
0

読み込み中.... (全文を見る)

全文

(1)

株式会社 日立ソリューションズ オープンソース技術開発センタ 2013/9/14

知らなきゃ損!

今話題の自動構築フレームワーク Chef !

(2)

1. システム構築における課題 2. Chefの概要

3. Chef-Clientのデプロイ方法

知らなきゃ損!

今話題の自動構築フレームワークChef!

Contents

(3)

1 . 章 システム構築における課題

知らなきゃ損!

今話題の自動構築フレームワークChef!

(4)

1-1 システム構築における課題

大規模環境構築における課題

近年、OpenStackやHadoopなど大規模クラウド基盤が注目を集めている。

大規模環境の構築作業を行うには、次の様な作業が発生する事がある。

単調な繰り返し作業

待ち時間が発生する作業

このような作業は、以下の事象を引き起こす。

 モチベーションの低下

 設定ミスの発生

 障害発生時の切り分けが困難

自動化を検討しましょう!

設定ミスが あるのは、

どのマシン だ?

(5)

2 . 章 Chefの概要

知らなきゃ損!

今話題の自動構築フレームワークChef!

(6)

2-1 Chef の概要

Chefとは

システム自動構築のために開発されたOSSのフレームワーク。

主な開発は、米国のOpscode社

多数の導入実績があり、Facebook も採用

システムをコードで管理する

従来は、詳細設計書や構築手順書を使用して行っていた部分を、

コード化して管理する。Chefは、その仕組みを提供する。

OS設定A OS設定B ソフトA ソフトB

OS設定A OS設定C ソフトA ソフトC

サーバ1

サーバ2

OS設定A OS設定B OS設定C ソフトA ソフトB ソフトC

Chef

include_recipe "yum"

directory "/etc/ntp" do owner "root"

group "root"

mode "0755"

action :create end

yum_package “ntpd" do version “X.X.XX- 15.el6.centos"

action :install end

構成を集約

サーバ1

サーバ2

サーバ1

サーバ2

システムの状態を コードで定義

システムA

(7)

2-2 導入効果とユーザ

導入効果

自動化によるコスト削減の他、コンプライアンス対応にも利用されている。

環境構築の自動化による構築コスト削減

(新規構築に限らず、既存環境の移行に伴う再構築も含む)

設定変更の自動化による運用・管理コストの削減

オペレーションの可視化によるセキュリティ・コンプライアンス対応

ユーザ(企業)

クラウドサービスを提供する企業が多数。

SNS・ソーシャルゲーム、SaaS を提供するサービス企業 (Facebook/サイバーエージェント/IGNなどの企業)

クラウド基盤を提供・運用するクラウドベンダ

(Stratalux/Cycle Computing/DreamHostなどの企業)

自社でECサイトを運営する企業

(BookRenter/MercadoLibre/LANなどの企業)

(8)

2-3 Chefのアーキテクチャ

Client/Server スタンドアロン(Chef Solo)

Chef サーバ

Chef Server

構築対象マシン サーバ2

Chef Client

構築対象マシン サーバ1

Chef Client

サーバ1 サーバ2

レシピA レシピB レシピC

サーバとレシピの紐付け

構築対象マシン サーバ2

Chef Solo

構築対象マシン サーバ1

Chef Solo

Client/Serverタイプは、レシピと構築対象マシンの 状態を一括管理できる

・Chef ServerでレシピとClient情報を管理

・Chef Clientを実行すると、自身に割り当てられた レシピを取得・適用

スタンドアロンタイプは、構築台数が少ない(数十台)

場合に有効

(台数が少なくても正確さが求められる構築に有効)

・構築対象マシンにレシピを配布

・Chef Soloは配布されたレシピを読み込み・適用

DB

Chefのアーキテクチャ

システムの状態は、レシピと呼ばれるファイルにコードで記述し管理する

構築対象マシンにレシピを配布し、Chefプログラムがレシピに基づいて構築

Client/Serverと、スタンドアロンの2通りの使い方がある

(9)

2-4 Chef Serverのアーキテクチャ

Chef Serverの基本構成

Chef Server、Chef Client および 操作端末で構成される。

Chef Client

操作端末

WebUI/CUI

Chef サーバ

Chef Server の操作 Chef Server 内部DB

(V.10までは CouchDB、V.11 から PostgreSQL )

レシピに基づいた 構築の自動実行 レシピ

システムのあるべき状態を定義

Chef Client、レシピの管理

構築対象 マシン

Chef DB

Chef

Server

(10)

2-5 基本的な動作(1) Web サーバ構築例

レシピの作成

管理端末でレシピを作成する。

Chef Client Chef

DB

管理端末

Chef サーバ 構築対象

マシン

レシピ

作業マシンでレシピを作成する。

Chef

Server

(11)

2-6 基本的な動作(2) Web サーバ構築例

レシピのアップロード

レシピを作成し、Chef Server にアップロードする。

Chef Client Chef

DB

管理端末

Chef サーバ 構築対象

マシン

レシピ

Chef サーバ へアップロードする。

Chef

Server

(12)

2-7 基本的な動作(3) Web サーバ構築例

レシピの割り当て

Chef Serverにアップロードしたレシピと 構築対象マシンの紐付けを行う。

Chef DB

Chef サーバ

レシピ

レシピを構築対象マシンに紐付ける。

Chef Server

Run list

Run list

Run list 利用可能

レシピ

ネットワーク

Webサーバ リポジトリ

利用可能 ロール

Chef Client 導入マシン

Web リポジトリ

ネット

(13)

2-8 基本的な動作(4) Web サーバ構築例

Chef Clientによるレシピの取得 Chef Client が レシピを取得する。

Chef Client Chef

DB

Chef サーバ 構築対象

マシン

Chef Server

実行

Webサーバ リポジトリ設定 ネットワーク設定

Run list

構築対象マシンで“chef-client”コマンド を実行する。

(14)

2-9 基本的な動作(5) Web サーバ構築例

Chef Clientによるオペレーションの実行

Chef Client が取得したレシピに基づいて、オペレーションを行う。

実行

Chef サーバ 構築対象

マシン

Run list

ネット ワーク

設定

Webサーバ リポジトリ設定

Chef DB

Chef Client は、取得したレシピに基づいて インストールやファイルの設定を行う。

(15)

2-10 基本的な動作(6) Web サーバ構築例

実行

Chef サーバ 構築対象

マシン

Run list

リポジ トリ 設定

Webサーバ

Chef DB

Chef Clientによるオペレーションの実行

Chef Client が取得したレシピに基づいて、オペレーションを行う。

Chef Client は、取得したレシピに基づいて

(16)

2-11 基本的な動作(7) Web サーバを構築

必要に応じて外部から構築に必要なリソースを調達 必要な外部リソースは、別途リポジトリなどから取得する。

外部 リポジトリ

実行

Chef サーバ 構築対象

マシン

Run list

Web サーバ

Chef

DB

Yum などのパッケージ管理ツールと連携し、

外部のリポジトリからリソースを取得することでもできる。

(17)

2-12 レシピの 記載例

システムの状態を Ruby の DSL※1 で順序立てて記載する。

#

# Cookbook Name:: cm4-server

# Recipe:: default

#

# Copyright 2012, YOUR_COMPANY_NAME

#

# All rights reserved - Do Not Redistribute

#

include_recipe "yum"

yum_package "httpd" do version "2.2.15-15.el6.centos"

action :install end

service "httpd" do

supports :status => true action [ :enable , :start ] end

remote_file "/etc/httpd/conf/httpd.conf" do source "httpd.conf"

owner "root"

group "root"

◆順序

Apache のパッケージがインストールされている状態を定義した 後に、Apache のサービスが起動している状態を定義する。

レシピ(XXX.rb)

◆状態で定義

Chefの場合、レシピに状態を定義する。Chefは、レシピとシス テムの状態を比較し、レシピと異なっている場合に設定を行う。

Shellの場合、ファイルの存在確認などを行う必要がある場合 もある。

ファイルの存在確認を行う場合の例--- if [ -e /etc/httpd/conf/httpd.conf ] then

(18)

3 . 章 Chef-Clientのデプロイ方法

知らなきゃ損!

今話題の自動構築フレームワークChef!

(19)

3-1 Chefを使用する際の流れ

レシピの準備

レシピの作成

レシピアップロード

構築対象マシンとレシピの紐付け設定

chef-client

のデプロイ

• chef-client

インストール

• chef-client

の設定

レシピの適用

• chef-client

の実行

管理端末

Chef サーバ

レシピ

Chef Client 構築対象

マシン

構築対象

マシン

Run list

(20)

3-2 前提と準備

前提

Red Hat系OSのシステムを構築

ハードウェアは、IPMIに対応

(IPMI:ハードウェア管理のインターフェース仕様)

準備

Chef Serverを内臓するインストール用のサーバを用意済 (以下、インストールサーバ)

ChefのClientとレシピの紐付けは実施済 インストール

サーバ

構築対象マシン群

(ブレード)

・DHCP Server

・TFTP Server

・Web Server

・Chef Server

(21)

3-3 Chef Client インストールの自動化

ネットワークブートと Kickstartを使用

インストール用のサーバを用意し、ネットワーク経由で構築。

構築対象 マシン インストール用

マシン

インストーラ

Kickstart

設定ファイル OS 設定

Chef Client インストール

Chef Clientの構築を

Shellスクリプトで実装 インストール媒体

の用意

OS

インストール

(GUIで対話的に) コマンド操作

ネットワークブート

Kickstart

※1

Chef Client

のインストール

Kickstart

の後処理で実行)

OSインストール

手動 自動

アプリケーションのデプロイ

(22)

3-4 自動構築の流れ

マシンの起動からアプリケーションサービスの起動まで自動構築

構築用サーバ

DHCP server

TFTP server

HTTP server

Chef Server

Kickstart ファイル ディスクイメージ ブートローダ

構築対象マシン群

暫定IPアドレス の取得 TFTP server

の参照 Kickstart file

の取得 OSの インストール

chef-client デプロイと実行

IPMIを使用して 電源を入れる

次シートでもう少し詳細を説明

(23)

3-5 Chef Clientのインストール・設定を自動化

Kickstartの後処理(オプション)を使用

KickstartのOSインストール後に実行されるスクリプトでChef Clientのデプロイを行う。

ネットワーク設定

ホスト名

• IPアドレス

Yumリポジトリ設定

・インストールサーバのリポジトリを登録

Chef Clientインストール

・Yumを使用したインストール

Chef Client設定

認証キーの取得

• Client設定ファイルの取得

構築対象 マシン インストール

サーバ

(24)

3-6 Chef の特徴

Chef には、以下の特徴がある。

レシピ再利用による構築・管理工数の削減

作業の重複を削減する

検索機能

Web上に公開されているレシピを検索・利用できる。

システム状態を管理するフレームワークの整備

システムを状態で定義・管理する仕組み

人為的ミスのリスク排除

人為的ミスのリスクを排除することで、手戻りのリスクを軽減できる。

類似構成のマシンが多い大規模システムの構築に有効

類似した構成のマシンが多い場合、

レシピ作成の費用対効果が高くなる。

レシピを共有

同じレシピを複数台に使える!

(25)

株式会社 日立ソリューションズ オープンソース技術開発センタ

知らなきゃ損!

今話題の自動構築フレームワークChef!

2013/9/14

END

(26)

本資料に掲載されている会社名、製品名、サービス名は各社の登録商標、又は商標です。

・Hadoopは、Apacheソフトウェア財団の米国及びその他の国における登録商標です。

・OpenStackは、OpenStack,LLC の登録商標です。

・Facebookは、米国Facebook Inc.の登録商標です。

・その他記載の会社名、製品名は、それぞれの会社の商標もしくは登録商標です。

(27)

付録1 インストールは簡単

Omnibusインストーラ

開発元のOpscode社が提供するインストーラを使用すれば構築は簡単。

コマンド数行でインストール

Red Hat系OSでは、“/opt/chef”以下に全て配置(環境への影響を限定)

Ruby(およびRubyGems)同梱

既存のRuby/RubyGems環境と競合しない。

# rpm –ivh /tmp/chef-server-11.0.6-1.el6.x86_64.rpm

# chef-server-ctl reconfigure

# chef-server-ctl test

# /opt/chef/embedded/bin/ruby -v

ruby 1.9.3p286 (2012-10-12 revision 37165) [x86_64-linux]

# /opt/chef/embedded/bin/gem -v 1.8.24

#

(28)

付録2 開発が進められているプラットフォーム

現状は、Linux系OSが中心

UbuntuやDebian、Red Hat系LinuxなどのLinux系OSが中心。

Windowsでも開発が進んでいる。

参照元:http://wiki.opscode.com/display/chef/System+Requirements(最終アクセス:2013/08/06)

(29)

付録3 構築対象マシンの情報を取得するOhai

Ohaiコンポーネント

構築対象マシンに関するOSの種類、カーネルのバージョンといった プラットフォーム情報の他、ホスト名やIPアドレスなども取得できる。

プラットフォームの詳細

(OSの種類やバージョンなど)

ネットワークの使用状況

メモリの使用状況

カーネルのデータ

ホスト名

構築対象マシンのホスト名を設定する場合、以下の様にレシピを記載する。

Chefで構築する際に、各ノードでそれぞれのホスト名(FQDN)が設定される。

物理レイヤ Ohai

Chef Client/Solo 構築対象マシン

・・・

hostname=<%= node['fqdn'] %>

アプリ構築レシピ

・・・

hostname=HOSTNAME.

設定後のファイル

参照

関連したドキュメント

シートの入力方法について シート内の【入力例】に基づいて以下の項目について、入力してください。 ・住宅の名称 ・住宅の所在地

私が点訳講習会(市主催)を受け点友会に入会したのが昭和 57

( HP Desi gnj et T650 A0

本人が作成してください。なお、記載内容は指定の枠内に必ず収めてください。ま

ユーザ情報を 入力してくだ さい。必要に 応じて複数(2 つ目)のメー ルアドレスが 登録できます。.

*Windows 10 を実行しているデバイスの場合、 Windows 10 Home 、Pro 、または Enterprise をご利用ください。S

パキロビッドパックを処方入力の上、 F8特殊指示 →「(治)」 の列に 「1:する」 を入力して F9更新 を押下してください。.. 備考欄に「治」と登録されます。

ユーザ情報を 入力してくだ さい。必要に 応じて複数(2 つ目)のメー ルアドレスが 登録できます。.