Hyper-V の管理 OS 側から仮想マシンのネットワーク アダプターに静的な IP アドレスを設定するというステキな PowerShell スクリプトを発見。
Windows IT Pro > Modify IP Configuration of VM from Hyper-V Host (by John Savill)
[URL] http://windowsitpro.com/hyper-v/modify-ip-configuration-vm-hyper-v-host
追記)
MSDN Blogs Taylor Brown's Blog > Setting Guest IP Address From The Host
[URL] http://blogs.msdn.com/b/taylorb/archive/2014/11/03/setting-guest-ip-addresses-from-the-host.aspx
Windows 10 のクライアント Hyper-V でも動きました。次の画面は、192.168.10.24 (DHCP) を 192.168.10.89 (静的) 割り当てに変更したところ。
とても私には書けそうもないスクリプトに感謝、感激。でも、仮想マシンに 2 つのネットワーク アダプターがあると、エラーになっちゃうかも。
このスクリプトは、Windows Server 2012 (および、たぶん Windows 8)以降の Hyper-V に追加された Static IP Injection の機能を利用したもので、Windows ゲストと一部の Linux ゲストで利用可能。ちなみに、Hyper-V レプリカのフェールオーバーの TCP/IPによる IP の書き換えは、Static IP Injection の機能を利用したもの。
Windows IT Pro の記事のスクリプトをコピペして、ちょっと手を加えればもうちょっと汎用的に。
仮想マシンに 2 つのネットワーク アダプターがあると、エラーになっちゃうかも(再)。
Ubuntu 14.04 TLS を実行する仮想マシンでもちゃんと動きました。
Ubuntu の場合は、Network Manager が動いていると Static IP Injection が機能しないので、Network Manager がインストールされている場合は(デスクトップ環境ありの場合)、次のコマンドラインを実行して削除しておきます。
sudo apt-get remove network-manager
また、KVP データ交換サービスのサポートを追加する必要もあります。
sudo apt-get install hv-kvp-daemon-init (Ubuntu 14.10 の場合は sudo apt-get install llinux-cloud-tools-common linux-cloud-tools-generic linux-cloud-tools-virtual)
Linux の Static IP Injection 対応状況については、Linux and FreeBSD Virtual Machines on Hyper-V (→ https://technet.microsoft.com/en-us/library/dn531030.aspx) をご覧あれ。
・・・
ちなみに、Azure 仮想マシンの場合は、 こんな感じで内部 IP を変更できます。Hyper-V でもこんな感じで簡単にできるといいのに。
Add-AzureAccount
$vm = Get-AzureVM -ServiceName <クラウドサービス名> -name <仮想マシン名>
$StaticIP = "10.0.0.101"
Set-AzureStaticVnetIP -IPAddress $StaticIP -VM $vm | Update-AzureVM
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。