IBM Power
IBM Power Systems環境でのInfrastructure as Code
記事をシェアする:
Terraform & Service Automationを利用した複数自動化ツールの統合
Infrastructure as Codeとは、インフラの実装を自動化する手法で、近年広く利用されています。自動化により、作業のワークロードの軽減や、操作ミスをなくすことができます。Infrastructure as Codeの世界では、従来「設計書+手作業」で行われていた実装作業を、「定義ファイル(コード)+自動化ツール」に置き換えることができます。
Infrastructure as Codeには以下のようなメリットがあり、企業のデジタル・トランスフォーメーション(DX)をサポートする技術の1つということができます。
- 実装作業をコード化することで、共有・再利用することができる。これによって、一度行った実装作業は資産として蓄積することができ、誰でも同じ品質で実装作業を実施できるようになります。
- ソフトウェアと同じように、コードにバージョン管理を適用できる。そのため、実装作業がどのように行われたのか、作業手順がどのように変更されたのか確実に追跡可能です。
- インフラの設計や実装のレビューを、実際のハードウエアに触ることなくコード上で行うことができる
一方、自動化ツールにはChef、Ansible、Terraformなど様々な種類が存在し、それぞれにメリットとデメリットがあります。そのため、用途や目的によって企業内で複数の異なる自動化ツールが使用される場合があります。
インフラストラクチャ全体の迅速なプロビジョニングの実現や、Infrastructure as Code資産を効率的に再利用可能にするためには、組織内で使用されるさまざまな自動化ツールを統合する方法が必要です。この記事では、Terraform & Service Automation上で複数の自動化ツールを統合することにより、ツールの違いによって断片されてしまった自動化ソリューションを接続し、さらなる業務効率化を実現する方法を解説します。Terraform & Service Automationを使えば、グラフィカルなユーザーインターフェースで複数の自動化ツールを簡単に統合することができます。
自動化ツール |
特長 |
Ansible |
|
Chef |
|
Terraform |
|
自動化ツールの統合
組織内の様々なチームが、それぞれのチームの要件を満たすために異なる自動化ツールを利用している場合があります。各チームが個別に進めてきた自動化を統合するためには、チームをまたがった自動化を行う必要があります。そのためには、異なる自動化ツールを統合可能なプラットフォームが不可欠です。複数の自動化ツールを統合することで、ITインフラのより広い部分の自動化やハイブリッド・クラウド環境の構築・運用を自動化できる可能性があります。これによって、End-to-Endでの構築自動化を実現し、チーム間での引き継ぎによる設定ミスや待ち時間発生を削減することができます。
このような組織横断的な自動化を実現する方法はいくつかあります。たとえば、IBM Cloud Pak for Multicloud Managementに含まれるTerraform & Service Automation機能を利用すれば、Service Composerのグラフィカル・インターフェース上で容易にツール間の連携を実現することができます。これによって、これまでの投資を無駄にせず、より進んだ自動化を実現し、さらなるワークロードの削減にとどまらず、複数のITインフラをまたぐ一連のシステムのオーケストレーションを実現することができます。
自動化ツールの統合には、これ以外にも以下のような方法が考えられます。
- 1つの自動化ツールから他の自動化ツールを呼び出す。これにより、複数のオートメーションツールを順番に起動することができます。しかし、ツール間での情報の受け渡し方法は、独自に実装する必要があります。
- 各ツールを連携するプログラムを独自に作成する。この方法では、ゼロからツールを開発する必要があり、手間がかかります。また、新しい自動化ツールを統合する必要があるたびに、新たな開発が必要になります。
本記事では、Terraform & Service Automationを利用して複数の自動化ツールを統合する手法の概要をご紹介します。
TerraformとAnsibleを、IBM Cloud Pak for Multicloud Management上で統合する
Terraform & Service Automationは、仮想サーバーのプロビジョニングを可能にするCloud Pak for Multicloud Managementのアドオンモジュールです(現行バージョンでは、標準でCP4MCMに含まれています)。IBM Power Systems、x86、IBM Zなどのオンプレミス環境だけでなく、IBM CloudやAWSなどのクラウド環境もサポートしています。また、Terraform & Service Automation」モジュールでは、Terraform、Ansible、Chef、REST APIなどを統合することができます。
今回は、TerraformとIBM PowerVCを活用してIBM AIX環境をデプロイし、Ansibleでユーザーを追加するという簡単なシナリオを紹介します。このシナリオを実行するために、図 1 に示すように環境を準備します。この環境を構成する主なコンポーネントを表 1 に説明します。インストール手順は付録を参照してください。
表1:シナリオで使用するコンポーネント
コンポーネント |
説明 |
PowerVC |
IBM Power Systems上の論理区画やストレージ構成を行うプロビジョニング・ツール |
CP4MCM |
Cloud Pak for Multicloud Management |
Terraform & Service Automation |
Cloud Pak for Multicloud ManagementのアドオンモジュールでTerraform template やChef, Ansibleなどの自動化ツールを統合することが出来ます。 |
Ansible, Ansible Tower |
構成管理、アプリケーション導入、プロビジョニングなどを行う自動化ツールです。 |
注:この記事は、Cloud Pak for Multicloud Management 1.3 を元にしていますが、Cloud Pak for Multicloud Management 2.0 でも同様の自動化機能を提供しています。
(1) AIX区画を展開するためのTerraform Templateを準備する
PowerVCを使ってAIX LPARを作成するためのTerraform Templateを、Terraform & Service Automationに登録します。Templateは、Template Designerを使って作成することもできますが、ここではサンプルとして用意されている”IBM PowerVC Single Virtual Machine Example”を使用します。インターネットに接続されている環境では、Terraform & Service AutomationのTemplate Libraryに始めから登録されています。インターネットに接続されていない環境では、下記のgithubレポジトリーからダウンロードし、インポートすることができます。
Terraformを単体で使用する場合と異なり、Terraform & Service AutomationからTerraformを利用すると、GUIで実行時のパラメータを指定できます。パラメーターとしては、GUIでの入力以外にも、他のツールの出力を利用することもできます。
次に、このTerraform Templateを適用するPowerVCを接続します。この接続は、”Cloud Connection”と呼ばれます。Terraform Automationのメニューから、”Create Connections”ボタンをクリックし、PowerVCを”OpenStack Cloud Provider”として登録します。正常に追加されると、Statusが”Valid”になります。
これでTerraform Templateの準備ができました。Terraform Templateは、作成したCloud Connectionを指定して”Deploy”することで、単体でもテストすることができます。
(2) AIX設定用のAnsible Playbookを用意し、Ansible TowerにJobとして登録する
ここでは、サンプルとしてAIXにユーザーを作成するためのPlaybookを作成し、Ansible TowerへJobとして登録します。AIXやPower Systemsの構成に必要なModuleは、Ansible Galaxyに登録されています(Ansible Galaxy for power_aix)。このPlaybookでは、(1)で作成したAIX LPARの起動を待つため、”wait_for_connection”モジュールを使用しています。
このPlaybookも、Ansibleを使って単体でテストすることができます。テストで実際に稼働することが確認できたら、Ansible TowerへJobとして登録します。Ansible Tower上のJobは、Terraform & Service Automationから実行することが出来ます。
(3) Terraform TemplateとAnsible Playbookをサービス上で統合する
「サービス」はTerraform & Service Automationの機能の一つで、各コンポーネントを統合するキャンバスのような役割を持ちます。サービス上にTerraform TemplateやAnsible Jobなどを配置し、必要なパラメータを連携させることで、それぞれを統合することができます。ここでは、図にあるように3つのコンポーネントをServiceのGUI上で接続します。TerraformはあらかじめServiceと接続されていますが、Ansible Towerは個別に導入しているので手動で接続しておく必要があります。接続の作成は、サービスの”Manage”→”Ansible Integration”メニューから行うことが出来ます。
最初にサービス上に配置するコンポーネントは、さきほど準備したTerraform Templateです。ここでは、PowerVCを使って新たなAIX LPARを作成します。次のコンポーネントは、AnsibleのInventoryです。Terraformで作成したAIX LPARのIPアドレスをAnsibleのInventoryに追加します。そのため、前段のTerraform Templateの出力パラメーター(IPアドレス)を、Inventoryへリンクする必要があります。最後に、Ansible Jobを配置します。ここでは、Inventoryに追加されたAIX上で、ユーザーを作成します。こちらでも、前段のAnsible Inventoryの出力パラメーター(インベントリー名)をリンクしておきます。
以上のように各コンポーネント間では、サービスによって必要なパラメーターが連携されています。
(4) サービスの実行
作成したサービスを実行すると、サービスに登録されたコンポーネントがバックグラウンドで順番に実行され、ユーザーが追加されたAIX LPARが自動的に構築されます。これによって、これまでストレージ作成やLPAR作成、AIX構成など複数のチームの関与が必要だったプロセスが、自動的に実行できるようになります。この自動化は、構築期間とコスト、設定ミスの削減に大きく貢献します。しかも、他の用途のAIX LPARが必要になった場合でも、サービスを少し変更するだけで対応可能なので、設計・構築の手間を削減することもできます。
Infrastructure as Codeの未来
上記の例では、Power Systems基盤上での簡単な自動化をご紹介しましたが、さらに以下のような自動化を行うことも可能です。
- ミドルウエアやアプリケーションの導入・設定
- x86やSystem zなどマルチ・プラットフォームにまたがるソリューションの構築
- IBM CloudやAWSなどのクラウドも利用するハイブリッド・クラウド環境での構築作業
このような自動化をすすめることによって、単に構築時の工数削減だけではなく、DR環境の構築を迅速に行うことが可能となり、新たなハードウエアやクラウド環境に移行する場合にも自動化資産が利用できるようになります。迅速な構築・移行作業の実現によって、お客様のDXの加速に大きく貢献するはずです。
Infrastructure as Code成功のためのIBMソリューション
IBM Cloud Pak for Multicloud Management は、オンプレミスからエッジ・コンピューティングまで、一貫した可視性、ガバナンス、自動化を提供します。企業は、マルチクラスター管理、イベント管理、アプリケーション管理、インフラストラクチャ管理などの機能を得ることができます。
IBM Lab Services は、IBM Power Systems、IBM Power Systems Virtual Server、IBM Z、LinuxONE 上での自動化技術に関するサービスやトレーニングを提供しています。ご興味のある方は、ぜひお問い合わせください。
付録
導入手順
Red Hat OpenShift Container Platform、Cloud Pak for Multicloud Management、Terraform & Service Automationのインストールは、オンライン・インストールかオフライン・インストールを選択できます。”オンライン”とは、インターネットに直接接続するか、プロキシサーバーを介して接続することを意味します。オンライン・インストールが最も簡単な方法ですが、インターネットに接続しないオフライン・インストールも可能です。OpenShift Container Platformのオフライン・インストールには、Red Hatのコンテナレジストリのミラーイメージを用意する必要があります。また、Cloud Pak for Multicloud ManagementやTerraform& Service Automationの導入には、IBM Passport AdvantageのWebサイトからソフトウェア・イメージをダウンロードする必要があります。詳細は以下をご参照ください。
- Installing OpenShift Container Platform 3.11
- Cloud Pak for Multicloud Management 1.30 installation
- Installing Terraform & Service Automation Module
- IBM Cloud Paks Playbook
Ansible Towerのインストール手順は、オンライン、オフラインとも同じです。AnsibleはPower Systemsに対応していますが、Ansible Towerはx86アーキテクチャのプラットフォームにインストールする必要があります。
IBM Quantum Learningのコース刷新および新登場したラーニング・パスウェイ
IBM®は、IBM QuantumTM Learningで新しい教材をリリースします。量子学習コンテンツの選択に役立つ「ラーニング・パスウェイ」も利用可能になります。 量子計算の学習を始めるのに時期を待つ必 […]
IBM Z 移行の勘所 – お役立ちブログ情報編
IBM Z をご愛顧いただいているお客様、また IBM Z の導入、展開、移行に際しお世話になっておりますビジネスパートナー向けに、このたび、IBM Systems Japan Blog に IBM Z 移行に関するお役 […]
Qiskit Code Assistantのプレビュー公開
IBM QuantumTM プレミアム・ユーザーの皆様向けに、量子コードのコーディングを助けるアシスタントがプレビューとして利用可能になりました。 有用な量子計算を世界にもたらすためにIBMは、世界で最も高 […]