SlideShare uma empresa Scribd logo
1 de 23
Baixar para ler offline
オープンクラウド・キャンパス



環境構築自動化ツールのご紹介




      Ver1.0 2012/10/13
   中井悦司 (Twitter @enakai00)
クラウドが実現するソフト開発・運用の変革と自動化

    Contents

     既存ツールの組み合わせによる「パーソナルクラウド」の構築
     複数環境へのデプロイ自動化ツール Aeolus Conductor




2                                   Open Cloud Campus
既存ツールの組み合わせによる
「パーソナルクラウド」の構築
クラウドが実現するソフト開発・運用の変革と自動化

    「パーソナルクラウド」における自動化の実例
                                                                                                Github
     図の①〜③を1つの設定ファイルを元に自動実行するスクリプト
      を作成して、「パーソナルクラウド」として活用

    OS/アプリケーション                                                            アプリ設定情報
                                      OS構成情報
        パッケージ                                                          (Puppet Manifest)
                                      (KickStartファイル)


                         Kickstart                    ③ アプリ導入/設定
        YUM                                                Git/Puppet
       リポジトリ                  ② OS/アプリ導入
                                                                                           設定ファイルの
                                                                                           バージョン管理
                              VM                               ① VM作成
        Apache                                                                     VM構成情報
      HTTP Server                             KVM                                  (virt-installコマンドの
                                                                                   パラメータ群)

                      Red Hat Enterprise Linux 6           libvirt
                            x86_64サーバ

     詳細は「アプリケーション環境構築の自動化をまじめに考えてみる(1)〜(4)」を参照
4    http://bit.ly/SRfpwb http://bit.ly/O9xgAa http://bit.ly/Qij9Gx http://bit.ly/QB9POk      Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

    主な利用ツール (1)

     libvirt
       – Linux KVM, Xen, LXC などの仮想化環境をプログラムから操作するための標準ライブラ
         リ(C言語、Pythonなどから利用可能)。
       – VM、仮想ディスクイメージ、仮想ネットワークの作成・操作が可能。
       – ここでは、libvirtを利用したコマンドvirt-installを使って、VMの自動作成を行なってい
         る。


     virt-installのコマンドオプションの例
      # virt-install 
                --name ${vmname} 
                --vcpus ${vcpus} 
                --ram ${ram} 
                --disk path=${diskpath},size=${disksize},sparse=false 
                --network ${network} 
                --os-variant ${os-variant} 
                --location ${url} 
                --vnc




5                                                                         Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

    主な利用ツール (2)

     KickStart                  KickStartファイルの例
       – RHELのインストーラ(Anaconda)   url --url=${url}
        の一機能。GUIインストーラで入力す       lang ja_JP.UTF-8
        る項目を事前に書き込んだテキスト         keyboard jp106
                                 network --onboot yes --device eth0 --bootproto
        ファイル(KickStartファイル)を利    static --ip ${ip} --netmask ${netmask}
        用して、RHELのインストールを全自       --gateway ${gateway} --nameserver ${nameserver}
        動で行う。                    --hostname ${hostname}
                                 rootpw passw0rd
       – インストール後に指定のスクリプト        timezone --isUtc Asia/Tokyo
                                 bootloader --location=mbr
         (Postスクリプト)を実行すること
                                 zerombr
         ができる。                   clearpart --initlabel --drives=vda
       – ここでは、RHELを自動インストール      part /boot --fstype=ext4 --size=500
                                 part swap --size=1024
         した後に、Git/Puppetによるアプリ   part / --fstype=ext4 --grow --size=200
         ケーション導入・設定をキックしてい       reboot
                                 %packages
         る。
                                 @base
                                 @core
                                 @japanese-support
                                 %end
                                 %post --log=/root/anaconda-post.log
                                 set -x
                                 echo "${ip}    ${hostname}" >> /etc/hosts
                                 %end

6                                                                   Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

    主な利用ツール (3)
                             Puppetマニフェストの例
     Puppet
                             class pgsql {
      – OS/アプリケーションの構成管理       service { 'postgresql':
        ツール。「あるべき状態」を宣言的         name
                                 ensure
                                           => 'postgresql',
                                           => running,
        に記述した「マニフェスト」に従っ         enable    => true,
                                 subscribe => Package['postgresql-server'],
        て、アプリケーションの導入、設定       }
        ファイルの書き換えなどを自動実行       package { 'postgresql-server':
        する。                      name   => 'postgresql-server',
                                 ensure => installed,
      – 管理対象サーバが多数ある場合は、       }
        専用の「Puppetサーバ」からマニ     file { '/var/lib/pgsql/data/postgresql.conf':
        フェストの配布を行うクライアン          owner   => 'postgres',
                                 group   => 'postgres',
        ト・サーバモデルで使用する。           mode    => '0600',
                                 source => "$FACTER_manifest_dir/dist/postgresql.conf",
      – ここでは、Puppetサーバは使わず       notify => Service['postgresql'],
        に、Githubからマニフェストをダ     }
                                 require => Exec['initdb'],

        ウンロードして、直接に適用する形
                              exec { 'initdb':
        で利用している。                path      => '/sbin',
                                command   => 'service postgresql initdb',
                                logoutput => true,
                                creates   => '/var/lib/pgsql/data/PG_VERSION',
                                before    => Service['postgresql'],
                                require   => Package['postgresql-server'],
                                notify    => Exec['init_pw'],
                              }
                             ・・・

7                                                                       Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

    主な利用ツール (4)

     Git
       – プログラムソースコードの分散バージョン管理システム。元々はLinux Kernelの開発用に
         作成された。インターネット上にコードリポジトリを作成して無料で利用できるサービ
         ス「Github」の登場により、利用者が増加した。
       – ここでは、Puppetの設定ファイル(マニフェスト)をGithubにおいて、Kickstartの
         Postスクリプトから、指定バージョンのマニフェストのダウンロードと適用を実行して
         いる。

     Githubからマニフェストを取得して適用するスクリプトの例
      mkdir -p /tmp/gittmp
      cd /tmp/gittmp
      git clone $GitRepository
      cd $RepoName
      git checkout $ConfigTag
      export FACTER_manifest_dir="/tmp/gittmp/$RepoName"
      puppet main.pp




8                                                          Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

    (参考)Githubのスクリーンショット



                                リポジトリの公開URL




                               過去の変更履歴を
                                 全て保存

         特定の時点のコードを
           タグ名で指定


9                                         Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

 「パーソナルクラウド」自動化における考察

  便利な点
     – 設定ファイルの再利用性
       • テキストファイルにすべての設定が記録されているので、設定変更が簡単で、少しづ
         つ設定の異なる類似環境を何度でも再構築できる。
       • Puppetのマニフェストがバージョン管理されているので、バージョン番号を指定す
         るだけで、特定バージョンの設定が適用できる。            Github
  不便な点
     – 単一の物理サーバが前提
       • 複数の物理サーバへのデプロイはできない。     v1.0   v1.1
     – 複数VMの依存関係が扱えない
       • Puppetはサーバ間の依存関係を解決する機能がないので、「DBサーバとWebサーバ
         を連携させる」ような設定はできない。
       • 現状では、必要な際は、手続き型のスクリプトで連携処理を行なっている。(ので、
         Puppetの「宣言的記述」のメリットが半減してしまう。)


     ⇒ 本格的な自動化ツールでは、複数ノードへのデプロイと複数VMの依存関係の取り扱い 
      が必要。
10                                              Open Cloud Campus
複数環境へのデプロイ自動化ツール
    Aeolus Conductor
クラウドが実現するソフト開発・運用の変革と自動化

 Aeolus Conductorとは?        「Aeolus(アイオロス)でRHELonEC2を利用する」
                                            http://bit.ly/QzniL4


  複数クラウドに対応したイメージ作成/アプリケーション環境構築の自動化ツール




12                                                   Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

 複数クラウド/仮想化環境を適材適所で活用
  共通の定義ファイルから複数環境に同一のアプリケーション実行環境を構築。
     – システムテンプレート:JEOSの構成定義ファイル
     – アプリケーション・ブループリント:アプリケーション実行環境の構成定義ファイル

                               システムテンプレート
                               アプリケーション・ブループリント




             本番環境           開発・テスト環境


     パブリック
                仮想化環境A           仮想化環境B
      クラウド

13                                        Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

 Aeolus Conductorによるアプリケーションデプロイの流れ
  アプリケーションデプロイ時は、ConfigServerを介して構成情報を交換することで、複数
   VMに依存する設定が可能です。
     – Ruby Facterでの取得情報を交換可能。ただし、ワークフロー処理は限定的。
  仮想ネットワークの構成は対象外。仮想マシンは既存のデフォルトネットワークに接続し
   ます。

               必要なサイズ/個数の仮想マシンを起動して
                アプリケーションの導入・設定を実施

                      アプリケーション
                       ブループリント
                                                  構成情報の交換
      指定のクラウドに
     JEOSイメージを作成



                                                   ConfigServer
      システム      マシンイメージ
     テンプレート       (JEOS)
14                                   仮想マシン             Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

 (参考)DeltacloudによるAPIの共通化
  Deltacloud Libraryは、複数の仮想化基盤/クラウドを共通のREST API
   (Deltacloud API)で操作するためのライブラリ群
     – Aeolus Conductorでは、複数環境への対応にDeltacloud Libraryを使用




15                                                         Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

 (参考)Deltacloud Driverの提供状況




     http://deltacloud.apache.org/drivers.html#drivers


16                                                       Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

 システムテンプレートによるJEOSの作成 (1)

  「システムテンプレート」では、JEOSの構成情報を定義します。
     – OSの種類、インストール元のレポジトリ、追加導入するパッケージ、導入後のカスタマ
       イズコマンドなどを指定します。

          システムテンプレートの例
          <template>
            <name>CentOS63 Template</name>
            <os>
              <name>RHEL-6</name>
              <version>3</version>
              <arch>x86_64</arch>
              <install type='url'>
                  <url>http://172.16.1.1/CentOS63</url>
              </install>
              <rootpw>p@ssw0rd</rootpw>
            </os>
            <repositories>
              <repository name="Aeolus">
                 <url>http://172.16.1.101/aeolus/</url>
              </repository>
            </repositories>
            <packages>
              <package name="aeolus-audrey-agent"/>
            </packages>
            <description>CentOS63 Image Factory Template</description>
            <commands>
              <command name="Update to latest packages">yum -y update</command>
            </commands>
          </template>


17                                                                                Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

 システムテンプレートによるJEOSの作成 (2)

  Aeolus Conductorのメニュー画面から、対象クラウド用のJEOSを作成します。
     – 対象のクラウドに対して「ビルド」を実行するとAeolusサーバ上のKVMで仮想マシンを
       起動してイメージを作成後、指定のクラウドで利用可能な形式に変換します。
     – その後「Push」を実行すると対象のクラウドにイメージの配信を行います。




18                                          Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

 アプリケーション・ブループリントによるデプロイ (1)

  「アプリケーション・ブループリント」では、起動するインスタンスと起動後の
   アプリケーション導入/設定手順を定義します。
     – 起動に使用するJEOSイメージ、インスタンスサイズ、デプロイ時にユーザが指定するパ
       ラメータなどを指定します。
     – アプリケーション導入/設定
                         アプリケーション・ブループリントの例
       手順はスクリプトをベタ書
                         <?xml version="1.0"?>
       きします。(実際には、こ      <deployable version="1.0" name="RHEL6.3 motd hack">
       のスクリプトから、Puppet     <description/>
                           <assemblies>
       などのツールとの連携を行          <assembly name="RHEL6-3-with-audrey-agent" hwp="small-x86_64">
       います。)                   <image id="c0d6f20f-6e7a-4835-b41e-7b16a8cdbe35"/>
                               <services>
                                 <service name="config_motd">
                                   <executable>
                                     <contents><![CDATA[#!/bin/bash
                                        echo "$AUDREY_VAR_config_motd_message" >> /etc/motd]]>
                                     </contents>
                                   </executable>
                                   <parameters>
                                     <parameter name="message">
                                        <value>Hello, World!</value>
                                     </parameter>
                                   </parameters>
                                 </service>
                               </services>
                             </assembly>
                           </assemblies>
                         </deployable>

19                                                                             Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

 アプリケーション・ブループリントによるデプロイ (2)

  Aeolus Conductorのメニュー画面から、アプリケーション・ブループリントを指
   定して、デプロイを実施します。
     – ユーザは、デプロイ先のクラウドを選択することが可能です。




20                                       Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

 アプリケーション・ブループリントとPuppet/Githubの連携

  アプリケーション・ブループリントとPuppet/Githubによる環境構築を連携する
   ことも可能です。
     – 下図のスクリプトをアプリケーション・ブループリントから実行すると、Puppetによる
       アプリケーションの導入・設定が実施されます。
     GithubからPuppetマニフェストを取得・適用するスクリプトの例
     # Setting up glusterfs using Puppet
     yum -y install http://mirror.us.leaseweb.net/epel/6/i386/epel-
     release-6-7.noarch.rpm
     yum -y install git
     yum -y install puppet
     mkdir -p /tmp/gittmp
     cd /tmp/gittmp
     git clone https://github.com/enakai00/gluster_puppet.git
     cd gluster_puppet
     git checkout $AUDREY_VAR_glusterd_gittag
     export FACTER_manifest_dir="/tmp/gittmp/gluster_puppet"
     export FACTER_data_device="/dev/xvdj"
     puppet main.pp



     – 詳細は、「Aeolus(アイオロス)でRHELonEC2を利用する(その3)」を参照
         • http://bit.ly/RMFZae




21                                                                    Open Cloud Campus
クラウドが実現するソフト開発・運用の変革と自動化

 Aeolus Conductorの考察

  便利な点
     – 複数環境の透過的利用
       • 現実的なユースケースは今後の検討課題ではあるが、JEOSの作成からアプリケー
         ションのデプロイまでを複数環境で実施できるツールはめずらしい。
     – JEOS方式によるカスタマイズの容易性
       • IaaSクラウドの多くはオリジナルイメージのスクラッチ作成やカスタマイズが面倒。
         Aeolusであれば、システムテンプレートからイメージを自動生成可能。
       • デプロイ時に動的にアプリケーションをインストールするので、アプリケーションの
         バージョンアップに合せてイメージを再作成するなどの手間がかからない。

  不便な点
     – クラウド固有の機能が使えない
       • セキュリティグループ、EBSのアタッチなどクラウド固有の機能に未対応。
     – 複数VMデプロイ時のワークフロー処理が不十分
       • アプリケーション・ブループリントでは、「VM2の構成が完了してから、VM1の構成
         を開始する」程度の依存関係しか扱えず、複雑なワークフロー処理ができない。

     ⇒ 現実的なユースケースに合わせた機能拡張が今後の課題。
22                                         Open Cloud Campus
オープンクラウド・キャンパス



クラウドの自動化とソフトウェア開発の
 未来を一緒に考えて行きましょう!




            中井悦司
       Twitter @enakai00

Mais conteúdo relacionado

Mais procurados

OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
Etsuji Nakai
 
RDOとPackstackのご紹介
RDOとPackstackのご紹介RDOとPackstackのご紹介
RDOとPackstackのご紹介
Etsuji Nakai
 
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Etsuji Nakai
 
OpenStack(RDO/Grizzly) ダッシュボード利用演習
OpenStack(RDO/Grizzly) ダッシュボード利用演習OpenStack(RDO/Grizzly) ダッシュボード利用演習
OpenStack(RDO/Grizzly) ダッシュボード利用演習
Etsuji Nakai
 
クラウドオーケストレーション「OpenStack Heat」に迫る!
クラウドオーケストレーション「OpenStack Heat」に迫る!クラウドオーケストレーション「OpenStack Heat」に迫る!
クラウドオーケストレーション「OpenStack Heat」に迫る!
Etsuji Nakai
 
エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第二部 OpenStackの内部構造
エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第二部 OpenStackの内部構造エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第二部 OpenStackの内部構造
エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第二部 OpenStackの内部構造
Etsuji Nakai
 
DCK Server プロトタイプ
DCK Server プロトタイプDCK Server プロトタイプ
DCK Server プロトタイプ
Etsuji Nakai
 
入門!Software Defined Network
入門!Software Defined Network入門!Software Defined Network
入門!Software Defined Network
Etsuji Nakai
 
クラウドアプリケーションの マルチプロセス・プログラミングモデル を実現する「Data Center Kernel」
クラウドアプリケーションの マルチプロセス・プログラミングモデル を実現する「Data Center Kernel」クラウドアプリケーションの マルチプロセス・プログラミングモデル を実現する「Data Center Kernel」
クラウドアプリケーションの マルチプロセス・プログラミングモデル を実現する「Data Center Kernel」
Etsuji Nakai
 

Mais procurados (19)

Using Kubernetes on Google Container Engine
Using Kubernetes on Google Container EngineUsing Kubernetes on Google Container Engine
Using Kubernetes on Google Container Engine
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
 
RHEL Atomic Hostのご紹介
RHEL Atomic Hostのご紹介RHEL Atomic Hostのご紹介
RHEL Atomic Hostのご紹介
 
RDOとPackstackのご紹介
RDOとPackstackのご紹介RDOとPackstackのご紹介
RDOとPackstackのご紹介
 
Red Hat Enterprise Linux OpenStack Platform環境でのDocker活用テクニック
Red Hat Enterprise Linux OpenStack Platform環境でのDocker活用テクニックRed Hat Enterprise Linux OpenStack Platform環境でのDocker活用テクニック
Red Hat Enterprise Linux OpenStack Platform環境でのDocker活用テクニック
 
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
 
Red Hat Enterprise Linux 7.1 Kubernetes入門
Red Hat Enterprise Linux 7.1 Kubernetes入門Red Hat Enterprise Linux 7.1 Kubernetes入門
Red Hat Enterprise Linux 7.1 Kubernetes入門
 
OpenStack(RDO/Grizzly) ダッシュボード利用演習
OpenStack(RDO/Grizzly) ダッシュボード利用演習OpenStack(RDO/Grizzly) ダッシュボード利用演習
OpenStack(RDO/Grizzly) ダッシュボード利用演習
 
クラウドオーケストレーション「OpenStack Heat」に迫る!
クラウドオーケストレーション「OpenStack Heat」に迫る!クラウドオーケストレーション「OpenStack Heat」に迫る!
クラウドオーケストレーション「OpenStack Heat」に迫る!
 
エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第二部 OpenStackの内部構造
エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第二部 OpenStackの内部構造エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第二部 OpenStackの内部構造
エンジニア向け夏期特別講座 〜 Red Hat OpenStack徹底解説! 第二部 OpenStackの内部構造
 
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
仮想化技術として注目されているDocker入門 - PASONATECH ADVANTAGE SEMINAR
 
OpenShift v3 Technical Introduction
OpenShift v3 Technical IntroductionOpenShift v3 Technical Introduction
OpenShift v3 Technical Introduction
 
DCK Server プロトタイプ
DCK Server プロトタイプDCK Server プロトタイプ
DCK Server プロトタイプ
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
 
8a1#19[はじめてのdocker] 公開版
8a1#19[はじめてのdocker] 公開版8a1#19[はじめてのdocker] 公開版
8a1#19[はじめてのdocker] 公開版
 
完全分散エッジ処理で実現するNeutron仮想ネットワーク
完全分散エッジ処理で実現するNeutron仮想ネットワーク完全分散エッジ処理で実現するNeutron仮想ネットワーク
完全分散エッジ処理で実現するNeutron仮想ネットワーク
 
入門!Software Defined Network
入門!Software Defined Network入門!Software Defined Network
入門!Software Defined Network
 
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack入門
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack入門H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack入門
H26第1回 沖縄オープンラボラトリ・ハンズオンセミナー:OpenStack入門
 
クラウドアプリケーションの マルチプロセス・プログラミングモデル を実現する「Data Center Kernel」
クラウドアプリケーションの マルチプロセス・プログラミングモデル を実現する「Data Center Kernel」クラウドアプリケーションの マルチプロセス・プログラミングモデル を実現する「Data Center Kernel」
クラウドアプリケーションの マルチプロセス・プログラミングモデル を実現する「Data Center Kernel」
 

Destaque

仮想化&クラウドで活用!自動化ツールの基礎
仮想化&クラウドで活用!自動化ツールの基礎仮想化&クラウドで活用!自動化ツールの基礎
仮想化&クラウドで活用!自動化ツールの基礎
Etsuji Nakai
 
OpenCenterによるOpenStack自動構築
OpenCenterによるOpenStack自動構築OpenCenterによるOpenStack自動構築
OpenCenterによるOpenStack自動構築
guchi_hiro
 
S05 Microsoft Azure 仮想マシンでの Active Directory 活用シナリオ
S05 Microsoft Azure 仮想マシンでの Active Directory 活用シナリオS05 Microsoft Azure 仮想マシンでの Active Directory 活用シナリオ
S05 Microsoft Azure 仮想マシンでの Active Directory 活用シナリオ
Microsoft Azure Japan
 

Destaque (8)

仮想化&クラウドで活用!自動化ツールの基礎
仮想化&クラウドで活用!自動化ツールの基礎仮想化&クラウドで活用!自動化ツールの基礎
仮想化&クラウドで活用!自動化ツールの基礎
 
コマンドラインで使うAzure
コマンドラインで使うAzureコマンドラインで使うAzure
コマンドラインで使うAzure
 
OpenCenterによるOpenStack自動構築
OpenCenterによるOpenStack自動構築OpenCenterによるOpenStack自動構築
OpenCenterによるOpenStack自動構築
 
S05 Microsoft Azure 仮想マシンでの Active Directory 活用シナリオ
S05 Microsoft Azure 仮想マシンでの Active Directory 活用シナリオS05 Microsoft Azure 仮想マシンでの Active Directory 活用シナリオ
S05 Microsoft Azure 仮想マシンでの Active Directory 活用シナリオ
 
OSS/linux on Azureの活用方法と勘所
OSS/linux on Azureの活用方法と勘所OSS/linux on Azureの活用方法と勘所
OSS/linux on Azureの活用方法と勘所
 
AWS/Azure二大クラウドプラットフォーム十番勝負
AWS/Azure二大クラウドプラットフォーム十番勝負AWS/Azure二大クラウドプラットフォーム十番勝負
AWS/Azure二大クラウドプラットフォーム十番勝負
 
デザインパターンから見た AWS と Azure
デザインパターンから見た AWS と Azureデザインパターンから見た AWS と Azure
デザインパターンから見た AWS と Azure
 
20150821 Azure 仮想マシンと仮想ネットワーク
20150821 Azure 仮想マシンと仮想ネットワーク20150821 Azure 仮想マシンと仮想ネットワーク
20150821 Azure 仮想マシンと仮想ネットワーク
 

Semelhante a 環境構築自動化ツールのご紹介

Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud Automation
Etsuji Nakai
 
Nseg20120929
Nseg20120929Nseg20120929
Nseg20120929
hiro345
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
Naotaka Jay HOTTA
 
Gluster fs and_swiftapi_20120429
Gluster fs and_swiftapi_20120429Gluster fs and_swiftapi_20120429
Gluster fs and_swiftapi_20120429
Etsuji Nakai
 
AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)
Akio Katayama
 
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
Amazon Web Services Japan
 
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift
Etsuji Nakai
 
クックパッドのスケーリング
クックパッドのスケーリングクックパッドのスケーリング
クックパッドのスケーリング
Satoshi Takada
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka
 

Semelhante a 環境構築自動化ツールのご紹介 (20)

Personal Cloud Automation
Personal Cloud AutomationPersonal Cloud Automation
Personal Cloud Automation
 
ネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chefネットワークエンジニアのための Puppet / Chef
ネットワークエンジニアのための Puppet / Chef
 
CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1CloudFoundry 2 on Apache CloudStack 4.2.1
CloudFoundry 2 on Apache CloudStack 4.2.1
 
Nseg20120929
Nseg20120929Nseg20120929
Nseg20120929
 
Capistrano
CapistranoCapistrano
Capistrano
 
Version管理 1
Version管理 1Version管理 1
Version管理 1
 
Windows Azure PHP Tips
Windows Azure PHP Tips Windows Azure PHP Tips
Windows Azure PHP Tips
 
Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識Windows PowerShell 2.0 の基礎知識
Windows PowerShell 2.0 の基礎知識
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
 
Gluster fs and_swiftapi_20120429
Gluster fs and_swiftapi_20120429Gluster fs and_swiftapi_20120429
Gluster fs and_swiftapi_20120429
 
Windows エンジニア向け sql server on linux のためのスキルアップデート
Windows エンジニア向け sql server on linux のためのスキルアップデートWindows エンジニア向け sql server on linux のためのスキルアップデート
Windows エンジニア向け sql server on linux のためのスキルアップデート
 
AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)
 
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public20120416 aws meister-reloaded-aws-elasticbeanstalk-public
20120416 aws meister-reloaded-aws-elasticbeanstalk-public
 
sveltekit-ja.pdf
sveltekit-ja.pdfsveltekit-ja.pdf
sveltekit-ja.pdf
 
試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift試して学べるクラウド技術! OpenShift
試して学べるクラウド技術! OpenShift
 
クックパッドのスケーリング
クックパッドのスケーリングクックパッドのスケーリング
クックパッドのスケーリング
 
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
第20回CloudStackユーザ会_ApacheCloudStack4.4新機能紹介
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
 

Mais de Etsuji Nakai

TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎
Etsuji Nakai
 

Mais de Etsuji Nakai (20)

PRML11.2-11.3
PRML11.2-11.3PRML11.2-11.3
PRML11.2-11.3
 
「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える「ITエンジニアリングの本質」を考える
「ITエンジニアリングの本質」を考える
 
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実Googleのインフラ技術に見る基盤標準化とDevOpsの真実
Googleのインフラ技術に見る基盤標準化とDevOpsの真実
 
Introducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlowIntroducton to Convolutional Nerural Network with TensorFlow
Introducton to Convolutional Nerural Network with TensorFlow
 
Googleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービスGoogleにおける機械学習の活用とクラウドサービス
Googleにおける機械学習の活用とクラウドサービス
 
Spannerに関する技術メモ
Spannerに関する技術メモSpannerに関する技術メモ
Spannerに関する技術メモ
 
Googleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOpsGoogleのインフラ技術から考える理想のDevOps
Googleのインフラ技術から考える理想のDevOps
 
A Brief History of My English Learning
A Brief History of My English LearningA Brief History of My English Learning
A Brief History of My English Learning
 
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎
 
TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門
 
Lecture note on PRML 8.2
Lecture note on PRML 8.2Lecture note on PRML 8.2
Lecture note on PRML 8.2
 
Machine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application DevelopersMachine Learning Basics for Web Application Developers
Machine Learning Basics for Web Application Developers
 
Your first TensorFlow programming with Jupyter
Your first TensorFlow programming with JupyterYour first TensorFlow programming with Jupyter
Your first TensorFlow programming with Jupyter
 
Deep Q-Network for beginners
Deep Q-Network for beginnersDeep Q-Network for beginners
Deep Q-Network for beginners
 
Life with jupyter
Life with jupyterLife with jupyter
Life with jupyter
 
TensorFlowで学ぶDQN
TensorFlowで学ぶDQNTensorFlowで学ぶDQN
TensorFlowで学ぶDQN
 
DevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきかDevOpsにおける組織に固有の事情を どのように整理するべきか
DevOpsにおける組織に固有の事情を どのように整理するべきか
 
PRML7.2
PRML7.2PRML7.2
PRML7.2
 
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
インタークラウドを実現する技術 〜 デファクトスタンダードからの視点 〜
 
Exploring the Philosophy behind Docker/Kubernetes/OpenShift
Exploring the Philosophy behind Docker/Kubernetes/OpenShiftExploring the Philosophy behind Docker/Kubernetes/OpenShift
Exploring the Philosophy behind Docker/Kubernetes/OpenShift
 

環境構築自動化ツールのご紹介

  • 2. クラウドが実現するソフト開発・運用の変革と自動化 Contents  既存ツールの組み合わせによる「パーソナルクラウド」の構築  複数環境へのデプロイ自動化ツール Aeolus Conductor 2 Open Cloud Campus
  • 4. クラウドが実現するソフト開発・運用の変革と自動化 「パーソナルクラウド」における自動化の実例 Github  図の①〜③を1つの設定ファイルを元に自動実行するスクリプト を作成して、「パーソナルクラウド」として活用 OS/アプリケーション アプリ設定情報 OS構成情報 パッケージ (Puppet Manifest) (KickStartファイル) Kickstart ③ アプリ導入/設定 YUM Git/Puppet リポジトリ ② OS/アプリ導入 設定ファイルの バージョン管理 VM ① VM作成 Apache VM構成情報 HTTP Server KVM (virt-installコマンドの パラメータ群) Red Hat Enterprise Linux 6 libvirt x86_64サーバ 詳細は「アプリケーション環境構築の自動化をまじめに考えてみる(1)〜(4)」を参照 4 http://bit.ly/SRfpwb http://bit.ly/O9xgAa http://bit.ly/Qij9Gx http://bit.ly/QB9POk Open Cloud Campus
  • 5. クラウドが実現するソフト開発・運用の変革と自動化 主な利用ツール (1)  libvirt – Linux KVM, Xen, LXC などの仮想化環境をプログラムから操作するための標準ライブラ リ(C言語、Pythonなどから利用可能)。 – VM、仮想ディスクイメージ、仮想ネットワークの作成・操作が可能。 – ここでは、libvirtを利用したコマンドvirt-installを使って、VMの自動作成を行なってい る。 virt-installのコマンドオプションの例 # virt-install --name ${vmname} --vcpus ${vcpus} --ram ${ram} --disk path=${diskpath},size=${disksize},sparse=false --network ${network} --os-variant ${os-variant} --location ${url} --vnc 5 Open Cloud Campus
  • 6. クラウドが実現するソフト開発・運用の変革と自動化 主な利用ツール (2)  KickStart KickStartファイルの例 – RHELのインストーラ(Anaconda) url --url=${url} の一機能。GUIインストーラで入力す lang ja_JP.UTF-8 る項目を事前に書き込んだテキスト keyboard jp106 network --onboot yes --device eth0 --bootproto ファイル(KickStartファイル)を利 static --ip ${ip} --netmask ${netmask} 用して、RHELのインストールを全自 --gateway ${gateway} --nameserver ${nameserver} 動で行う。 --hostname ${hostname} rootpw passw0rd – インストール後に指定のスクリプト timezone --isUtc Asia/Tokyo bootloader --location=mbr (Postスクリプト)を実行すること zerombr ができる。 clearpart --initlabel --drives=vda – ここでは、RHELを自動インストール part /boot --fstype=ext4 --size=500 part swap --size=1024 した後に、Git/Puppetによるアプリ part / --fstype=ext4 --grow --size=200 ケーション導入・設定をキックしてい reboot %packages る。 @base @core @japanese-support %end %post --log=/root/anaconda-post.log set -x echo "${ip} ${hostname}" >> /etc/hosts %end 6 Open Cloud Campus
  • 7. クラウドが実現するソフト開発・運用の変革と自動化 主な利用ツール (3) Puppetマニフェストの例  Puppet class pgsql { – OS/アプリケーションの構成管理 service { 'postgresql': ツール。「あるべき状態」を宣言的 name ensure => 'postgresql', => running, に記述した「マニフェスト」に従っ enable => true, subscribe => Package['postgresql-server'], て、アプリケーションの導入、設定 } ファイルの書き換えなどを自動実行 package { 'postgresql-server': する。 name => 'postgresql-server', ensure => installed, – 管理対象サーバが多数ある場合は、 } 専用の「Puppetサーバ」からマニ file { '/var/lib/pgsql/data/postgresql.conf': フェストの配布を行うクライアン owner => 'postgres', group => 'postgres', ト・サーバモデルで使用する。 mode => '0600', source => "$FACTER_manifest_dir/dist/postgresql.conf", – ここでは、Puppetサーバは使わず notify => Service['postgresql'], に、Githubからマニフェストをダ } require => Exec['initdb'], ウンロードして、直接に適用する形 exec { 'initdb': で利用している。 path => '/sbin', command => 'service postgresql initdb', logoutput => true, creates => '/var/lib/pgsql/data/PG_VERSION', before => Service['postgresql'], require => Package['postgresql-server'], notify => Exec['init_pw'], } ・・・ 7 Open Cloud Campus
  • 8. クラウドが実現するソフト開発・運用の変革と自動化 主な利用ツール (4)  Git – プログラムソースコードの分散バージョン管理システム。元々はLinux Kernelの開発用に 作成された。インターネット上にコードリポジトリを作成して無料で利用できるサービ ス「Github」の登場により、利用者が増加した。 – ここでは、Puppetの設定ファイル(マニフェスト)をGithubにおいて、Kickstartの Postスクリプトから、指定バージョンのマニフェストのダウンロードと適用を実行して いる。 Githubからマニフェストを取得して適用するスクリプトの例 mkdir -p /tmp/gittmp cd /tmp/gittmp git clone $GitRepository cd $RepoName git checkout $ConfigTag export FACTER_manifest_dir="/tmp/gittmp/$RepoName" puppet main.pp 8 Open Cloud Campus
  • 9. クラウドが実現するソフト開発・運用の変革と自動化 (参考)Githubのスクリーンショット リポジトリの公開URL 過去の変更履歴を 全て保存 特定の時点のコードを タグ名で指定 9 Open Cloud Campus
  • 10. クラウドが実現するソフト開発・運用の変革と自動化 「パーソナルクラウド」自動化における考察  便利な点 – 設定ファイルの再利用性 • テキストファイルにすべての設定が記録されているので、設定変更が簡単で、少しづ つ設定の異なる類似環境を何度でも再構築できる。 • Puppetのマニフェストがバージョン管理されているので、バージョン番号を指定す るだけで、特定バージョンの設定が適用できる。 Github  不便な点 – 単一の物理サーバが前提 • 複数の物理サーバへのデプロイはできない。 v1.0 v1.1 – 複数VMの依存関係が扱えない • Puppetはサーバ間の依存関係を解決する機能がないので、「DBサーバとWebサーバ を連携させる」ような設定はできない。 • 現状では、必要な際は、手続き型のスクリプトで連携処理を行なっている。(ので、 Puppetの「宣言的記述」のメリットが半減してしまう。) ⇒ 本格的な自動化ツールでは、複数ノードへのデプロイと複数VMの依存関係の取り扱い   が必要。 10 Open Cloud Campus
  • 12. クラウドが実現するソフト開発・運用の変革と自動化 Aeolus Conductorとは? 「Aeolus(アイオロス)でRHELonEC2を利用する」 http://bit.ly/QzniL4  複数クラウドに対応したイメージ作成/アプリケーション環境構築の自動化ツール 12 Open Cloud Campus
  • 13. クラウドが実現するソフト開発・運用の変革と自動化 複数クラウド/仮想化環境を適材適所で活用  共通の定義ファイルから複数環境に同一のアプリケーション実行環境を構築。 – システムテンプレート:JEOSの構成定義ファイル – アプリケーション・ブループリント:アプリケーション実行環境の構成定義ファイル システムテンプレート アプリケーション・ブループリント 本番環境 開発・テスト環境 パブリック 仮想化環境A 仮想化環境B クラウド 13 Open Cloud Campus
  • 14. クラウドが実現するソフト開発・運用の変革と自動化 Aeolus Conductorによるアプリケーションデプロイの流れ  アプリケーションデプロイ時は、ConfigServerを介して構成情報を交換することで、複数 VMに依存する設定が可能です。 – Ruby Facterでの取得情報を交換可能。ただし、ワークフロー処理は限定的。  仮想ネットワークの構成は対象外。仮想マシンは既存のデフォルトネットワークに接続し ます。 必要なサイズ/個数の仮想マシンを起動して アプリケーションの導入・設定を実施 アプリケーション ブループリント 構成情報の交換 指定のクラウドに JEOSイメージを作成 ConfigServer システム マシンイメージ テンプレート (JEOS) 14 仮想マシン Open Cloud Campus
  • 15. クラウドが実現するソフト開発・運用の変革と自動化 (参考)DeltacloudによるAPIの共通化  Deltacloud Libraryは、複数の仮想化基盤/クラウドを共通のREST API (Deltacloud API)で操作するためのライブラリ群 – Aeolus Conductorでは、複数環境への対応にDeltacloud Libraryを使用 15 Open Cloud Campus
  • 17. クラウドが実現するソフト開発・運用の変革と自動化 システムテンプレートによるJEOSの作成 (1)  「システムテンプレート」では、JEOSの構成情報を定義します。 – OSの種類、インストール元のレポジトリ、追加導入するパッケージ、導入後のカスタマ イズコマンドなどを指定します。 システムテンプレートの例 <template> <name>CentOS63 Template</name> <os> <name>RHEL-6</name> <version>3</version> <arch>x86_64</arch> <install type='url'> <url>http://172.16.1.1/CentOS63</url> </install> <rootpw>p@ssw0rd</rootpw> </os> <repositories> <repository name="Aeolus"> <url>http://172.16.1.101/aeolus/</url> </repository> </repositories> <packages> <package name="aeolus-audrey-agent"/> </packages> <description>CentOS63 Image Factory Template</description> <commands> <command name="Update to latest packages">yum -y update</command> </commands> </template> 17 Open Cloud Campus
  • 18. クラウドが実現するソフト開発・運用の変革と自動化 システムテンプレートによるJEOSの作成 (2)  Aeolus Conductorのメニュー画面から、対象クラウド用のJEOSを作成します。 – 対象のクラウドに対して「ビルド」を実行するとAeolusサーバ上のKVMで仮想マシンを 起動してイメージを作成後、指定のクラウドで利用可能な形式に変換します。 – その後「Push」を実行すると対象のクラウドにイメージの配信を行います。 18 Open Cloud Campus
  • 19. クラウドが実現するソフト開発・運用の変革と自動化 アプリケーション・ブループリントによるデプロイ (1)  「アプリケーション・ブループリント」では、起動するインスタンスと起動後の アプリケーション導入/設定手順を定義します。 – 起動に使用するJEOSイメージ、インスタンスサイズ、デプロイ時にユーザが指定するパ ラメータなどを指定します。 – アプリケーション導入/設定 アプリケーション・ブループリントの例 手順はスクリプトをベタ書 <?xml version="1.0"?> きします。(実際には、こ <deployable version="1.0" name="RHEL6.3 motd hack"> のスクリプトから、Puppet <description/> <assemblies> などのツールとの連携を行 <assembly name="RHEL6-3-with-audrey-agent" hwp="small-x86_64"> います。) <image id="c0d6f20f-6e7a-4835-b41e-7b16a8cdbe35"/> <services> <service name="config_motd"> <executable> <contents><![CDATA[#!/bin/bash echo "$AUDREY_VAR_config_motd_message" >> /etc/motd]]> </contents> </executable> <parameters> <parameter name="message"> <value>Hello, World!</value> </parameter> </parameters> </service> </services> </assembly> </assemblies> </deployable> 19 Open Cloud Campus
  • 20. クラウドが実現するソフト開発・運用の変革と自動化 アプリケーション・ブループリントによるデプロイ (2)  Aeolus Conductorのメニュー画面から、アプリケーション・ブループリントを指 定して、デプロイを実施します。 – ユーザは、デプロイ先のクラウドを選択することが可能です。 20 Open Cloud Campus
  • 21. クラウドが実現するソフト開発・運用の変革と自動化 アプリケーション・ブループリントとPuppet/Githubの連携  アプリケーション・ブループリントとPuppet/Githubによる環境構築を連携する ことも可能です。 – 下図のスクリプトをアプリケーション・ブループリントから実行すると、Puppetによる アプリケーションの導入・設定が実施されます。 GithubからPuppetマニフェストを取得・適用するスクリプトの例 # Setting up glusterfs using Puppet yum -y install http://mirror.us.leaseweb.net/epel/6/i386/epel- release-6-7.noarch.rpm yum -y install git yum -y install puppet mkdir -p /tmp/gittmp cd /tmp/gittmp git clone https://github.com/enakai00/gluster_puppet.git cd gluster_puppet git checkout $AUDREY_VAR_glusterd_gittag export FACTER_manifest_dir="/tmp/gittmp/gluster_puppet" export FACTER_data_device="/dev/xvdj" puppet main.pp – 詳細は、「Aeolus(アイオロス)でRHELonEC2を利用する(その3)」を参照 • http://bit.ly/RMFZae 21 Open Cloud Campus
  • 22. クラウドが実現するソフト開発・運用の変革と自動化 Aeolus Conductorの考察  便利な点 – 複数環境の透過的利用 • 現実的なユースケースは今後の検討課題ではあるが、JEOSの作成からアプリケー ションのデプロイまでを複数環境で実施できるツールはめずらしい。 – JEOS方式によるカスタマイズの容易性 • IaaSクラウドの多くはオリジナルイメージのスクラッチ作成やカスタマイズが面倒。 Aeolusであれば、システムテンプレートからイメージを自動生成可能。 • デプロイ時に動的にアプリケーションをインストールするので、アプリケーションの バージョンアップに合せてイメージを再作成するなどの手間がかからない。  不便な点 – クラウド固有の機能が使えない • セキュリティグループ、EBSのアタッチなどクラウド固有の機能に未対応。 – 複数VMデプロイ時のワークフロー処理が不十分 • アプリケーション・ブループリントでは、「VM2の構成が完了してから、VM1の構成 を開始する」程度の依存関係しか扱えず、複雑なワークフロー処理ができない。 ⇒ 現実的なユースケースに合わせた機能拡張が今後の課題。 22 Open Cloud Campus