第4回 Cloudifyのインストール

本コラムでは、オーケストレーション技術とオーケストレーションの一例としてCloudifyについて説明してきました。今回はCloudifyを実際に試してみたい方に向けて、Cloudifyのインストール方法を解説します。
さまざまな環境で試すことを想定して、Virtual Box上の仮想マシンにCloudifyをインストールします。そして、CloudifyのWebUIにアクセスして、Cloudifyが実行中であることを確認します。

インストール情報

CLIとManager

CloudifyはCLIとManagerから構成されており、CLIとManagerで個別にインストーラーが用意されています。ManagerはCLIを内包しているため、ManagerをインストールするだけでCLIからの操作も試すことができます。

インストーラーの対応状況

CLIはRPM、DEB、EXE、OSXに対応しており、Windows、Linux(CentOS/RHEL/Debian/Ubuntu)、Mac OS環境での利用がサポートされています。
ManagerはRPMに対応しており、CentOS/RHEL (64bit)環境での利用がサポートされています。なお、Managerインストール済みのDocker、AMI(およびマーケットプレイス)、QCOWイメージファイルが用意されており、こちらを利用することも可能です。

図1. Cloudifyのダウンロードページ

図1. Cloudifyのダウンロードページ

参照

製品エディションとソフトウェアライセンス

Cloudifyは製品エディションとして、コミュニティ版とエンタープライズ版が存在しています。コミュニティ版では、オープンソースコミュニティで開発されている一通りのオーケストレーション機能を利用できます。エンタープライズ版では、コミュニティ版の機能に加えてテナント管理やクラスタ構成(High Availability)などの機能を利用できたり、Cloudify社のサポートを受けられたりします。
利用する製品エディションは、ダウンロードページにおいて、コミュニティ版またはエンタープライズ版のインストーラーから選択できます。

現在のソフトウェアライセンスでは、内部ビジネスを目的として、Cloudifyからオペレーティングシステムを10台まで管理することが許可されています。
また、エンタープライズ版について試用期間が定められており、インストール後60日間は無料で試すことができます。

参照

また本コラム第2回では、製品エディション別の機能一覧を紹介しています。

Managerのハードウェア要件

ManagerはCLIやさまざまなコンポーネントを内包しており、インストール時に、いくつかのハードウェア/ソフトウェアの要件を満たしている必要があります。
Managerのハードウェア要件としては、vCPUが2コア以上、メモリが4GB以上、ストレージが5GB以上、NICが2枚以上を必要としています。このハードウェア要件を満たさない場合、インストール時にエラーが発生します。

表1. Managerのハードウェア要件
項目 最小値 推奨値
vCPU 2コア 8コア
メモリー 4GB 16GB
ストレージ 5GB 64sGB
NIC 2枚 -

参照

Managerのソフトウェア要件

Managerのソフトウェア要件としては、CentOS/RHELにおいてsudo権限の付与といくつかのパッケージインストールを必要としています。パッケージが不足していた場合は、インストール時にエラーが発生します。

表2. Managerのソフトウェア要件
項目 概要
sudo cloudifyの処理にsudo権限が必要です。sudo権限はrootユーザーでも必要になります。
openssl-10.0.2k 認証情報の作成に必要です。
openssh-server サニティチェックにおけるSSH鍵の作成に必要です。
logrotate Cloudifyのログローテーションに必要です。
systemd-sysv PostgreSQLコンポーネントに必要です。
initscripts RabbitMQコンポーネントに必要です。
which Logstashプラグインのインストールに必要です。
python-setuptools CloudifyのPython処理に必要です。
python-backports CloudifyのPython処理に必要です。
python-backports-ssl_match_hostname CloudifyのPython処理に必要です。

Managerの使用ポート

Managerは複数のコンポーネントを利用しており、デフォルトでいくつかの使用ポートが定められています。使用ポートの詳細はリンク先を参照してください。表3には代表的な使用ポートを示します。ファイアウォール設定や仮想マシンのポートフォワーディング設定などの参考にしてください。

表3. Managerの使用ポートの代表例
ポート番号 使用
22 CLIからのSSH接続(※オプション)
80/443 RESTサービスとWebUI(Nginx経由)
5671 RabbitMQ
8083/8086 InfluxDB(WebUI/REST)
53333 内部的なREST通信

参照

インストール手順

今回は、最もシンプルでさまざまな環境でも試しやすい、スタンドアローン構成のインストール手順を解説します。なお、以下の説明では、ホストがインターネットに接続されていることを前提としています。
本インストール手順では、Virtual Box上の仮想マシン(CentOS 7)にManagerをインストールし、ManagerからOpenStackやAWS、Azureなどが制御できるようになることを想定します。ただし、今回はManagerのインストール手順の解説が本題であるため、OpenStackなどの構築手順の説明は省略しますのでご了承ください。
以下に、動作検証済み環境を示します。[図2参照]

動作検証済み環境
ホストOS Windows 10
ホストOS上のソフトウェア Virtual Box 5.2.12
ゲストOS CentOS 7 (x86_64-DVD-1708)
ゲストOS上のソフトウェア Cloudify 4.3.2

図2. 動作検証済み環境のシステム構成

図2. 動作検証済み環境のシステム構成

1. Virtual Boxのインストールと仮想マシンの作成

Virtual Boxの公式ページからインストーラーをダウンロードし、インストーラーの手順に沿ってVirtualBoxをインストールします。Virtual Boxマネージャーを起動して、「新規」ボタンを左クリックし、新しく仮想マシンを作成します。作成する仮想マシンには、Managerのハードウェア要件を満たすような設定を行います。
OSにはLinux/Red Hat(64-bit)、メモリには5120MB、ストレージには8GB(自動パーティション)、プロセッサー数には2コアを設定します。今回、ネットワークはブリッジネットワークを使用せず、NATとホストオンリーアダプターを使用します。ホストオンリーアダプターには、固定IPアドレス/ネットマスクを手動で割り当てておきます。(今回は192.168.56.1/24を割り当てます)

仮想マシンの設定
タイプ Linux
バージョン Red Hat (64-bit)
メモリーサイズ 5120MB
ハードディスク 8GB(自動パーティション)
プロセッサー数 2コア
ネットワーク NAT(DHCP) + ホストオンリーアダプター(192.168.56.1/24)

図3. VirtualBoxマネージャーの仮想マシン設定

図3. VirtualBoxマネージャーの仮想マシン設定

図4. VirtualBoxマネージャーのホストオンリーアダプター設定

図4. VirtualBoxマネージャーのホストオンリーアダプター設定

2. CentOS 7のインストール

CentOSの公式ページからCentOS 7のISOファイルをダウンロードします。Virtual Boxマネージャーに移動し、手順1で作成した仮想マシンを選択して「起動」ボタンを左クリックすると、起動ハードディスクの選択画面が表示されます。ダウンロードしてきたISOファイルを選択して「起動」ボタンを左クリックすると、CentOS 7のインストーラーが起動します。
今回、CentOS 7のインストール作業では、ソフトウェアの選択には「最小限のインストール」、インストール先には「自動パーティション」を設定します[図5参照]。それ以外は適宜設定を行い、仮想マシンにCentOS 7をインストールします。

図5. CentOS 7の「インストールの概要」ページの設定

図5. CentOS 7の「インストールの概要」ページの設定

3. CentOS 7の基本設定

インストールしたCentOS 7 にログインし基本設定を行います。
初めに、Managerのソフトウェア要件を満たすため、実行ユーザー(<username>)に対してsudo権限を付与します。

sudo権限の付与

$ su –
# visudo
  ※「%<username> ALL=(ALL) ALL: ALL」を設定します
  ※「<username> ALL=(ALL) NOPASSWD: ALL」を設定します
# exit
$ sudo ls
  ※sudo権限エラーが表示されたり、パスワードが要求されたりしないことを確認します

次に、CentOS 7からインターネットへのアクセスや、ホストOSからCentOS 7へのアクセスを可能にするため、CentOS 7のネットワーク設定を行います。
今回はnmtuiコマンドを使用してネットワークの設定を行います。NATアダプター(enp0s3)はデフォルト設定のままで自動接続のチェックを有効にし、ホストオンリーアダプター(enp0s8)はIPアドレス/ネットマスクの範囲内で固定IPアドレス(今回は192.168.56.101)を割り当て、自動接続のチェックを有効にします。そして、ネットワークサービスを再起動します。

ネットワーク設定

# nmtui
  ※NATアダプターの自動接続を有効にします
  ※ホストオンリーアダプターに固定IPアドレスを割り当て、自動接続を有効にします
# systemctl restart network
# ip a
  ※enp0s3, enp0s8にIPアドレスが割り当てられていることを確認します

図6. CentOS 7のホストオンリーアダプター(enp0s8)に対するネットワーク設定

図6. CentOS 7のホストオンリーアダプター(enp0s8)に対するネットワーク設定

ここまででネットワーク設定が完了しました。しかし、CentOS 7のデフォルト設定では、ホストOSからCentOS 7へのHTTPアクセスなどがファイアウォールで防がれてしまいます。さまざまな対応方法が存在しますが、今回は、CentOS 7のファイアウォールを停止させる方法で対応します。

ファイアウォール設定

# systemctl stop firewalld
# systemctl disable firewalld
# systemctl status firewalld
  ※「Active: inactive (dead)」と表示され、firewallが停止中であることを確認します

4. Managerに必要なパッケージのインストール

Managerのソフトウェア要件を満たすように、パッケージをCentOS 7にインストールします。 今回の手順に沿ってCentOS 7をインストールすると、openssl-1.0.2kやinitscriptsなどのパッケージはインストールされており、以下の3種類のパッケージのみが未インストールとなっています。

未インストールのパッケージ

  • python-backports
  • python-backports-ssl_match_hostname
  • python-setuptools

そこで、yumコマンドを用いて未インストールのパッケージをCentOS 7にインストールします。インストール後は、rpmコマンドを用いてインストールされたことを確認します。

Managerのソフトウェア要件を満たすためのパッケージインストール

$ sudo yum install python-backports python-backports-ssl_match_hostname python-setuptools
$ rpm –qa | grep –e python-backports –e python-setuptools
  ※3種類のパッケージ名が表示されることを確認します

5. ManagerのRPMパッケージインストール

Cloudifyのダウンロードページ(https://cloudify.co/download/)からRPMパッケージをダウンロードし、yumコマンドを用いてCentOS 7にインストールします。インストール後は、rpmコマンドを用いてインストールされたことを確認します。

rpmパッケージのインストールと確認

$ sudo yum install <cloudify-manager-install.rpm>
$ rpm –qa | grep cloudify-manager
  ※「cloudify-manager-install-4.3.2-ga.x86_64」などが表示されることを確認します

6. Managerのconfig設定とインストール

RPMパッケージのインストールが完了すると、/etc/cloudify/config.yamlが作成されます。config.yamlには、プライベートIPアドレス、パブリックIPアドレス、admin権限ユーザーの設定、コンポーネントの設定などを記述できます。

表4. config.yamlの設定項目
設定項目 設定例 概要
private_ip 192.168.56.101 Cloudify agent(オーケストレーション用の処理を実行したり、モニタリングのログ/メトリクスを収集してManagerに報告したりする機能)がCloudify Managerに接続するときに利用するIPアドレス。
public_ip 192.168.56.101 Cloudify CLIや他のクライアント(Web)が接続するCloudify ManagerのIPアドレス。
admin_username admin Cloudify Managerのadmin権限ユーザーの名前。
admin_password admin Cloudify Managerのadmin権限ユーザーのパスワード。指定しなければ、ランダムの値が付与され、インストール完了時に表示されます。
networks {} Cloudify agentがrabbitmqにイベント通知する際に使用するCloudify ManagerのIPアドレス。設定しなければprivate_ipの値が使用されます。
skip_sanity false Cloudify managerインストール時の正常性チェックをスキップするかどうかの設定。Trueを設定するとスキップされます。

今回は、private_ipとpublic_ipにホストオンリーアダプターの固定IPアドレス(192.168.56.101)、admin権限ユーザーに任意のパスワードを設定します。config.yamlの修正後にインストールコマンド(「cfy_manager install」)を実行することで、Managerのインストールが完了します。

Managerのインストール(4分程度で完了します)

$ sudo cfy_manager install

参照

7. Managerのインストールの完了確認

Managerのインストールが完了すると、コマンドラインからCLI(cfyコマンド)が実行できるようになります。
ただし、インストール直後は、CLIから接続するManager情報が設定されていません。そこで、「cfy profiles」コマンドを用いて接続対象の設定を行います。今回は、インストール時に使用したpublic_ip、admin_username、admin_passwordを設定し、テナントはデフォルトで存在するdefault_tenantを設定します。

CLIから接続するManagerの設定

$  cfy profiles use <public_ip> -u <admin_username> -p <admin_password> -t default_tenant

CLIから接続するManager情報の設定が完了すると、対象のManagerのサービス稼働状況を確認できる「cfy status」コマンドが実行できるようになります。コマンドを実行すると、WebserverやRabbitMQなどが実行中であることを確認できます。

Managerのサービス稼働状況の確認

$  cfy status

図7.「cfy status」コマンドの実行結果

図7.「cfy status」コマンドの実行結果

また、Windows上のWebブラウザからhttp://192.168.56.101にアクセスすることで、Managerのログインページにアクセスできます。ログインページにユーザー名とパスワードを入力して「Login」ボタンを左クリックすると、Managerの管理ページにアクセスできます。管理ページでは、Cloudifyの機能をUIベースで実行できます。

図8. Cloudify Managerのログインページ

図8. Cloudify Managerのログインページ

図9. Cloudify Managerの管理ページ

図9. Cloudify Managerの管理ページ

今回は、スタンドアローン構成のCloudifyをVirtualBox上にインストールする手順について解説しました。

本来は、CloudifyをCLIとManagerに分離してCLIからSSLモードで接続できるようにしたり、Cloudifyと制御対象を安全性の高いネットワーク上に構築したり、機密性の高いシステム構成を採用する必要がありますが、まずはシンプルな環境でCloudifyのさまざまな機能をお試しいただければと思います。

Writer Profile

ソリューション事業部
SDIソリューションビジネスユニット SDIグループ
赤木 信也



第4回 Cloudifyのインストール