« 「ご意見・ご感想」ページを設置しました! | トップページ | ARCserve Replication 動作要件 »

2010年4月13日 (火)

CA PowerShell 講座 第4話: バッチ1つで操作する

マサオミです。Tech Tuesdayのお時間です。

早いものでCA PowerShell 講座も第4話目。
皆さんのお役に立てているでしょうか?

■ 前回までの記事

CA PowerShell 講座 第1話: CA パワーシェルをインストールしよう

CA PowerShell 講座 第2話: CA パワーシェルを使ってみよう

CA PowerShell 講座 第3話: レプリケーションをバッチで実行!

前回はパスワードファイルやスクリプトファイルを作って
コマンドをバッチで実行する方法についてご紹介しました。

ただ、「そんな面倒なことしないと使えないものなの?」
と思われた方もいらっしゃったんじゃないかと思います。

実際のところ、PowerShellを勉強始めたときは 自分もそう思いました。
ただ調べていくとスクリプトファイルは作らなくても大丈夫なようです。
更にパスワードファイルも何とかならんものか、ということで、
色々調べていたところ、CA パワーシェルに簡単に実行できる方法があったんです。

今回はスクリプトファイルもパスワードファイルも作らないで
コマンドを1つのバッチだけで実行する方法について解説しようと思います。
合わせてなぜ前回xoconやxorunなどのコマンドが利用できなかったかも解説します。

それでは「バッチ1つで操作する」の始まり~。

※ 今回も若干長めです・・・。

① プロファイルを作成する

バッチ1つで操作するには予め「プロファイル」というのを作成しておく必要があります。
プロファイルというのは「事前定義情報」だと思ってください。
コマンドのエイリアスや関数の登録などをさせる効率のよい方法です。 
プロファイルについての解説はオフィシャルページに任せたいと思います。

Windows PowerShell プロファイル

ただ、いちいちファイルを作成する作業は面倒なので
こちらのファイルをダウンロードして使ってください。→ ダウンロード: Profile.ps1 (4.9K)
このファイルはCA パワーシェルのインストールパスにある xo.ps1 というファイルの中身から
「Add-PSSnapin」と「エイリアスを登録するコマンド郡」を抜き出したものです。

そして、このファイルを以下のパスに保存します。

PowerShell 1.0の場合: C:\Windows\system32\windowspowershell\v1.0\
PowerShell 2.0の場合: C:\Windows\SysWOW64\WindowsPowerShell\v1.0\

このProfile.ps1がpowershell.exeと同じパスにあると
Windows Powershellのセッション開始の都度、呼び出されます。
これで前回スクリプトの始めに行った Add-PSSnapin というコマンドは省略できますし、
xocon や xorun などのエイリアスコマンドが利用できるようになります。 

② バッチにまとめる

バッチにするときはCAパワーシェルのコマンドを powershell.exe の引数にします。

ただ、引数と言ってもパスワードファイルが必要な Connect-XO (xocon) はどうしたらよいのか。
パスワードファイルは都度移動してください・・・なんて話になると面倒ですよね。

ここでは Xo-Credential (xocred) というコマンドを使います。
解説は後にするとして、実際にやってみましょう

前回行った操作をそのまま実行してみます。(powershell.exeのパスは省略しています)

C:\>powershell.exe Connect-XO CS (XO-Credential CA\Administrator password) http; Run-Scenario FileServer F 1; Disconnect-XO

接続中 . . .

CS 接続しました。

シナリオ FileServer 開始しています . . .
シナリオ FileServer が正常に実行されました

CS が接続解除されました

C:\>

powershell.exeの引数はPowerShellのコマンドとして認識されます。
複数のコマンドを渡す場合は「 ; (カンマ)」で区切ります。
ここではエイリアスを利用していませんが、xoconやxocred、xorun、xodiscon を
利用しても構いません。①で利用したProfile.ps1が指定パスに保存されていれば
エイリアスも利用できます。

XO-Credential コマンドは前回 $pass や $mycred の引数や
パスワードファイルを利用していた部分を全て処理してくれるコマンドです。
このコマンドには引数に「ユーザ名」と「パスワード」を渡します。

ただ、このコマンドの定義自体は、Profile.ps1の中に書かれているので
①の作業を事前に行っておく必要があります。
(CA パワーシェルの裏技のような扱いになっているようです)

さて、これらの応用として、いくつかサンプルを書いてみましょう。

サンプル1: シナリオの一時停止

C:\> powershell.exe Connect-XO CS (XO-Credential CA\Administrator password) http; Suspend-Scenario FileServer REPLICA; Disconnect-XO

Suspend-Scenario (xosus) コマンドは引数に「シナリオ名」と「レプリカサーバのホスト名」を渡します。

サンプル2: シナリオの再開

C:\> powershell.exe Connect-XO CS (XO-Credential CA\Administrator password) http; Resume-Scenario FileServer REPLICA; Disconnect-XO

Resume-Scenario (xores) コマンドも引数に「シナリオ名」と「レプリカサーバのホスト名」を渡します。

サンプル3: 同期の実行

powershell.exe Connect-XO CS (XO-Credential CA\Administrator password) http; Sync-Scenario FileServer F 1; Disconnect-XO

Sync-Scenario (xosync) コマンドはRun-Scenarioと同じ引数です。

サンプル4: シナリオの停止

C:\> powershell.exe Connect-XO CS (XO-Credential CA\Administrator password) http; Stop-Scenario FileServer; Disconnect-XO

Stop-Scenario (xostop) コマンドは引数に「シナリオ名」を渡します。

サンプル5: ホストメンテナンスの実行

C:\> powershell.exe Connect-XO CS (XO-Credential CA\Administrator password) http; Prepare-Reboot MASTER; Disconnect-XO

Prepare-Reboot (xoreboot) コマンドは引数に「(再起動したいサーバの)ホスト名」を渡します。

基本的にConnect-XOやDisconnect-XOの部分は変わらないので
その後に続くコマンド部分を変更すれば色々操作ができます。

例えばARCserve Backupでプリジョブコマンドとポストジョブコマンドに
シナリオの一時停止、シナリオの再開のバッチをそれぞれ登録すれば
Replicationとの連携がサポートされていないアプリケーションでも
バックアップを取ることもできます。
うまく活用いただければ、運用でも役に立ちます。
是非利用してみてください。

さて、少々回りくどい流れでCAパワーシェルについて説明してきましたが、
次回は総まとめの回とさせていただきます。

|

« 「ご意見・ご感想」ページを設置しました! | トップページ | ARCserve Replication 動作要件 »

技術情報」カテゴリの記事

製品について」カテゴリの記事

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/553787/48062864

この記事へのトラックバック一覧です: CA PowerShell 講座 第4話: バッチ1つで操作する:

« 「ご意見・ご感想」ページを設置しました! | トップページ | ARCserve Replication 動作要件 »