NETWORK ENGINEER BLOG

Tips and Reviews for Engineers

Windows PowerShell で BIG-IP LTM を制御

F5の iControl を使って Windows PowerShell と BIG-IP を連携させることが可能です。
詳細はマイクロソフトの PowerShell と iControl の連携をご参照ください。

検証環境
  • BIGIP-10.1.0.3341.1084
  • Windows Server 2008R2 Datacenter
  • VMware Workstation 9.0.1 build-894247
iControlSnapIn のダウンロード

Installer をDevCentralからダウンロードし Windows PowerShell を実行するサーバーへインストールします。

実行ポリシーの変更

iControlSnapIn をインストール完了後、PowerShell スクリプトの実行ポリシーを変更します。

PS C:\Users\Administrator> Set-ExecutionPolicy RemoteSigned

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリ
のヘルプ トピックで説明されているセキュリティ上の危険にさらされる可能性があ
[Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"): y

Set-ExecutionPolicy コマンドレットを使用すると、Windows PowerShell スクリプトがあるときに、コンピュータで実行できるスクリプトを決定できます。Windows PowerShell には 4 つの異なる実行ポリシーがあります。
特定のポリシーを割り当てるには、Set-ExecutionPolicy に適切なポリシー名を続けます。
出典:Set-ExecutionPolicy コマンドレットの使用

  • Restricted
    • 実行できるスクリプトはありません。Windows PowerShell は対話型モードでのみ使用できます。
  • AllSigned
    • 信頼できる発行元が署名したスクリプトのみを実行できます。
  • RemoteSigned
    • ダウンロードしたスクリプトは信頼できる発行元が署名した場合にのみ実行できます。
  • Unrestricted
    • 制限なし。すべての Windows PowerShell スクリプトを実行できます。
SnapIn のインストール

setupSnapIn.ps1 を実行します。

PS C:\Program Files (x86)\F5 Networks\iControlSnapIn> .\setupSnapIn.ps1

SnapIn をインストール後、SnapIn インスタンスを生成します。

PS C:\Program Files (x86)\F5 Networks\iControlSnapIn> Add-PSSnapin -Name iControlSnapin

SnapIn のロード完了後、iControl を呼び出す事が可能です。CmdLets の一覧は下記コマンドで確認します。

PS C:\Program Files (x86)\F5 Networks\iControlSnapIn> Get-F5.iControlCommands
BIG-IP の制御

BIG-IP へ iControl コネクションを確立します。

PS C:\Program Files (x86)\F5 Networks\iControlSnapIn> Initialize-F5.iControl -HostName 10.10.10.10 -Username admin -Password admin

コネクション確立後、BIG-IP の設定及び確認を PowerShell 経由で行えます。

Virtual Server の状態を確認します。

PS C:\Program Files (x86)\F5 Networks\iControlSnapIn> Get-F5.LTMVirtualServer

Name                                           Availability                       Enabled Status
----                                           ------------                       ------- ------
vs_http                           AVAILABILITY_STATUS_GREEN        ENABLED_STATUS_ENABLED The virtual server is avai...

Pool の状態を確認します。

PS C:\Program Files (x86)\F5 Networks\iControlSnapIn> Get-F5.LTMPool

MemberCount  : 2
Name         : http_pool
Availability : AVAILABILITY_STATUS_GREEN
Enabled      : ENABLED_STATUS_ENABLED
Status       : The pool is available

Pool に所属するメンバーの状態を確認します。

PS C:\Program Files (x86)\F5 Networks\iControlSnapIn> Get-F5.LTMPoolMember http_pool

Pool         : http_pool
Address      : 192.168.1.101
Port         : 80
Name         : 192.168.1.101:80
Availability : AVAILABILITY_STATUS_GREEN
Enabled      : ENABLED_STATUS_ENABLED
Status       : Pool member is available

Pool         : http_pool
Address      : 192.168.1.102
Port         : 80
Name         : 192.168.1.102:80
Availability : AVAILABILITY_STATUS_GREEN
Enabled      : ENABLED_STATUS_ENABLED
Status       : Pool member is available

Pool に所属するメンバーを無効化します。

PS C:\Program Files (x86)\F5 Networks\iControlSnapIn> Disable-F5.LTMPoolMember -Pool http_pool -Member 192.168.1.101:80

Pool         : http_pool
Address      : 192.168.1.101
Port         : 80
Name         : 192.168.1.101:80
Availability : AVAILABILITY_STATUS_NONE
Enabled      : ENABLED_STATUS_DISABLED
Status       :

Pool に所属するメンバーを有効化します。

PS C:\Program Files (x86)\F5 Networks\iControlSnapIn> Enable-F5.LTMPoolMember -Pool http_pool -Member 192.168.1.101:80

Pool         : http_pool
Address      : 192.168.1.101
Port         : 80
Name         : 192.168.1.101:80
Availability : AVAILABILITY_STATUS_NONE
Enabled      : ENABLED_STATUS_ENABLED
Status       :
タスクスケジューラによる自動化

こちらからダウンロード可能な下記のスクリプトと、タスクスケジューラを使用して、Pool に所属するメンバーの有効化/無効化を自動化する事が可能です。

タスクスケジューラを起動し[基本タスクの作成]をクリックします。
f:id:FriendsNow:20130123234337p:plain

タスク名を設定し[次へ]をクリックします。
f:id:FriendsNow:20130123234338p:plain

タスクトリガを指定し[次へ]をクリックします。
f:id:FriendsNow:20130123234344p:plain

開始時間、間隔を指定し[次へ]をクリックします。
f:id:FriendsNow:20130123234355p:plain

プログラムの開始を指定し[次へ]をクリックします。
f:id:FriendsNow:20130123234401p:plain

プログラム/スクリプトと引数を下記のとおり指定し[次へ]をクリックします。
f:id:FriendsNow:20130123234408p:plain

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

-file "C:\Program Files (x86)\F5 Networks\iControlSnapIn\LocalLBPool.ps1" 192.168.1.1 admin password http_pool 192.168.1.100:80 enable

内容を確認し[完了]をクリックします。
f:id:FriendsNow:20130123234415p:plain

なお、ログオフしている状況でタスクを実行する際は、下記のオプションを有効にする必要があります。
f:id:FriendsNow:20130124182123p:plain

  • ユーザーがログオンしているかどうかにかかわらず実行する
  • 最上位の特権で実行する。

ダウンロードしたスクリプトの内容は下記のとおりです。