ibm.infosvr
ansible-role-infosvr
IBM InfoSphere Information Server環境の自動展開のためのAnsibleロールで、バージョン11.5と11.7の両方を含みます。
- リポジトリ(データベース)層
- ドメイン(サービス)層
- エンジン層
- 統一ガバナンス(「エンタープライズサーチ」)層(v11.7のみ)
- パッチ / フィックスパック
さらに、以下のエンタープライズエディションのモジュールも含まれ、以下の変数で無効化できます(例:使用許可がない場合や、インストール / 設定したくない場合)。
- 情報ガバナンスカタログ
- 情報アナライザー
- DataStageオペレーションコンソール
- DataClick
- イベント管理(データ品質例外コンソールとの統合)
- データ品質例外コンソール
- QualityStage
- 情報サービスディレクター
- FastTrack
- 情報ガバナンスダッシュボード(事前にCognos環境が必要)
- DataStage内のOptimマスキング
- v11.7でのみ提供される追加機能:
- 新しい情報ガバナンスカタログ(UI)
- ガバンスモニターダッシュボード
- エンタープライズサーチ(ナレッジグラフを含む)
- DataStageフローデザイナー
- 機械学習用の用語分類(v11.7+)
現在、デプロイメントはDB2をバックエンドとしてサポートしており、バンドルされたDB2のインストールと設定、または既存のDB2の設定ができます。完全なWebSphereアプリケーションサーバーネットワークデプロイ構成またはWebSphereリバティプロファイル構成がインストールされます(詳しくは下記の変数を参照)。現在、このロールは既存のWebSphereインストールを設定することはできません。
Ansibleを初めて使う方へ。この簡単な紹介が役立つかもしれません。
要件
- Ansible v2.7
- すべてのサーバーへの「root」権限のあるネットワークアクセス
- Windowsクライアントマシンへの管理者アクセス
- AnsibleによるWinRMアクセスが設定されたWindowsクライアントマシン(詳細は http://docs.ansible.com/ansible/latest/intro_windows.html を参照)
ロール変数
インラインドキュメントについては defaults/main.yml
を参照し、必要な主要変数の例については以下をご覧ください。デフォルトファイルには、バニラなv11.7インストールに含まれるデフォルト設定がすでにあるため、デフォルトを使用したくない変数(例:ユーザーのパスワード)だけを上書きすれば大丈夫です。
上書きが必要な最小限の変数は以下の通りです:
ibm_infosvr_media_dir
: インストールバイナリが既にダウンロードされているAnsibleホスト上の場所(例:Passport Advantageから)ibm_infosvr_media_bin
辞書: インストールに使用するバイナリの名前 (デフォルトでは最新のv11.7ファイルがここにあります。v11.5をインストールする場合は、v11.5ファイル名に置き換えが必要です)ibm_infosvr_ug_storage
: kubernetesに使用する統一ガバナンス層の追加の生ストレージデバイス(未マウントでLVMグループに属さない等)ibm_infosvr_features
辞書: 使用したい機能(True)と使用したくない機能(False)を定義
最後に、さまざまな資格情報変数は、安全な環境を作成するために上書きする必要があります。 _upwd_
で検索すると、defaults/main.yml
内のすべてのパスワード変数が表示され、上書きが求められます。(他の変数への参照をAnsibleボールトを通じてさらに安全に置き換えることもできます。)
依存関係
情報アナライザーの設定では、IBM.infosvr-metadata-asset-manager
ロールが間接的に使用されており、import_role
ディレクティブを利用しています。このロールは、循環依存を避けるために明示的に依存関係としてリストされていませんが、情報アナライザーの設定を行う予定がある場合はインストールするべきです。
例のプレイブック
次の例のプレイブックは、defaults/main.yml
のデフォルトパラメータを使用してIBM InfoSphere Information Serverの完全なインストールと構成を行います(および例えばgroup_vars/all.yml
に設定した上書き)。このロールは複数の層にわたるインストールを行うため、異なる層の早期ステップで失敗した場合に部分的なインストール/設定を避けるために、any_errors_fatal
を使用するべきです。
---
- name: install and configure IBM InfoSphere Information Server
hosts: all
any_errors_fatal: true
roles:
- IBM.infosvr
pre_tasks:
- name: update all OS-level packages
yum:
state: latest
name: '*'
exclude: docker*,kubelet*,kubectl*,kubeadm*
become: yes
when: ('ibm_information_server_clients' not in group_names)
プレタスクは、インストールを開始する前に、すべてのOSレベルのパッケージが最新であることを確認します。
期待されるインベントリ
以下のグループは、さまざまなコンポーネントのインストール場所を区別するためにインベントリ内で期待されるものです。もちろん、単一のサーバに複数のコンポーネントをインストールしたい場合は、同じホスト名を各グループに提供することで実現可能です。以下の例では、リポジトリとドメイン層の両方が「serverA」に配置されており、エンジン層は「serverB」に個別にインストールされ、統一ガバナンス層も独自のシステム「serverC」に配置されています。
[ibm_information_server_repo]
# リポジトリ層(データベース)のインストール先Linuxホスト (DB2)
serverA.somewhere.com
[ibm_information_server_domain]
# ドメイン(サービス)層のインストール先Linuxホスト (WebSphere)
serverA.somewhere.com
[ibm_information_server_engine]
# エンジン層のインストール先Linuxホスト
serverB.somewhere.com
[ibm_information_server_clients]
# クライアントアプリケーションをインストールするWindowsホスト、Windows専用ブローカー / ブリッジ用のメタデータインターチェンジサーバが設定された
client.somewhere.com
[ibm_information_server_ug]
# v11.7+の統一ガバナンス層がインストールされるLinuxホスト (kubernetes)
serverC.somewhere.com
[ibm_information_server_external_db]
# XMETAなどを展開するための既存のデータベースを保持するLinuxホスト -- ホストが指定されていない場合またはこのグループが完全にない場合、ibm_information_server_repoサーバにバンドルされたDB2をインストール
serverD.somewhere.com
[ibm_cognos_report_server]
# 既存のCognos BIインストールが存在するLinuxホスト (情報ガバナンスダッシュボード用)
cognos.somewhere.com
[ibm_bpm]
# 既存のBPMインストールが存在するLinuxホスト (現在は未使用)
bpm.somewhere.com
他のAnsibleインベントリと同様に、サーバに接続可能な十分な詳細を提供する必要があります(詳細は http://docs.ansible.com/ansible/latest/intro_inventory.html#list-of-behavioral-inventory-parameters を参照)。
タグ
パッチのインストール
このロールは、インストールされた環境をパッチやシステムパッケージで最新に保つことも目的としています。パッチを適用するには、vars/patches/[server|client]/<version>/<date>.yml
ファイルに関連する詳細を入力するだけです。例えば、v11.7.1.0のサーバー側の修正はvars/patches/server/11.7.1.0/<date>.yml
に、v11.7.0.2のクライアント側の修正はvars/patches/client/11.7.0.2/<date>.yml
に入れます。<date>
はパッチがリリースされた日付を意味します。一般的に、これらはFix Centralでの主要なパッチの入手可能性に基づいて、GitHub内で常に最新の状態に保たれています。しかし、既存のリストにはない中間修正またはその他の修正を適用したい場合は、以下の手順に従ってください。
- 各パッチは、
ibm_infosvr_patch_definition
という名前の辞書であるべきです。 - 辞書には以下のキーを含める必要があります:
name
: IBM Fix Centralに記載されているパッチ / フィックスパックの名前srcFile
: IBM Fix Centralからダウンロードしたパッチ / フィックスパックファイルの名前pkgFile
:srcFile
内に含まれる.ispkg
ファイルの名前versionId
: パッチ / フィックスパックがインストールされた後にVersion.xml
に追加されるinstallerId
タグtiers
: このパッチを適用すべき層のリスト(可能な値はdomain
とengine
) -- クライアントのパッチについては、これはクライアントであると暗黙に理解されるため、tiers
は不要です。
例えば:
ibm_infosvr_patch_definition:
name: is11700_ServicePack2_ug_services_engine_linux64
srcFile: servicepack_11.7_SP2_linux64_11700.tar.gz
pkgFile: servicepack_11.7_SP2_linux64_11700.ispkg
versionId: servicepack_SP2_IS117_11700
tiers:
- domain
- engine
JDKのアップデートもvars/patches/jdk/[server|client]/<major>/latest.yml
の下に含めることができます。<major>
はメジャーリリースバージョン(11.5
または11.7
)です。この場合も、JDK情報を定義するためにibm_infosvr_jdk_definition
という1つの辞書を使用する必要があります。
11.5
の場合に必要なキー:
name
: IBM Fix Centralに記載されているJDKの名前infosvr_filename
: IBM Fix CentralからダウンロードしたJDKファイルの名前infosvr_extract_path
: JDKファイルを抽出した際に作成されたパスversionInfo
: このJDKのバージョンを特定するバージョン文字列(java -version
から)was_filename
: v6 JDKを含むWebSphereアプリケーションサーバー(WAS)フィックスパックの名前was_offering
: WAS JDK(v6)フィックスパック内の提供名jdk7_filename
: v7 JDKを含むWASフィックスパックの名前jdk7_offering
: WAS JDK(v7)フィックスパック内の提供名was_versionInfo
: JDK(v6)のバージョンを特定するバージョン文字列(java -version
から)jdk7_versionInfo
: JDK(v7)のバージョンを特定するバージョン文字列(java -version
から)
11.7
の場合に必要なキー:
name
: IBM Fix Centralに記載されているJDKの名前infosvr_filename
: IBM Fix CentralからダウンロードしたJDKファイルの名前infosvr_extract_path
: JDKファイルを抽出した際に作成されたパスwas_filename
: JDKを含むWebSphereアプリケーションサーバー(WAS)フィックスパックの名前was_offering
: WAS JDKフィックスパック内の提供名versionInfo
: この(非WAS)JDKのバージョンを特定するバージョン文字列(java -version
から)was_versionInfo
: この(WAS)JDKのバージョンを特定するバージョン文字列(java -version
から)
これらのJDKアップデートはリストではなく、単純な辞書です -- 各アップデートは前のアップデートを上書きするため、適用したいJDKの最新バージョンのリストのみを提供する必要があります。
更新を実行するには、次のようにupdate
タグを使用します:
ansible-playbook [-i hosts] [site.yml] --tags=update
これにより、すでに適用されていないパッチが、リリースされた日付に基づいて順番に適用されます(古いものから順に)。ただし、オペレーティングシステムに対するシステムレベルのパッケージは更新されません。これが望ましい場合は、より広範なプレイブックでそのような更新を処理するようにしてください。
環境操作
環境操作を簡素化するために、いくつかのタグが提供されています。特に、複数のホストにまたがる場合に便利です。
status
: 構成されたさまざまなコンポーネントが動作しているかどうかを確認します(指定されたポートでサービスがリッスンしているか確認)。stop
: 様々なホスト間で適切な順序で各コンポーネントを正常にシャットダウンします。基盤となるホスト自体はシャットダウンしません。start
: 様々なホスト間で適切な順序で各コンポーネントを起動します。restart
:stop
を実行してからすぐにstart
を実行します。
再利用可能なタスク
このロールには、すべてのインストールステップを実行することなく、情報サーバーインストールの特性を利用する必要がある他のロールに含めるための再利用可能なタスクも含まれています。
setup_vars.yml
情報サーバー環境をデプロイするために使用された設定変数は、後からsetup_vars.yml
タスクセットを使用して取得できます。例えば、次のようにプレイブックに含めることで可能です:
---
- name: setup Information Server vars
hosts: all
tasks:
- import_role: name=IBM.infosvr tasks_from=setup_vars.yml
get_certificate.yml
情報サーバー環境のドメイン層のルートSSL証明書は、後からget_certificate.yml
タスクセットを使用して取得できます。例えば、次のようにプレイブックに含めることが可能です:
---
- name: setup Information Server vars
hosts: all
tasks:
- import_role: name=IBM.infosvr tasks_from=setup_vars.yml
- import_role: name=IBM.infosvr tasks_from=get_certificate.yml
このタスクセットは、setup_vars.yml
が既に実行されていることに依存しますので、同じプレイに含めることが価値あるかもしれません(上記の例のように)。ドメイン層のSSL証明書は、プレイブックを実行するコントロールマシンのパスに対して cache/__ibm_infosvr_cert_root.crt
に保存されます。
ライセンス
Apache 2.0
著者情報
クリストファー・グローテ
Automates the deployment and configuration of IBM Information Server
ansible-galaxy install ibm.infosvr