VMWare vSphere 7.0.3环境通过PowerCLI批量修改虚拟机网卡的连接状态及开机连接设置

56 篇文章 0 订阅
9 篇文章 0 订阅

为避免网络IP冲突,虚拟机模板的网卡设置是连接中断、开机连接中断的,在通过PowerCLI批量发布虚拟机后,本文尝试PowerCLI通过PowerCLI批量修改虚拟机网卡的连接状态及开机连接设置。

一、PowerCLI环境搭建

详见前文

VMWare vSphere 7.0.3环境通过PowerCLI批量发布openeuler22.03LTS系统虚拟机

二、 用文本编辑器编写batcon-vms.csv文件

如下示例文件:

Name
GZGL_192.168.122.6_euler
GZGL_192.168.122.7_euler
GZGL_192.168.122.8_euler
GZGL_192.168.122.9_euler
GZGL_192.168.122.10_euler
GZGL_192.168.122.17_euler
GZGL_192.168.122.18_euler
GZGL_192.168.122.19_euler
GZGL_192.168.122.20_euler
GZGL_192.168.122.26_euler
GZGL_192.168.122.27_euler
GZGL_192.168.122.28_euler

三、编写 batcon-vms.ps1文件

#filename:batcon-vms.ps1
##__author__='daigjianbing'

$vcenterip = "your vCenter Ip"
$vcenteruser = "administrator@vsphere.local"
#获取密码,避免明文保存
$vcenterpw  = Read-Host "Please enter your password of the vcenter: $vcenterip  username:  $vcenteruser"

#连接服务器
Write-Host "Connect-VIServer -Protocol https -User $vcenteruser -Password $vcenterpw -Server $vcenterip"
#测试下句前面加#,实作时去掉
Connect-VIServer -Protocol https -User $vcenteruser -Password $vcenterpw -Server $vcenterip

#虚拟机清单文件为脚本同目录下的“batcon-vms.csv”文件
$vms_listfile = ".\batcon-vms.csv"
$vms = import-csv $vms_listfile
foreach ($vm in $vms)
    {
    #读取配置文件中的相关配置
    $vmname = $vm.Name
    
    # 设置网络适配器的期望连接状态,$true表示连接,$false表示断开
    $desiredState = $true
    
    # 设置网络适配器的期望开机连接状态,$true表示开机连接,$false表示开机不连接
    $desiredStartState = $true
    
    # 获取当前虚拟机对象
    $vm = Get-VM -Name $vmname
    
    # 获取当前虚拟机的所有网络适配器
    #Get-NetworkAdapter -VM $vm 
    
    # 获取当前虚拟机的'Network adapter 1'网络适配器对象
    $networkAdapter = Get-NetworkAdapter -VM $vm | Where-Object { $_.Name -eq 'Network adapter 1' }
    Write-Host "The Network adapter 1:$networkAdapter"
    
    # 设置网络适配器的连接状态和开机连接状态
    Set-NetworkAdapter -NetworkAdapter $networkAdapter -Connected:$true -StartConnected:$true -Confirm:$false

    
    # 获取当前虚拟机的所有网络适配器
    Get-NetworkAdapter -VM $vm 
    
    }
#断开vCenter连接
Disconnect-VIServer -Server $vcenterip -Confirm:$false

 四、实际测试

在powershell中执行.\batcon-vms.ps1

PS D:\vmware\批量创建虚拟机脚本> .\batcon-vms.ps1
Please enter your password of the vcenter: 192.168.188.82  username:  administrat
or@vsphere.local: mypasswd
Connect-VIServer -Protocol https -User administrator@vsphere.local -Password mypasswd -Server 192.168.188.82

Name                           Port  User
----                           ----  ----
192.168.188.82                 443   VSPHERE.LOCAL\Administrator

MacAddress       : 00:50:56:ab:6d:13
WakeOnLanEnabled : True
NetworkName      : VLAN_2183
Type             : Vmxnet3
ParentId         : VirtualMachine-vm-27255
Parent           : GZGL_192.168.122.6_euler
Uid              : /VIServer=vsphere.local\administrator@192.168.188.82:443/Vir
                   tualMachine=VirtualMachine-vm-27255/NetworkAdapter=4000/
ConnectionState  : NotConnected, GuestControl, NoStartConnected
ExtensionData    : VMware.Vim.VirtualVmxnet3
Id               : VirtualMachine-vm-27255/4000
Name             : Network adapter 1

The Network adapter 1:Network adapter 1

MacAddress       : 00:50:56:ab:6d:13
WakeOnLanEnabled : True
NetworkName      : VLAN_2183
Type             : Vmxnet3
ParentId         : VirtualMachine-vm-27255
Parent           : GZGL_192.168.122.6_euler
Uid              : /VIServer=vsphere.local\administrator@192.168.188.82:443/Vir
                   tualMachine=VirtualMachine-vm-27255/NetworkAdapter=4000/
ConnectionState  : Connected, GuestControl, StartConnected
ExtensionData    : VMware.Vim.VirtualVmxnet3
Id               : VirtualMachine-vm-27255/4000
Name             : Network adapter 1


MacAddress       : 00:50:56:ab:6d:13
WakeOnLanEnabled : True
NetworkName      : VLAN_2183
Type             : Vmxnet3
ParentId         : VirtualMachine-vm-27255
Parent           : GZGL_192.168.122.6_euler
Uid              : /VIServer=vsphere.local\administrator@192.168.188.82:443/Vir
                   tualMachine=VirtualMachine-vm-27255/NetworkAdapter=4000/
ConnectionState  : Connected, GuestControl, StartConnected
ExtensionData    : VMware.Vim.VirtualVmxnet3
Id               : VirtualMachine-vm-27255/4000
Name             : Network adapter 1
....

可以看到相应虚拟机的网卡连接状态已由“NotConnected, GuestControl, NoStartConnected”设置为“Connected, GuestControl, StartConnected”,即当前连接,开机连接。

登录vCenter进行验证:

 确实OK了。

附:以“Set-NetworkAdapter”指令为例,PowerCLI通过Get-Help获取指令帮助及获取指令样例的方法

PS D:\vmware\批量创建虚拟机脚本> Get-Help Set-NetworkAdapter

名称
    Set-NetworkAdapter

摘要
    This cmdlet modifies the configuration of the virtual network adapter.


语法
    Set-NetworkAdapter [-NetworkAdapter] <NetworkAdapter[]> [-Connected <Boolea
    n>] [-MacAddress <String>] [-NetworkName <String>] [-RunAsync] [-Server <VI
    Server[]>] [-StartConnected <Boolean>] [-Type <VirtualNetworkAdapterType>]
    [-WakeOnLan <Boolean>] [-Confirm] [-WhatIf] [<CommonParameters>]

    Set-NetworkAdapter [-NetworkAdapter] <NetworkAdapter[]> [-Connected <Boolea
    n>] -DistributedSwitch <DistributedSwitch> [-MacAddress <String>] -PortId <
    String> [-RunAsync] [-Server <VIServer[]>] [-StartConnected <Boolean>] [-Ty
    pe <VirtualNetworkAdapterType>] [-WakeOnLan <Boolean>] [-Confirm] [-WhatIf]
     [<CommonParameters>]

    Set-NetworkAdapter [-NetworkAdapter] <NetworkAdapter[]> -Portgroup <Virtual
    PortGroupBase> [-RunAsync] [-Server <VIServer[]>] [-Confirm] [-WhatIf] [<Co
    mmonParameters>]


说明
    This cmdlet modifies the configuration of the virtual network adapter. You
    can change the MAC address and the network name, and to configure the Conne
    cted, StartConnected, and WakeOnLan properties of the adapter.


相关链接
    Online Version: http://developer.vmware.com/docs/powercli/latest/vmware.vim
    automation.core/commands/set-networkadapter
    Get-NetworkAdapter
    New-NetworkAdapter
    Remove-NetworkAdapter

备注
    若要查看示例,请键入: "get-help Set-NetworkAdapter -examples".
    有关详细信息,请键入: "get-help Set-NetworkAdapter -detailed".
    若要获取技术信息,请键入: "get-help Set-NetworkAdapter -full".
    有关在线帮助,请键入: "get-help Set-NetworkAdapter -online"


PS D:\vmware\批量创建虚拟机脚本> get-help Set-NetworkAdapter -examples


名称
    Set-NetworkAdapter

摘要
    This cmdlet modifies the configuration of the virtual network adapter.


    -------------------------- Example 1 --------------------------

    Get-VM VM | Get-NetworkAdapter | Set-NetworkAdapter -MacAddress '00:50:56:a
    1:00:00' -WakeOnLan:$true

    Configures the  Mac address and the WakeOnLan setting of a virtual network
    adapter.
    -------------------------- Example 2 --------------------------

    Get-VM VM | Get-NetworkAdapter | Set-NetworkAdapter -Type EnhancedVmxnet

    Sets the type of the virtual network adapter.
    -------------------------- Example 3 --------------------------

    Get-VM VM | Get-NetworkAdapter | Set-NetworkAdapter -Connected:$true

    Sets the connection state of the virtual network adapter.
    -------------------------- Example 4 --------------------------

    $myNetworkAdapters = Get-VM | Get-NetworkAdapter -Name "Network adapter 1"
    $myVDPortGroup = Get-VDPortgroup -Name MyVDPortGroup
    Set-NetworkAdapter -NetworkAdapter $myNetworkAdapters -Portgroup $myVDPortG
    roup

    Retrieves all network adapters named "Network adapter 1" from all virtual m
    achines and connects them to the specified distributed port group.
    -------------------------- Example 5 --------------------------

    $myNetworkAdapter = Get-VM -Name MyVM | Get-NetworkAdapter -Name "Network a
    dapter 1"
    $myVDSwitch = Get-VDSwitch -Name MyVDSwitch
    Set-NetworkAdapter -NetworkAdapter $myNetworkAdapter -DistributedSwitch $My
    VDSwitch -PortId 100

    Retrieves the network adapter named "Network adapter 1" added to the specif
    ied virtual machine and connects it to the specified port on the specified
    distributed switch.

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代先生.重庆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值