Quantcast
Channel: VMware Communities : Blog List - All Communities
Viewing all articles
Browse latest Browse all 3805

PowerCLIでESXiファイアウォールを設定変更する。

$
0
0

ESXiのファイアウォールの許可設定をPoserCLIで変更してみます。

 

ためした環境は、下記です。

  • ESXi 5.0
  • vCenter 5.0
  • PowerCLI 5.1 R2


PowerCLIでは、ESXiのファイアウォールの有効化/無効化であれば

Set-VMHostFirewallException で設定できるのですが、

細かい許可NWアドレスやIPアドレスの指定はできません。

 

そこで、スクリプトを作ってみました。

 

set_esxi_fw.ps1

# 設定変更するルールセット名を指定
$ruleset_name = $args[0]

 

# リストからESXiの一覧を読み込む
$hvs   = Get-Content $args[1]

 

# CSVから通信許可するネットワーク(IP)を読み込む
$rules = Import-Csv $args[2]

 

# 通信許可するネットワーク(IP)数を指定している。
$rule_num = $rules.Count

 

# FW設定の準備
$spec = New-Object VMware.Vim.HostFirewallRulesetRulesetSpec
$spec.allowedHosts = New-Object VMware.Vim.HostFirewallRulesetIpList
$spec.allowedHosts.ipNetwork = New-Object VMware.Vim.HostFirewallRulesetIpNetwork[]($rule_num)
$cnt = 0
$rules | sort | % {
    $spec.allowedHosts.ipNetwork[$cnt] = New-Object VMware.Vim.HostFirewallRulesetIpNetwork
    $spec.allowedHosts.ipNetwork[$cnt].network = $_.network
    $spec.allowedHosts.ipNetwork[$cnt].prefixLength = $_.prefixLength
    $cnt = $cnt + 1
}
$spec.allowedHosts.allIp = $false

 

# ESXiにFW設定
$hvs | sort | % {
    $fw = Get-View (Get-VMHost $_ | Get-View).ConfigManager.FirewallSystem
    $fw.UpdateRuleset($ruleset_name, $spec)
}


別ファイルとして、設定対象のESXi のリスト(hvs.txt)と、

FWルールセットに対して許可するNWのリスト(rules.txt)を用意しておきます。

 

ESXiのリスト(hvs.txt)の例。

sc-esxi501
sc-esxi502

許可するNWのリスト(rules.txt)の例。ヘッダとして network,prefixLength を書いておきます。

NWアドレスと、サブネットマスクの長さをCSV(「,」で区切って)で記載します。

network,prefixLength
192.168.0.0,24
192.168.4.0,24
172.16.50.0,24

 

PowerCLIでvCenterに接続して、この3つのファイルで下記のように実行します。

 

実行方法:

.\set_esxi_fw.ps1 <FWルールセットのKey> <ESXiのリストファイル> <許可NWのリストファイル>

ここで指定できる「FWルールセットのKey」は、

PowerCLI> .\set_esxi_fw.ps1 "sshServer" "hvs.txt" "rules.txt"

 

うまくいくと、PowerCLIのプロンプトには特に標準出力ありませんが、

vSphere Clientのタスクには設定変更されたことが表示されます。

esx-fw1.png

 

ファイアウォールのプロパティでも、

「許可されたIPアドレス」にrules.txtで記載した設定が反映されていることが確認できます。

esx-fw2.png

 

以上、ESXiファイアウォールの設定をPowerCLIで変更してみる話でした。


Viewing all articles
Browse latest Browse all 3805

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>