Your SlideShare is downloading. ×
Aeolus Conductorによる複数環境へのデプロイ自動化
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Aeolus Conductorによる複数環境へのデプロイ自動化

1,786

Published on

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,786
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
38
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. オープンクラウド・キャンパス Aeolus Conductorによる複数環境へのデプロイ自動化 Ver1.0 2013/04/02 中井悦司 (Twitter @enakai00)
  • 2. Aeolus Conductor 自己紹介  中井悦司(なかいえつじ) – Twitter @enakai00  日々の仕事 – Senior Solution Architect and Cloud Evangelist at Red Hat K.K. 企業システムでオープンソースの活用を希望される 好評発売中! お客様を全力でご支援させていただきます。  昔とった杵柄 – 素粒子論の研究(超弦理論とか) – 予備校講師(物理担当) – インフラエンジニア(Unix/Linux専門)2 Open Cloud Campus
  • 3. Aeolus Conductor Aeolus Conductorとは?  複数クラウドに対応したイメージ作成/アプリケーション環境構築の自動化ツール – クラウド管理の中でも「デプロイ機能」にフォーカスしたツール – Aeolus Conductorをアップストリームとする商用版が「Red Hat CloudForms 1.1」3 「Aeolus(アイオロス)でRHELonEC2を利用する」 http://bit.ly/QzniL4 Open Cloud Campus
  • 4. 仮想マシン構築自動化の例
  • 5. Aeolus Conductor 「パーソナルクラウド」における自動化の実例 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)」を参照5 http://bit.ly/SRfpwb http://bit.ly/O9xgAa http://bit.ly/Qij9Gx http://bit.ly/QB9POk Open Cloud Campus
  • 6. Aeolus Conductor 「パーソナルクラウド」自動化における考察  便利な点 – 設定ファイルの再利用性 • テキストファイルにすべての設定が記録されているので、設定変更が簡単で、少しづ つ設定の異なる類似環境を何度でも再構築できる。 • Puppetのマニフェストがバージョン管理されているので、バージョン番号を指定す るだけで、特定バージョンの設定が適用できる。 Github  不便な点 – 単一の物理サーバが前提 • 複数の物理サーバへのデプロイはできない。 v1.0 v1.1 – 複数VMの依存関係が扱えない • Puppetはサーバ間の依存関係を解決する機能がないので、「DBサーバとWebサーバ を連携させる」ような設定はできない。 • 現状では、必要な際は、手続き型のスクリプトで連携処理を行なっている。(ので、 Puppetの「宣言的記述」のメリットが半減してしまう。) ⇒ 本格的な自動化ツールでは、複数ノードへのデプロイと複数VMの依存関係の取り扱い   が必要。6 Open Cloud Campus
  • 7. 複数環境へのデプロイ自動化ツール Aeolus Conductor
  • 8. Aeolus Conductor 複数クラウド/仮想化環境を適材適所で活用  共通の定義ファイルから複数環境に同一のアプリケーション実行環境を構築。 – システムテンプレート:JEOSの構成定義ファイル – アプリケーション・ブループリント:アプリケーション実行環境の構成定義ファイル システムテンプレート アプリケーション・ブループリント 本番環境 開発・テスト環境 パブリック 仮想化環境A 仮想化環境B クラウド8 Open Cloud Campus
  • 9. Aeolus Conductor Aeolus Conductorによるアプリケーションデプロイの流れ  アプリケーションデプロイ時は、ConfigServerを介して構成情報を交換することで、複数 VMに依存する設定が可能です。 – Ruby Facterでの取得情報を交換可能。ただし、ワークフロー処理は限定的。  仮想ネットワークの構成は対象外。仮想マシンは既存のデフォルトネットワークに接続し ます。 必要なサイズ/個数の仮想マシンを起動して アプリケーションの導入・設定を実施 アプリケーション ブループリント 構成情報の交換 指定のクラウドに JEOSイメージを作成 ConfigServer システム マシンイメージ テンプレート (JEOS)9 仮想マシン Open Cloud Campus
  • 10. Aeolus Conductor (参考)DeltacloudによるAPIの共通化  Deltacloud Libraryは、複数の仮想化基盤/クラウドを共通のREST API (Deltacloud API)で操作するためのライブラリ群 – Aeolus Conductorでは、複数環境への対応にDeltacloud Libraryを使用10 Open Cloud Campus
  • 11. Aeolus Conductor (参考)Deltacloud Driverの提供状況 http://deltacloud.apache.org/drivers.html#drivers11 Open Cloud Campus
  • 12. Aeolus Conductorの利用イメージ
  • 13. Aeolus Conductor システムテンプレートによる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>13 Open Cloud Campus
  • 14. Aeolus Conductor システムテンプレートによるJEOSの作成 (2)  Aeolus Conductorのメニュー画面から、対象クラウド用のJEOSを作成します。 – 対象のクラウドに対して「ビルド」を実行するとAeolusサーバ上のKVMで仮想マシンを 起動してイメージを作成後、指定のクラウドで利用可能な形式に変換します。 – その後「Push」を実行すると対象のクラウドにイメージの配信を行います。14 Open Cloud Campus
  • 15. Aeolus Conductor アプリケーション・ブループリントによるデプロイ (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>15 Open Cloud Campus
  • 16. Aeolus Conductor アプリケーション・ブループリントによるデプロイ (2)  Aeolus Conductorのメニュー画面から、アプリケーション・ブループリントを指 定して、デプロイを実施します。 – ユーザは、デプロイ先のクラウドを選択することが可能です。16 Open Cloud Campus
  • 17. Aeolus Conductor アプリケーション・ブループリントと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/RMFZae17 Open Cloud Campus
  • 18. Aeolus Conductor Aeolus Conductorの考察  便利な点 – 複数環境の透過的利用 • 現実的なユースケースは今後の検討課題ではあるが、JEOSの作成からアプリケー ションのデプロイまでを複数環境で実施できるツールはそれほど多くない。 – JEOS方式によるカスタマイズの容易性 • IaaSクラウドの多くはオリジナルイメージのスクラッチ作成やカスタマイズが面倒。 Aeolusであれば、システムテンプレートからイメージを自動生成可能。 • デプロイ時に動的にアプリケーションをインストールするので、アプリケーションの バージョンアップに合せてイメージを再作成するなどの手間がかからない。  不便な点 – クラウド固有の機能が使えない • セキュリティグループ、EBSのアタッチなどクラウド固有の機能に未対応。 – 複数VMデプロイ時のワークフロー処理が不十分 • アプリケーション・ブループリントでは、「VM2の構成が完了してから、VM1の構成 を開始する」程度の依存関係しか扱えず、複雑なワークフロー処理ができない。 ⇒ 現実的なユースケースに合わせた機能拡張が今後の課題。18 Open Cloud Campus
  • 19. オープンクラウド・キャンパス クラウド自動化の未来を一緒に考えて行きましょう! 中井悦司 Twitter @enakai00

×