osc2014-kansai@kyoto josug - openstack and ansible

Post on 24-May-2015

2.055 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

オープンソースカンファレンス2014 KANSAI@Kyotoで行ったOpenStackとAnsibleによる自動化デモンストレーション

TRANSCRIPT

OSC  2014  Kansai@Kyoto

1

openstackOpen  source  software  to  build  public  and  private  clouds.

外部APIを利用したシステム構築自動化の一例

2014-­07-­30Hideki  Saito

TwitterID:  @saito_hidekiInternet  Initiative  Japan  Inc.

目次

•  はじめにü  インフラの管理を自動化する[ちょっと大袈裟(^^;]

•  外部APIを利用した仮想マシン構築の自動化1.  IaaS基盤を管理する2.  システム構築を自動化する

2

はじめに

3

OpenStackのインストールは苦行ですその苦行の後、ようやく動いた時...

その感動は凄まじくしばしば本来の目的を見失いますw

本来の目的って...

我々は、OpenStackのインストールをしたかったのではなく、本来の目的は...

1.  ITサーバ群を効率的に活用したい(構成管理)

2. オペレーションを省力化したい(自動化)

3. 現状よりも、より進んだ便利な機能を利用者に提供したい

のような、それなりに高尚な目的だったはずです。

4

ITインフラ構築・運用管理の自動化

ITインフラエンジニアの典型的な業務は、このような感じでしょうか。

•  ネットワーク機器を設定するp  ポートを設定するp  サーバのNICを物理的に接続するp  wikiなどでドキュメントを更新する

•  サーバを構築するp  OSをインストールするp  リモートログイン可能な状態にするp  追加パッケージのインストールや設定等の基本構築を行うp  ミドルウェアのインストール&設定を行うp  サービスに投入するp  wikiなどのドキュメントを更新する

このような日常業務を省力化する方法の1つを紹介します。

6

前提①

7

•  OpenStackを利用するOpenStackのクラウド基盤を操作するには、3つの方法があります。

• Horizonが提供するDashboard• OpenStackの主要な機能のみを提供するWebUI

• 各コンポーネントが提供するコマンドラインインターフェイス• 管理者用コマンド• 一般利用者用コマンド

CLI

• RESTful  APIでOpenStackの全ての機能を利用可能• Pythonのライブラリとしても提供されるAPI

前提②

APIによる操作OpenStackのようなクラウド基盤管理システムを利用した自動化を進めるにあたって、外部プログラムからの制御は必須の要件となります。OpenStackの各コンポーネントは、外部プログラムから制御されることを想定したAPIを提供しています。

8

デモ  〜~  動くOpenStack

9

デモ内容

1)基本構築  –  5分

2)Web/AP/DBの3層構成のサーバの構築  –  10分

Ansibleモジュール、Playbook、サンプルアプリケーションについては、以下のURLを参考にしてください。

p  http://www.slideshare.net/h-­saito/openstack-­37557806

10

基本構築

11

サーバ単体を構築してみる(5分)

OpenStackの各コンポーネントが提供するWebUI/CLIで仮想マシンを構築する流れは、概ね以下のような流れです。

今回はOpenStackの外部APIを利用するAnsibleに作業を代行させてみます。

12

4.  仮想マシンにフローティングIPを付与してInternetに接続する

3.  仮想マシンを作成する

2.  Internet接続用にフローティングIPを払い出す

1.事前準備(公開鍵登録やセキュリティグループ作成など)

現在のシステム構成

サーバ単体を構築してみる(5分)

13

Router

test-­server

Ext-­Net

JOSUG-­netw

ork

10.0.0.0/24

10.0.0.1

10.0.0.N

OpenStackのAPIを利用した外部プログラムで仮想マシンを作成します

グローバルIP

外部APIを利用した仮想マシン構築の自動化(応用)

14

現在のシステム構成

初期状態

15

Router

step-­server

Instance

OpenStackや仮想マシンに対する操作はstep-­server上から行います

Ext-­Net

JOSUG-­netw

ork

10.0.0.0/24

10.0.0.1

10.0.0.N

グローバルIP

現在のシステム構成

シナリオ  -­  web/ap/dbの3層構造をお手軽に構築

16

Router

step-­server

Instance

Ext-­Net

JOSUG-­netw

ork

10.0.0.0/24

10.0.0.1

10.0.0.N

web10.0.0.N

rest10.0.0.N

グローバルIP db10.0.0.N

シナリオ  -­  web/ap/dbの3層構造をお手軽に構築

WEB/ReST/DBの3台の仮想マシンを構築して、それぞれ役割ごとにアプリケーションをインストールしてみましょう。

17

Ansibleについて

18

Ansibleについて①

Ansibleの特徴AnsibleはPythonで書かれた*作業*だけなく*仕事*を自動化するためのツールで、OpenStackと組み合わせることにより、OS・ミドルウェア・アプリケーションのインストール・設定作業を自動化することが可能です。

ü  作業の一連の流れを1つにまとめるPlaybookを持つü  多数の外部モジュールが標準・オプションで提供されているü  必要な機能を提供するモジュールは自身で開発することが可能ü  作業の冪等性が担保されているü  push型でエージェントレスであるü  動作に必要な要件が少ない

Ø  SSHログイン可能Ø  Python実行環境(2.4以降)といくつかのライブラリが存在する

19

Ansibleについて②

Ansibleの挙動以下にAnsibleの動きを図示します

20

Ansible

実行可能ファイル

実行可能ファイル

pingモジュール

setupモジュール

Inventoryファイル

sshd1

2

3

指定されたモジュールをインポートするターゲットノードにsftp/scpで実行可能ファイルを転送してssh経由でログインし実行する

指定されたグループのホスト群に関する情報を取得する モジュールから実行ファイル

を生成です

Ansibleについて③

仕事をまとめるPlaybookここまでは、ansibleコマンドにより単発の仕事をAnsibleに実行させてきましたが、現実ではこのようが仕事が複数集まって手順として実施されることになります。Ansibleは、下記のような手順をPlaybookとして定義して実行することが可能です。以降ではAnsibleのPlaybook機能を利用して、手順書にしたがった作業を自動化してみましょう。

21

パッケージインストール

設定変更

デーモン再起動

実行順序は常に保証される必要がある

AnsiblePlaybook

1

2

3

まとめ

22

まとめ

Ansibleを利用したOpenStackが提供する外部APIの活用方法をご紹介しました。Ansibleでなくても簡単なコマンドを並べたシェルスクリプトだけでも省力化の効果は得られます。

OpenStackは、ほぼ全ての機能を外部プログラムから管理可能なAPIを提供しており、Ansibleなどの自動化ツールを利用すれば、同時大量構築やオートスケールなどの拡張機能を独自実装可能です。

23

ご静聴ありがとうございました

24

top related