第11章 テクニカルノート

本章では、Red Hat CloudForms のエラータアドバイザリーに記載のバグ修正や機能拡張について概説しています。本章の情報および手順は、Red Hat CloudForms の管理者を対象としています。

11.1. RHSA-2015-2551

本項に記載するバグは、アドバイザリー RHSA-2015:2551 で対応しています。このアドバイザリーについての詳しい情報は、https://access.redhat.com/errata/RHSA-2015:2551.html を参照してください。

11.1.1. API

BZ#1127780

ユーザーインターフェース外でタグを修正する機能が必要であったため、この機能拡張により、ユーザーインターフェースからの機能と同様に、Web サービスで add、delete、list などのタグ管理ができるようになります。これは、REST API で利用できるようになりました。

BZ#1202556

CloudForms Management Engine の新バージョンでは、コマンドラインと REST API の両方によるレポートのインポート機能が追加されました。この機能は、CloudForms Management Engine ユーザーインターフェースを使用せずにレポートをインポートするニーズに対応しています。

BZ#1238268

CloudForms Management Engine の新バージョンでは、RESTapi で Reporting レポートを取得する機能が追加されました。このレポートは、ポート標準の RESTapi インベントリー呼び出しの応答として、JSON 形式で返されます。

BZ#1257748

CloudForms Management Engine の新バージョンでは、REST API を使用してユーザーのパスワードを変更する機能が追加されました。この機能は、Red Hat Cloud Infrastructure 製品のデプロイメント時に CloudForms Management Engine の管理者パスワードを変更する必要性に対応するために追加されました。

11.1.2. アプライアンス

BZ#1124520

CloudForms Management Engine の新バージョンでは、最も古い仮想マシンのハードウェアバージョンが定義した制限をベースに仮想マシンのハードウェアを再設定するダイアログボックスを動的に更新する機能が追加されました。以前のバージョンでは、ハードウェアの定義がハードコード化されており、仮想マシンのメモリーを最大 16 GB 以上再設定できないように制限されていました。今回のバージョンで、仮想マシンのメモリーを希望通りに再設定できるようになりました。

BZ#1159009

別の v2_key に変更する機能を提供する必要がありました。これは、開発環境と実稼動環境で異なるキーを使用しているお客様があり、このニーズが上がってきました。自動化モデルのエクスポートおよびインポートの後に、新規データベースはこれらのキーにアクセスできなくなっていました。以前のリリースでは、キーの削除はできましたが、別のキーで暗号化されたデータへの移行を行う手段が必要でした。

この機能拡張で、fix_auth は以前の v2 keys が変換されるようになりました。

BZ#1170760

CloudForms Management Engine の新バージョンでは、ユーザー認証のメカニズムとして LDAP を追加した後に管理ユーザーを無効にする機能が追加されました。この機能がなければ、管理アカウントに対してパスワードの制約を強制できなくなるため、Web ユーザーインターフェース経由の総当り攻撃から管理アカウントを保護する機能が追加されました。

BZ#1174458

CloudForms Management Engine の以前のバージョンでは、信頼された Active Directory フォレストを設定する際に使用した管理ユーザーのパスワードは、トラストの設定の保存時に evm のログに記録されていました。このバグは、不正なプログラミングロジックが原因で、このコードを訂正することで修正されました。管理ユーザーのパスワードは、CloudForms Management Engine の新バージョンでは信頼された Active Directory の設定時にログに記録されなくなりました。

BZ#1180768

CloudForms Management Engine の新バージョンのアプライアンスイメージでは、/var、/var/log、/var/log/audit、/home、/tmp ディレクトリーに対して別のマウントポイントが追加されます。この機能拡張により、CloudForms Management Engine の実装が STIG (Security Technical Implementation Guide) の要件に継続して準拠できるようになりました。

BZ#1182644

CloudForms Management Engine の新バージョンでは、root 以外のユーザーで CloudForms アプライアンスコンソールを実行する機能が追加されました。この機能により、実装が STIG (Security Technical Implementation Guide) の要件に継続して準拠できるようになりました。

BZ#1183092

CloudForms Management Engine の新バージョンでは、/etc/init/control-alt-delete.override および /var/www/miq/system/LINK/etc/init/control-alt-delete.override ファイルを変更、削除、上書きしなくなりました。これらのファイルに変更を加えると STIG (Security Technical Implementation Guide) の準拠違反になります。この機能により、実装が STIG の要件に継続して準拠できるようになりました。

BZ#1183094

CloudForms Management Engine の以前のバージョンでは、同梱されていた Apache http サーバーが OCSP をサポートしていなかったため、OCSP Responderを使用して CRL にサービスを提供することができませんでした。この問題は、CloudForms Management Engine の新バージョンで、Apache http サーバーをバージョン 2.5 にアップグレードすることにより修正されました。

BZ#1206666

CloudForms Management Engine の新バージョンでは、SSH 接続で root ユーザーとしてアプライアンスコンソールを起動した場合に LOCK_CONSOLE=false の環境変数を渡す要件が削除されました。これにより、OpenStack 環境で操作している場合には、コンソールをより簡単に起動できるようになりました。

BZ#1221760

CloudForms Management Engine の新バージョンでは、LDAP ディレクトリーブランチでユーザーを検索する際に全ツリーを検索する機能が追加されました。デフォルトの設定ではサブツリー検索で LDAP ディレクトリーブランチから全ユーザーを検索できなかったために、この機能が追加されました。この機能は、新バージョンの CloudForms Management Engine の設定オプションとして利用できます。

BZ#1222591

Red Hat CloudForms 3.2 (CloudForms Management Engine 5.4) 以降のバージョンでは、cloud-init 機能により、Red Hat Enterprise Virtualization 3.4 環境でホストされている仮想マシンへの root ユーザによる SSH アクセスがブロックされます。この問題は、Red Hat Enterprise Virtualization 3.4 のみで発生しており、Red Hat Enterprise Virtualization 3.3 および Red Hat Enterprise Virtualization 3.5 では cloud-init 機能は正常に機能する点にご注意ください。この問題は、今後のリリースで対応されます。

BZ#1227426

CloudForms Management Engine の以前のバージョンからの移行で、ユーザーが削除されたにも拘らず、そのユーザーの Dashboard での定義はデータベースから削除されませんでした。これにより、管理ユーザーは、これらのユーザーを含むグループのウィジェットを生成できませんでした。このバグは、削除済みのユーザーの残りのデータをチェックしてスキップすることで、修正されました。CloudForms Managetment Engine の新バージョンでは、管理ユーザーにより、予想通りにウィジェットを作成できます。

BZ#1238423

CloudForms Management Engine の以前のバージョンから移行する際に、process id out of range のエラーが evmserverd サービスの起動後に表示されていました。このエラーは、アップグレードプロセスで evm pid ファイルに無効なテキストが書きこまれることが原因で発生していました。ps に渡す前に pid ファイルの内容が検証されるようにすることで、このエラーが修正されました。process id out of range エラーは、CloudForms Management Engine の新バージョンでは表示されなくなりました。

BZ#1238443

CloudForms Management Engine の以前のバージョンへの移行は、rubyrep のアンインストール時に DB:migrate failure エラーが発生して失敗していました。これは、レプリケーションワーカーが VMDB パスワードを以前のキーで暗号化した状態で保存することが原因で発生していました。このバグは、rubyrep のアンインストールの前に以前のキーが必ず読み込まれタスクが完了できるようにすることで修正されました。CloudForms Management Engine の新バージョンへの移行は、予想通りに正常に完了します。

BZ#1247298

マルチテナンシーは、単一のソフトウェアインスタンス経由でリソースやアイデンティティーをグループ化または分割して、複数のクライアント組織 (テナント) にサービスを提供する仕組みを提供します。これにより、大規模なユーザープール全体でリソースとコストを共有して、以下が可能になります。
-コストがより低い場所へのインフラストラクチャーの集約 (例: 不動産、電気)
-ピークロードのキャパシティー向上 (ユーザーはロードレベルが最大限になるように操作する必要がない)
-使用率が通常 10-20% 程度のシステムの使用率と効率性の向上

BZ#1262984

CloudForms Management Engine の新バージョンでは、以前の /var/www/miq/vmdb/certs/ca.cer 証明局ファイルが含まれなくなりました。現在、このファイルは使用されていません。また、ドキュメントでのこのファイルに関する言及もすべて削除されました。

BZ#1270148

CloudForms Management Engine の新バージョンでは、最大 50 文字を含むタグを作成する機能が追加されました。以前のバージョンでは、タグ名は 30 文字までとの制約がありました。このようにタグ名の最大サイズが増加したことにより、クラウドや OpenStack のテナント名をベースにタグ名を作成できるようになりました。

BZ#1278202

以前のリリースでは、root 以外のユーザーでログインするとパーミッション拒否のエラーが発生しました。キックスタートから設定スクリプトを呼び出す部分と、1 回限りの設定を有効化するスクリプトを設定スクリプト追加する部分とに分類することで、cfme-gemset RPM 仕様が修正されました。

11.1.3. 自動化

BZ#1126934

割り当てられた領域でクォータを有効にするのではなく、テンプレートが実際に消費する領域を使用したクォータルールが必要でした。この機能拡張により、クォータコードが強化され、対応が容易になりました。クォータは、使用領域をベースに有効化されるようになりました。

BZ#1215990

CloudForms Management Engine の新バージョンでは、自動化エンジンの機能が拡張されて、状態メソッドが on_entry および on_error のマシンは、有効な条件下であれば次の状態に進むことができるようになりました。on_entry メソッドの場合は、メソッドを実行する必要があるかを確認します。on_error メソッドの場合は、エラーの処理やエラーからの復元を行います。

BZ#1227045

CloudForms Management Engine の新バージョンでは、デプロイメント時にサービスカタログアイテムのフィルタリング機能が追加されました。新規デプロイメントモデルでは、サービスデザイナーによりデプロイメントプロセスの動的な性質を組み込むことができ、ユーザーはサービスのサブセットを選択できるようになりました。自動化により、デプロイメント時にその他のカタログサービスアイテムがすべて除外されます。

BZ#1236174

CloudForms Management Engine の新バージョンでは自動化エンジンの機能が拡張され、複数の状態のマシンが単一のワークスペースで実行されるようサポートします。これにより、ある状態のマシンが同じワークスペースにある別の状態のマシンを呼び出すことができます。チェーン内でいずれかの状態のマシンが再試行またはエラーで終了した場合には、すべての状態のマシンがそれに応じて再試行またはエラーで終了します。

BZ#1238391

CloudForms Management Engine の以前のバージョンでは、仮想マシンのプロビジョニング中に、カスタマイズタブで root パスワードを指定すると、パスワードがクリアテキストで evm ログにロギングされました。これは、オブジェクトデータのダンプに使用するメソッドには、機密データのフィルタリングが定義されていなかったため発生していました。このバグは、オブジェクトダンプのメソッドにフィルタリングオプションを追加することで修正されました。CloudForms Management Engine の新バージョンでは、仮想マシンのプロビジョニング時に root パスワードがロギングされなくなりました。

BZ#1254953

自動化を使用してタグを管理する必要性がありました。今回の機能強化により、MiqAeService::MiqAeClassification オブジェクトのアレイを返し、MiqAeService::MiqAeClassification のエントリーメソッドを公開して、カテゴリーのエントリーにアクセスするという、新しいクラスメソッド「categories」が追加されました。自動化メソッドは、カテゴリーとエントリーにアクセスできるようになりました。

11.1.4. コントロール

BZ#1248848

CloudForms Management Engine の新バージョンでは、条件指定における Ruby 表現のサポートを提供するユーザーインターフェースとコードを削除しました。これは、CloudForms Management Engine アプライアンスのセキュリティーを強化するためです。

11.1.5. パフォーマンス

BZ#1204108

CloudForms Management Engine の以前のバージョンでは、仮想マシンのプロビジョニングの際にタブの切り替えに長い遅延が発生していました。デバッグセッションデータのロギングにかかる時間が、この遅延の原因でした。このバグは、デバッグモードで実行時のみ、デバッグセッションデータのロギングが行われるようにすることで修正されました。CloudForms Management Engine の新バージョンでは、プロビジョニング時のタブの切り替えははるかに早くなりました。

11.1.6. プロバイダー

BZ#1140191

CloudForms Management Engine の以前のバージョンでは、No-Op ファイアウォールが OpenStack の neutron で機能していることが原因で、OpenStack セキュリティーグループにアクセスすると HTTP 404 エラーが返された場合に、OpenStack プロバイダーからのインベントリーの収集に失敗しました。このバグは、HTTP 404 エラーを正しく処理するように、OpenStack 接続ライブラリーのコードを変更することで修正されました。CloudForms Management Engine の新バージョンは、OpenStack からセキュリティーグループの情報を収集できない状態から正常に機能する状態になっています。

BZ#1218746

CloudForms Management Engine の新バージョンでは、スタックのオーケストレーションにマルチテナントのサポートが追加されました。この機能により、オーケストレーションの更新時に全テナントからのスタック情報を収集する機能が追加され、オーケストレーションプロビジョニングのダイアログでテナントを選択するオプションと、選択肢たテナントでスタックを操作する機能が追加されました。

BZ#1223536

CloudForms Management Engine の以前のバージョンには、OpenStack のインベントリー収集コードにバグがあり、OpenStack サーバーインスタンスの検索機能は最大 1000 インスタンスまでに制限されていました。このバグは、インベントリーコードが OpenStack サーバーインスタンスのページネーションクエリーをサポートしていないことが原因でした。このバグは、OpenStack サーバーインスタンスのクエリーにページネーションサポートを追加することで修正されました。CloudForms Management Engine の新バージョンは、OpenStack プロバイダーに対してすべての OpenStack サーバーインスタンスを一覧表示できるようになりました。

BZ#1234871

CloudForms Management Engine の以前のバージョンでは、Microsoft System Center Virtual Machine Manager (SCVMM) プロバイダーでの仮想マシンの検出に、ディスクのない仮想マシンが検出された場合には、定義されていないメソッドエラーが報告されました。仮想マシンのストレージ検出コードでは、仮想マシンには必ずディスクが指定されていることが求められるため、このバグが発生していました。このバグは、ディスクのない仮想マシンを正常に処理するようにコードを変更することで修正されました。CloudForms Management Engine の新バージョンでは、SCVMM プロバイダーでの仮想マシン検出は正常に完了します。

BZ#1250202

CloudForms Management Engine の以前のバージョンでは、heat テンプレートは管理テナントだけで、それ以外のテナントでは見つかりませんでした。このバグは、以前の Fog Gem により発生していました。このバグは、アプライアンス上の Fog Gem のバージョンを更新することで修正されました。CloudForms Management Engine の新バージョンでは、Heat テンプレートはすべてのテナントに存在するようになりました。

BZ#1260196

CloudForms Management Engine の新バージョンでは、クラウドプロバイダー上でフレーバーとして利用可能なディスクに関するインベントリー情報が収集、保存されます。

BZ#1263744

クラウドのテナントの説明フィールドに長さの制限があり、OpenStack テナントの説明が 255 文字以上の場合には、インベントリーの収集が失敗していました。そのため、OpenStack 環境の最初の検出の際に、CloudForms はさまざまなインスタンスに対する 404 エラーの応答を受信し、インベントリーの収集に失敗していました。

OpenStack では、テナントの説明に 255 文字以上の値を入力できるため、CFME OpenStack インベントリーの収集で 255 文字以上のテナントの説明をサポートするようになり、インベントリーの収集がエラーなく正常に完了するようになりました。

11.1.7. プロビジョニング

BZ#1216889

CloudForms Management Engine 3.1 から 4 GB 以上のメモリーで仮想マシンをプロビジョニングした後には、仮想マシンの電源が自動的に入りませんでした。これは、メモリー予約が割り当てられた仮想マシンのメモリーより大きいため発生しました。CloudForms 4.0 では、メモリー予約を検証して、割り当てられた仮想マシンのメモリーよりも大きい場合にはエラーメッセージが報告されるようになりました。

BZ#1234904

以前のリリースでは、Virtual Machine Manager (VMM) サーバーは Microsoft System Center 2012 SP1 Virtual Machine Manager のシェルにロードされず、System Center 2012 SP1 Virtual Machine Manager において、テンプレートからの仮想マシンのプロビジョニングに失敗していました。System Center 2012 SP1 VMM 環境は、VMM サーバーをシェルに読み込み、テンプレートからのプロビジョニングも正常に完了します。

BZ#1235822

以前のリリースでは、Red Hat Enterprise Virtualization Manager の仮想マシンは起動が遅く、autostart_destination フェーズで、「電源を投入中」のステータスであるため、仮想マシンを実行できませんでした。これは、ホストが仮想マシンの起動要求を再度キューに入れるように、コードにループを追加することで修正されました。仮想マシンは、120 回試行した後に起動されなかった場合にはプロビジョニングが失敗するようにエラーが自動的に返されます。

11.1.8. レポート

BZ#1238287

以前の CloudForms Management Engine バージョンでは、ハイパーバイザーのプロバイダーでの仮想マシンソケット数の高基準値 (1 ヶ月分) がレポートされませんでした。CloudForms Management Engine の今回のバージョンには、この機能が追加されています。プロバイダー別ハイパーバイザー別にソケットの高基準値の情報を収集するように、レポートがキューに入るようになりました。

BZ#1243695

以前のリリースでは、チャージバックレポートエディターでは、チャージバック間隔のフィールドで選択したタイムゾーンが保存されませんでした。チャージバックレポートエディターでのこのエラーは修正され、ローカルのタイムゾーンをレポートに保存できるようになりました。

11.1.9. SmartState 分析

BZ#1095243

以前のリリースでは、停止した Red Hat Enterprise Virtualization の仮想マシンでの SmartState 分析は失敗し、「No eligible proxy」のエラーメッセージが返されていました。これは、SmartState 分析コードにホストが関連しているにも拘らず、Red Hat Enterprise Virtualization の SmartState 分析では含まれていないため発生していました。SmartState 分析のコードは、proxies4job と関連のメソッドを取り除き、Red Hat Enterprise Virtualization 固有のバージョンを実装して、ホストのアフィニティーを無視するようになりました。そのため、Red Hat Enterprise Virtualization での SmartStae 分析は仮想マシンが正しく実行されるように停止されるようになりました。

BZ#1202895

Red Hat Enterprise Virtualization 3.5 では、仮想マシンの OVF ファイルはすべて、マスターストレージドメインに存在しなくなりました。そのため、NFS ストレージドメインにある Red Hat Enterprise Virtualization 3.5 の仮想マシンで SmartState 分析を実行すると、File not found エラーが原因で失敗していました。しかし、SmartState 分析ロジックが更新され、これらの仮想マシンで正常に実行されるようになりました。

11.1.10. Web ユーザーインターフェース

BZ#1095468

アプライアンスの設定時に使いやすいように、ゾーン情報ページで NTP の設定を表示する機能が必要でした。今回のリリースでは、ゾーンタブのゾーン情報のページで説明、SmartProxy サーバー IP、NTP サーバーの表示が実装されています。

BZ#1095470

以前のリリースでは、カタログ設定の編集時には、フォームで「ボタンの割り当て」ボックスが提供されていました。これは、そのボタンに対してテキストが不正に設定されていたため、発生していました。ボタンの表示テキストが修正され、フォームには正しく「カタログ項目の割り当て」と正しく表示されるようになりました。

BZ#1193652

以前のリリースでは、レポートエディターは誤ってエンティティーのタグを処理し、正しいタグを表示しない EVM グループをベースにレポートを生成していました。これにより、「vms.managed.department」と「miq_templates.managed.department」などのカスタムタグが col_order に追加される前に「managed.department」フォームにストリップ化されてしまいました。今回の修正で、エンティティーのタグがレポートエディターにより正しく保存できるようになりました。

BZ#1234465

以前のリリースでは、自動化により、使用されている Windows の改行がエクスポートされました。これは、「textarea」のフォーム要素により、改行文字のデータに、\r\n 文字が追加されるため発生していました。

今回のリリースでは、シリアル化されたフォームデータの「%0D%0A」を「%0A」に置き換えるように「miqSerializeForm」JS メソッドが変更され、この問題が修正され、エクスポートが正しく行われるようになりました。

BZ#1234588

以前のリリースでは、IE ブラウザーを使用して、最適化からボトルネックを参照する際に、未定義のメソッドエラーが発生していました。これは、ボトルネックページのダブルレンダリングんの問題が原因で、発生していました。
今回のパッチで、直接的にレンダリングする partial_bottlenecks_tl_detail.html.haml と間接的にレンダリングする_bottlenecks_tabs.html.haml が原因で発生していたダブルレンダリングの問題が修正されました。

BZ#1248039

以前のリリースでは、自動化のインポート/エクスポートの使用時に、別ドメインが利用可能な場合は、空の新規ドメインへインポートすることができませんでした。これは、同じ名前のドメインへインポートするオプションがなかったためです。

今回のパッチで、インポートするドメインと同じ名前の新規ドメインにインポートできるようになり、この問題が解決されました。

BZ#1252976

以前のリリースでは、サービスダイアローグのインポート/エクスポートでは、サービスダイアローグすべてがインポートされず、ダイアローグがインポートされるまでに 2-3 回インポートする必要がありました。

選択およびチェックボックス関連の SlickGrid プラグインが追加されました。SlickGrid は自動切り替え表示を使用して、画面が小さすぎる場合やデータセットが大きすぎる場合には、スクロール時に列を削除/再追加します。これにより、表の中のアイテムがインポートするように選択されていない場合に問題が発生しました。これは、SlickGrid のビルトインのプラグインを使用して、列の選択を処理して、フォームからではなくグリッド自体からデータをシリアル化するように修正され、問題が解決されました。

BZ#1256674

以前のリリースでは、リモートコンソールを使用する場合には、仮想マシンの内側と外側にマウスのカーソルが 2 つ表示され、異なる速度で移動していました。これは、HTML5 コンソールキャンバスでのスタイリングが原因でした。
HTML5 コンソールキャンバスのスタイリングを無効化することで、この問題が解決され、カーソルが同じ速度で一緒に移動するようになりました。

BZ#1263326

以前のリリースでは、ライフサイクルのドロップダウン「選択項目の移行」をクリックすると、誤った設定画面に移動していました。コーラーメソッドがサブリスト画面のフラッシュメッセージをレンダリングしませんでした。

今回のパッチでは、選択した項目において (クローン作成、移行、公開などの) タスクが対応していない場合は (関係を使用して仮想マシンの一覧表示からこれらのタスクを実行しようとした場合)、該当の「ボタン」メソッドがフラッシュメッセージを一部レンダリングするように修正されました。そのため、正しい画面が表示され、この問題は解決されました。

BZ#1278463

データストアのスキャンは、VMware プロバイダーに属するデータストアに対してのみサポートされています。しかし、CloudForms の以前のリリースでは、どのソースのデータストアに対しても Web ユーザーインターフェースのスキャンオプションが表示されていました。そのため、VMware 以外のデータストアに対して SmartState Analysis のスキャンを開始すると、エラーが返されました。

今回のリリースでは、VMware ストレージレコードの SmartState Analysis のみが Web ユーザーインターフェースに表示されるように、コードが追加されたため、SmartState Analysis ボタンは VMware データストアを使用する場合にのみ表示されるようになりました。

BZ#1280278

以前のリリースでは、グループスイッチの一覧でにスクロールバーがありませんでした。そのため、グループが多数あるメンバーは、すべてのグループを表示することができませんでした。
今回のリリースでは、グループスイッチ一覧にスクロールバーが追加され、すべてのグループを表示できるようになりました。