CTC 教育サービス
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes
前回は、OpenStackで起動した仮想マシンインスタンスに、Dockerでアプリケーションを配信する方法を紹介しました。今回は、この一連の操作をまとめて自動化する方法を紹介します。アプリケーションのDockerイメージは、インターネット上のDocker Hubに保存してありますので、OpenStackの環境には、Dockerが入った仮想マシンイメージさえあれば、仮想マシンインスタンスの作成からアプリケーションの起動までを何度でも繰り返すことが可能になります。Dockerによって、環境構築の自動化が、本当に手軽で簡単になったことが実感できるのではないでしょうか。
ここでは、前回紹介した図1の環境をAnsibleで自動構築します。Ansibleは、操作対象のサーバーにSSH接続して各種コマンドを実行するという仕組みを持っており、典型的な操作を実施するためのモジュールが最初から用意されているという特徴があります。今回は、特に、OpenStackとDockerを操作するためのモジュールを用いて、環境構築の自動化を行ないます。
図1 Ansibleで自動構築する環境
OpenStackを操作するモジュールは、OpenStackのクライアント機能が導入されたサーバーにSSH接続して、そこでOpenStackの操作を行ないます。通常は、Ansibleを実行するサーバー自身にOpenStackクライアントを導入して、ローカルでOpenStackの操作を行ないます。一方、Dockerについては、Dockerが稼働する仮想マシンインスタンスのゲストOSにSSH接続して、コンテナ起動操作を行ないます(図2)。
図2 Ansibleによる環境操作の仕組み
この仕組みからも分かるように、図1の環境構築においては、大きく次の2つに処理が分かれます。
① OpenStackのAPIを操作する処理
② ゲストOS内でDockerを操作する処理
Ansibleでは、「プレイブック」と呼ばれる、YAML形式のテキストファイルに処理手順を記載して実行していきますが、ここでは、①と②のそれぞれに対応するプレイブックを用意しています。一般に「クラウド」と呼ばれる環境では、環境を操作するためのAPIが提供されているわけですが、どのコンポーネントのAPIを操作するかによって、処理内容を分割・整理しておくとよいでしょう。これにより、一度作成したプレイブックの一部を取り出して、再利用がしやすくなります。
具体的なプレイブックの内容については、筆者のBlog記事を参照していただくことにして、ここでは処理の流れだけを簡単に示しておきます(*1)。前述の①②のそれぞれについて、対応するプレイブック(main01.yml, main02.yml)で以下の処理を行ないます。
① OpenStackのAPIを操作する処理(main01.yml)
② ゲストOS内でDockerを操作する処理(main02.yml)
これらのプレイブックが用意できれば、後は、次のようにansible-playbookコマンドでプレイブックを実行するだけです。
$ ansible-playbook -i bin/openstack.py main01.yml $ ansible-playbook -i bin/openstack.py main02.yml
実際のプレイブックの中身をみると、先に示した処理の流れが、まるで「プログラムコード」のように記載されていることが分かります。APIで操作できるクラウドを「Programmable Infrastructure(プログラム可能なインフラ)」と称することもありますが、Ansibleは、まさにクラウドインフラを操作するためのプログラミング言語と言えるでしょう。
先日、レッドハットより、「OpenShift Dedicated」の発表がなされました。これは、Amazon Web Services、もしくは、Google Cloud Platformの上にOpenShift Enterprise(OSE) v3.1の環境を構築・運用するマネージドサービスになります。次回は、OSE v3.1を用いた、コンテナアプリケーションの開発・運用の仕組みを紹介したいと思います。
*1 「OpenStack&Dockerを操作するデモでAnsibleの本質を考えてみる」- プレイブックの解説に加えて、Ansibleのセットアップ手順を示した資料も掲載されています。
++ CTC教育サービスから一言 ++
このコラムでLinuxや周辺技術の技術概要や面白さが理解できたのではないかと思います。興味と面白さを仕事に変えるには、チューニングやトラブルシューティングの方法を実機を使用して多角的に学ぶことが有効であると考えます。CTC教育サービスでは、Linuxに関する実践力を鍛えられるコースを多数提供しています。興味がある方は以下のページもご覧ください。
CTC教育サービス Linuxのページ
http://www.school.ctc-g.co.jp/linux/
筆者書籍紹介 Software Design plusシリーズ 「独習Linux専科」サーバ構築/運用/管理 ――あなたに伝えたい技と知恵と鉄則 本物の基礎を学ぶ!新定番のLinux独習書 中井悦司 著 B5変形判/384ページ 定価3,129円(本体2,980円) ISBN 978-4-7741-5937-9 詳しくはこちら(出版社WEBサイト) |
[IT研修]注目キーワード Python UiPath(RPA) 最新技術動向 Microsoft Azure Docker Kubernetes