本周一晚新公司部门部分人员聚餐,圆桌九人围坐,80后占其八,皆五年以上IT龄,老大为长者。

席间玩一游戏,找众将之共同点,

一人曰,有白发者喝酒,众将皆举杯,皆尽。
 


 

  • 首先到官方网站下载VMware vSphere PowerCLI的软件包,

      pp1

  • 安装软件到本机,

pp2

  • 运行后提示:”无法加载文件c:\program Files\vmware\infrastructure\vsphere powerCLI\script\initialize-vitoolkitenviroment.ps1,因为在此系统中禁止执行脚本。有关信息,请查阅“get-help about_signing”.

powercli

  • 通过get-executionpolicy查看本地执行策略

powercli1

  • 更改执行策略

powercli2

  • 更改为RemoteSigned执行策略

powercli3

备注:

Restricted 执行策略不允许任何脚本运行。 
AllSigned 和 RemoteSigned 执行策略可防止 Windows PowerShell 运行没有数字签名的脚本。

  • 再次运行VMware vSphere PowerCLI,提示”Welcome“界面,工具正常启动。

powercli4

  • 输入Connect-VIServer ,连接上vCenter服务器

pp33

  • 输入vCenter的登录用户名和密码。

pp5

  • 接下来输入Get-vm,可以看到vCenter下管理的所有虚机得名称,运行状态,CPU的数量,内存大小参数。

pp6

  • 再实现下虚拟机的启动命令,这里选择”WinServer01_1”这台虚拟服务器,输入Get-VM WinServer01_1 | start-vm,5S之后可以从vCenter控制台的任务栏中看出虚拟机正在启动中

 

  • 通过Get-vmguest winserver01_1 | fc 查看服务器参数未能得出结果,

pp9

  • 更换vCenter虚拟机试下这个命令 Get-vmguest vcenter | fc ,从而得到下面一长串虚拟机信息参数。

class VMGuestImpl
{
  OSFullName = Microsoft Windows Server 2003 (64 位)
  IPAddress =
    [
      10.X.X.X.
    ]

  State = ShuttingDown
  Disks =
    [
      class DiskInfoImpl
      {
        Path = C:\
        Capacity = 32201936896
        FreeSpace = 17221709824
      }
    ]

  HostName = vcenter.view.test
  Nics =
    [
      class NicInfoImpl
      {
        Connected = True
        Device =
          class NetworkAdapterImpl
          {
            MacAddress = 00:0c:00:00:00:00

            WakeOnLanEnabled = True
            NetworkName = VM Network
            Type = Vmxnet
            ConnectionState =
              class ConnectInfoImpl
              {
                AllowGuestControl = True
                Connected = True
                StartConnected = True
              }
            Id = VirtualMachine-vm-16/4000
            Name = 网络适配器 1
          }
        IPAddress =
          [
            10.X.X.X          ]

        MacAddress = 00:0c:00:00:00:00

        NetworkName = VM Network
      }
    ]

  ScreenDimensions =
    class Size
    {
      IsEmpty = False
      Width = 800
      Height = 600
    }
  VmId =
    class MoId
    {
      Id = VirtualMachine-vm-16
    }
  VmName = vCenter
}

class VMGuestImpl
{
  OSFullName = Microsoft Windows Server 2003 (64 位)
  IPAddress =
    [
      x.x.x.y   ]

  State = Running
  Disks =
    [
      class DiskInfoImpl
      {
        Path = C:\
        Capacity = 32201936896
        FreeSpace = 15573364736
      }
    ]

  HostName = vcenter.view.test
  Nics =
    [
      class NicInfoImpl
      {
        Connected = True
        Device =
          class NetworkAdapterImpl
          {
            MacAddress = 00:0c:,,,
            WakeOnLanEnabled = True
            NetworkName = VM Network
            Type = Vmxnet
            ConnectionState =
              class ConnectInfoImpl
              {
                AllowGuestControl = True
                Connected = True
                StartConnected = True
              }
            Id = VirtualMachine-vm-121/4000
            Name = 网络适配器 1
          }
        IPAddress =
          [
            x.x.x.y          ]

        MacAddress = 00:0c:…

        NetworkName = VM Network
      }
    ]

  ScreenDimensions =
    class Size
    {
      IsEmpty = False
      Width = 800
      Height = 600
    }
  VmId =
    class MoId
    {
      Id = VirtualMachine-vm-121
    }
  VmName = vCenter
}

  • 新建虚拟机的命令

New-vm -vmhost esxi01.vmanager.cn -name svr01 -template win2008r2 win2008r2_template -datastore datastore1 -oscustomizationspec win2008r2_template

-vmhost:VM生成的目标ESXi主机;
-Name:生成的VM的名字;
-Template:用于生成VM的模板主机;
-Datastore:生成的虚拟机的存放数据存储;
-OSCustomizationspec:定制化部署VM的prep目录;

(网上看到虚拟人的文档,谢啦)

以上都是些比较单一的命令,其功能强大之处体现在批量执行脚本,达到大规模配置的目的,后面会更新批量部署脚本的记录,谢谢。