目次


PureApplication System 仮想パターン構築の極意

第 3 回 仮想パターン構築において役立つ手法 (その 2)

仮想パターン構築時、問題対応時に役立つ手法を中心に

Comments

コンテンツシリーズ

このコンテンツは全#シリーズのパート#です: PureApplication System 仮想パターン構築の極意

このシリーズの続きに乞うご期待。

このコンテンツはシリーズの一部分です:PureApplication System 仮想パターン構築の極意

このシリーズの続きに乞うご期待。

VAP 構築において役立つ手法

ここでご紹介する VAP 構築において役立つ手法は以下のとおりです。

  1. VAP VM ログイン方法: デプロイ時に SSH 鍵設定をする場合

    デプロイされた VAP VM で作業するために、ログインする方法です。 デプロイ時に SSH 鍵を設定することにより、ログインできるようになります。

  2. VAP VM ログイン方法: デプロイ時に SSH 鍵設定をしなかった場合

    1.において、デプロイ時に SSH 鍵の設定を行わなかった場合に、後から SSH 鍵を設定しログインする方法です。

  3. VAP VM ログイン後のユーザー変更

    VAP VM には、virtuser のみがログインを許可されています。ここでは、ログイン後、virtuser から他のユーザーに変更する方法を紹介します。

  4. VAP VM と SCP でファイルを送受信する方法

    VAP VM に、ファイルを送信、あるいは VAP VM 上のファイルを受信する方法です。アプリケーション・データ・ファイルを送信したい、あるいは、アプリケーション・ログ・ファイルを取得したい、というときに役立つ手法です。

1. VAP VM ログイン方法: デプロイ時に SSH 鍵設定をする場合

VAP の VM では、通常のユーザー名/パスワードによるログインが許可されていません。そのため SSH 鍵を利用したログインを行う必要があります。

1-1. ワークロード・コンソールから、「パターン」→「仮想アプリケーション」を選択し、VAP のデプロイを行います。このとき「拡張」にチェックを入れ、生成ボタンを押して SSH 公開鍵を生成します。(すでに生成済みの SSH 鍵がある場合は、生成ボタンを押さずに公開鍵を SSH 鍵欄にコピー&ペーストします)

1-2. 生成された SSH 公開鍵のテキストはコピー&ペーストして保管し、秘密鍵はリンクをクリックして保管しておきます。

1-3. OK ボタンをクリックし、デプロイを開始し、デプロイ完了を待ちます。

1-4. SSH 対応ターミナル (Tera Term など) を使用してログインする場合、ログイン時のパラメーター指定で、下記のように設定します。

ユーザー名: virtuser
RSA/DSA 鍵: 1-2 で保管した SSH 秘密鍵 (id_rsa_db)

1-5. Linux、Cygwin、MAC のターミナルなどを利用してログインする場合、次のコマンドでログインします。

ssh -i id_rsa_db -l virtuser xx.xx.xx.xx (VAP VM のアドレス)

このとき、以下のメッセージが表示され、パスワード入力がもとめられる場合があります。

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0755 for 'id_rsa_db' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: id_rsa_db
virtuser@ xx.xx.xx.xx's password:

これは、SSH 鍵のパーミッションが弱すぎるために起こっているので、以下のように所有者の読み取り権限のみに設定すれば、パスワードなしでログインすることができるようになります。

chmod 400 id_rsa_db

2. VAP VM ログイン方法: デプロイ時に SSH 鍵設定をしなかった場合

VAP のデプロイ時に SSH 鍵を設定し忘れた場合でも、デプロイ後に SSH 鍵を登録することが可能です。ただし、1. と同様の手順で、ペアとなる SSH 鍵を別途生成し保持していることが必要です。

2-1. ワークロード・コンソールから、「インスタンス」→「仮想アプリケーション」を選択し、対象となるインスタンスを選択し、右上の管理ボタンをクリックします。(セキュリティー例外画面が出る場合は例外を承認します)

2-2. 仮想マシン・モニターで仮想マシンを選択し、「操作」→「SSH」 を選択します。右フレームに「VM SSH 公開鍵の追加または更新」が表示されます。

2-3. VM SSH 公開鍵の追加または更新 を開き、公開鍵欄に、保持していた公開鍵 (id_rsa_db_pub.txt) をコピー&ペーストし、実行依頼ボタンを押します。

2-4. 下フレームの操作実行結果で“仮想マシン SSH 公開鍵の追加または更新”が完了するのを待ちます。

2-5. 1-4. 1-5. と同様に、SSH ターミナルを利用して、ログインを行います。

3. VAP VM ログイン後のユーザー変更

VAP の VM へのログインは、virtuser のみが許可されています。デバッグなどの目的で、ログイン後、root や DB2 インスタンス・オーナーで作業したい場合があります。以下の方法により、ユーザーの切り替えが可能です。

3-1. 1. や 2. の手法を利用して VAP VM に SSH 秘密鍵を使って、virtuser でログインします。

3-2. 以下のコマンドでユーザーを切り替えます。

  • [root に切り替える場合]

    sudo su -
  • [db2inst1 に切り替える場合]

    sudo su - db2inst1

4. VAP VM と SCP でファイルを送受信する方法

アプリケーション・データの送信やアプリケーション・ログの取得の目的で、VAP VM とファイルを送受信したい場合があります。VAP VM とのファイル送受信は SCP で行いますが、1. と同様に SSH 鍵を使用する必要があります。

4-1. 1-5. と同様に SSH 秘密鍵 (id_rsa_db) のパーミッションを所有者の読み取り権限のみに設定します。

chmod 400 id_rsa_db

4-2. VAP VM からファイル (test.txt) を受信する場合は、以下のコマンドを実行します。

scp -i id_rsa_db virtuser@xx.xx.xx.xx:/home/virtuser/test.txt .

4-3. VAP VM へファイル (test.txt) を送信する場合は、以下のコマンドを実行します。

scp -i id_rsa_db ./test.txt virtuser@xx.xx.xx.xx:/home/virtuser/

VSP 構築において役立つ手法

ここでご紹介する VSP 構築において役立つ手法は以下のとおりです。

  1. スクリプト・パッケージの効率的なデバッグ

    VSP のスクリプト・パッケージをデバッグする際に、スクリプト・パッケージの変更を再度デプロイせずにインスタンスに反映させる方法です。デバッグ・サイクルの効率化に役立ちます。

  2. virtuser で構成された WAS を root で起動する方法

    PureApplication System 同梱の WAS の HVE (Hypervisor Edition) は、virtuser で起動するように導入・構成されています。これを、root で起動するように構成しなおす方法です。

1. スクリプト・パッケージの効率的なデバッグ

VSP ではスクリプト・パッケージの内容に変更が発生した場合、その変更を反映させるためには、通常は再度デプロイをしなおすことになります。ただし、スクリプト・パッケージのデバッグの段階で修正を行う度にデプロイをしなおし、数分~数十分かかるインスタンス再作成を行って動作確認をするというのは非常に非効率な方法です。デプロイを一度行えば、その後はスクリプトの変更だけを反映して、(再度デプロイせずに) 動作確認する方法があるので、デバッグの段階ではこの方法を利用することをお勧めします。

1-1. ワークロード・コンソールで、「カタログ」→「スクリプト・パッケージ」を選択します。

1-2. 対象のスクリプト・パッケージを選択した状態で、右フレームの「実行」オプションのプルダウン・メニューを選択し、デフォルトの「仮想システムの作成時」を「開始時」に変更します。

1-3. まだ仮想システムがデプロイされていない場合は、デプロイを実行します。デプロイ済みの場合は、そのままそのインスタンスを利用できます。

1-4. ワークロード・コンソールで、「インスタンス」→「仮想システム」から、該当のインスタンスを選択した状態にし、右フレームの「仮想マシン」セクションを展開すると、スクリプト・パッケージの一覧が表示されます。

1-5. デバッグしたいスクリプトの直下に、「すぐに実行」リンクが表示されているのでクリックします。

1-6. 「プロダクト管理者のユーザー名およびパスワード 」を入力します。ここでは、スクリプト・パッケージの実行ユーザーとして root とそのパスワードを入力します。

(WAS のスクリプト・パッケージで、「実行可能」欄に wsadmin.sh を直接指定して呼び出している場合は、virtuser とそのパスワードを入力する必要があります)

1-7. 上記手順でデバッグが完了したら、必ず、スクリプト・パッケージの「実行」オプションを「開始時」から「仮想システムの作成時」に戻してください。

(注意) スクリプト・パッケージを再実行する場合、そのスクリプトですでに作成した DB、リソース、アプリケーションなどを一旦削除してから実行する必要があります。たとえば、DB2 のスクリプトを再実行する場合は、すでに作成されているデータベース環境やアプリケーション用のユーザー等を手動で削除してから再度スクリプトを実行します。(例) db2 drop database xxxxxx

2. virtuser で構成された WAS を root で起動する方法

PureApplication System に同梱されている WAS HVE (Hypervisor Edition) では、WAS は、virtuser で導入されており、virtuser で起動するように構成されています。アプリケーションによっては、WAS 起動ユーザーからのファイル・アクセスなどがあり、root 権限で行う必要がでてくる場合があります。ここでは、そのようなアプリケーションに対応するために、VSP の WAS を root で起動するように構成変更する方法を説明します。

スクリプト・パッケージ内で、以下のような記述をします。

1	echo "***** virtuserでWASを停止 *****"
2	su virtuser -c "${WAS_PROFILE_ROOT}/bin/stopServer.sh server1"
3	echo "***** runAsUserをvirtuserからrootに変更 *****"
4	WAS_SERVER_CONF="${WAS_PROFILE_ROOT}/config/cells/$CELL_NAME
/nodes/$NODE_NAME/servers/server1/server.xml"
5	sed -i -e "s/runAsUser=\"virtuser\"/runAsUser=\"root\"/g" 
${WAS_SERVER_CONF}
6	echo "***** プロファイル・ディレクトリーのオーナーをrootに変更 *****"
7	chown -R root ${WAS_PROFILE_ROOT}
8	chgrp -R root ${WAS_PROFILE_ROOT}
9	chmod -R 755 ${WAS_PROFILE_ROOT}
10	echo "***** rootでWASを再起動する *****"
11	${WAS_PROFILE_ROOT}/bin/startServer.sh server1

2 行目: 先ず、virtuser で起動している WAS を停止します。

4~5 行目: virtuser に設定されている runAsUser を root に変更します。ここでは、その一例として、server.xml の該当箇所を sed で編集する方法を示しました。

7~9 行目: プロファイル・ディレクトリーのオーナーとパーミッションを変更します。

11 行目: root で WAS を起動します。

その他の役立つ手法

ここでご紹介する役立つ手法は以下のとおりです。

  • アクティブ状態のままの IP アドレスのリセット

    不具合によりインスタンス削除後もアクティブ状態のまま解放されなかった IP アドレスをリセットする方法です。

アクティブ状態のままの IP アドレスのリセット

インスタンスを削除した場合、それを構成する VM が削除され、その VM に割り振られていた IP アドレスは解放されてコンソール上では非アクティブ状態となります。ところが、VM 削除中になんらかの不具合が生じた場合、この解放が正しく行われず、インスタンスは削除されているのに、IP アドレスは解放されずにアクティブ状態のままとなる場合があります。ここでは、そのような状態になったときに、IP アドレスを解放する方法を紹介します。

  1. コマンド行ツール (CLI) を管理ユーザーで起動します。

    pure –h PureAS_ホスト名 –u 管理ユーザー名 –p パスワード
  2. IP グループを取得します。

    ipgs = deployer.ipgroups
  3. IP グループに属する IP アドレスの情報を表示します。(IP グループが複数ある場合は、index が 0 から順番に振られます)

    ipgs[0].ips

    実行結果:

    [
     {
      "created": 2012/09/27 16:04:30,
      "currentmessage": None,
      "currentmessage_text": None,
      "currentstatus": "RM01016",
      "currentstatus_text": "アクティブ",
      "id": 1,
      "ipaddress": "172.22.128.40",
      "ipgroup": (ネストされたオブジェクト),
      "updated": 2012/09/28 14:00:03,
      "userhostname": None
      },
                :
    ]
  4. リリースしたい IP アドレスを特定します。(ここでは、16 番目 (index:15) の IP アドレスとします)

    ipgs[0].ips[15]

    実行結果:

    {
     "created": 2012/09/27 16:04:31,
     "currentmessage": None,
     "currentmessage_text": None,
     "currentstatus": "RM01016",
     "currentstatus_text": "アクティブ",
     "id": 16,
     "ipaddress": "172.22.128.55",
     "ipgroup": (ネストされたオブジェクト),
     "updated": 2012/10/09 11:21:24,
     "userhostname": None
    }

    Current Status が”アクティブ”となっていることが確認できます。

  5. IP アドレスをリセットします。

    ipgs[0].ips[15].reset()
  6. IP アドレスが解放されたことを確認します。

    ipgs[0].ips[15]

    実行結果:

    {
      "created": 2012/09/27 16:04:31,
      "currentmessage": None,
      "currentmessage_text": None,
      "currentstatus": "RM01017",
      "currentstatus_text": "非アクティブ",
      "id": 16,
      "ipaddress": "172.22.128.55",
      "ipgroup": (ネストされたオブジェクト),
      "updated": 2012/10/09 12:17:37,
      "userhostname": None
    }

    Current Status が“非アクティブ”に変わり、IP アドレスが解放されたことを確認できます。

おわりに

今回は、PureApplication System において仮想パターン構築をする際、なにか問題が生じたときの対応をする上で役立つ手法を中心にご説明しました。

当記事で、ご紹介したノウハウやベスト・プラクティスを VAP/VSP 構築の際に利用いただき、より効率的なパターン構築に役立てていただけると幸いです。


ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Cloud computing, Information Management, WebSphere
ArticleID=839800
ArticleTitle=PureApplication System 仮想パターン構築の極意: 第 3 回 仮想パターン構築において役立つ手法 (その 2)
publish-date=11292012