среда, 19 января 2011 г.

Автоматизация действий с помощью Keepass.

Оказывается Keepass можно использовать не только для хранения паролей, но и для автоматического заполнения форм. А еще и для автоматизации выполнениейрутинных действий. Опубликую ссылку на FAQ.

вторник, 18 января 2011 г.

Изменение Notes для нескольких VM


Задача: Необходимо у списка VM поменять notes.

1. Создаем csv файл следующего содержания:
VMName,Note
VM1,Domain Controller
VM2,Database Server
2. Запускаем:
Import-Csv "D:\*.csv" | % { Set-VM $_.VMName -Description $_.Note -Confirm:$false}

И получаем:

Onyx - создание скриптов от VMware

У Майкрософт есть хорошая штука - PowerShell.
У VMware есть хороший аддон к ней - PowerCLI.
Вооружившись этой парой, можно удобно управлять инфраструктурой - командная строка, скрипты и т.п.

1) По ссылке скачали архив, распаковали, запустили исполняемый файл.
Нажали звездочку, и указали адрес vCenter.


2) Клиентом vSphere подключаемся на ту машину и порт, где запущен Onyx.

3) В окне Onyx нажать пиктограмму начала записи, и в клиенте vSphere выполнить действия, которые мы хотели бы заскриптовать. В окне Onyx появится готовый скрипт для этого!
Левая из обведенных пиктограмм сохранит содержимое окна в файл скрипта PowerShell.
Те скрипты, на которых экспериментировал я, выполнялись и делали нужную работу без дополнительных усилий с моей стороны.
В Onyx я сохранил скрипт под именем ps_start_SQL_VM.ps1.
В PowerCLI я запустил файл с таким именем.

вторник, 11 января 2011 г.

Управление VM с помощью PowerCLI

Наткнулся на статью в KB по управлению VM. Хотя там и написаны основы, но 2 очень важных момента там есть:
  • конфигурация сети виртуальной машины
  • выгрузка свойств виртуальной машины, в том числе VMID
Get-VM vmname | Format-List - информация, о VM

дальше цитата:
Collecting information about the virtual machine
This section discusses the commands that can be used to collect detailed information about the virtual machine. This article provides an overview of the commands they can be customized according to the needs.
Collecting information about virtual machine hardware
To get a list of all the virtual machines in the inventory and their name, power state, number of CPUs, and configured memory, run the cmdlet:

[vSphere PowerCLI] C:\Program Files\VMware\Infrastructure\vSphere PowerCLI> Get-VM

Name PowerState Num CPUs Memory (MB)
---- ---------- -------- -----------
NW PoweredOff 1 512
PowerCLI PoweredOn 1 1024

Note: This command provides information about the version, virtual hardware attached(virtual disk, network, CD-ROM), datastore, host, HA restart and isolation properties:
[vSphere PowerCLI] C:\Program Files\VMware\Infrastructure\vSphere PowerCLI> Get-VM windows-dc | Format-List *
Collecting information about the virtual machine guest operating system
vSphere PowerCLI provides cmdlets to retrieve the details about the virtual machine guest operating system. These cmdlets are independent of the guest operating system installed in the virtual machine.
[vSphere PowerCLI] C:\Program Files\VMware\Infrastructure\vSphere PowerCLI> Get-VMGuest -VM windows-dc | Format-List *

OSFullName : Microsoft Windows Server 2003, Enterprise Edition (64-bit)
IPAddress : {10.112.102.7}
State : Running
HostName : windows-dc.vcd.com
Nics : {}
ScreenDimensions : {Width=1024, Height=768}
Note: When retrieving the details about the guest operating system, you are prompted for the user name and password for the ESX/ESXi host and guest operating system. You can provide the authentication details in the command by using the -HostUser root -HostPassword pass1 -GuestUser administrator -GuestPassword vmware123 parameters.
Using PowerCLI you can also query, start, or stop a service within the guest operating system. You can use Start-Service, Stop-Service, and Restart-Service cmdlets to modify the status of the service. If no virtual machine is specified in the command the change is be made on all the Windows virtual machines in the inventory.
Note: To use this command ensure that the latest version of VMware Tools are installed on the Virtual Machine and this cmdlet is applicable only for Windows Guest.
[vSphere PowerCLI] C:\Program Files\VMware\Infrastructure\vSphere PowerCLI> Get-VM windows-dc | Invoke-VMScript "Get-Service app*"
Status Name DisplayName
------ --- -----------
Stopped AppMgmt Application Management
vSphere PowerCLI also provides cmdlets to provide the Network Configuration information from within the guest operating system:
[vSphere PowerCLI] C:\Program Files\VMware\Infrastructure\vSphere PowerCLI> Get-VMGuestNetworkInterface -VM windows-dc -HostUser root -HostPassword vmware123 -GuestUser administrator -GuestPassword vmware123

VMId : VirtualMachine-vm-33
VM : windows-dc
NetworkAdapter : Network adapter 1
SubnetMask : 255.255.252.0
NicId : VirtualMachine-vm-33/4000
Name : Local Area Connection
IPPolicy : Static
Ip : 10.112.102.7
Dns : {127.0.0.1}
DefaultGateway : 10.112.103.254
Description : Intel(R) PRO/1000 MT Network Connection
Mac : 00-0C-29-30-F3-11
RouteInterfaceId : 0x10003
Uid :
/VIServer=@10.112.101.9:443/VMGuestNetworkInterface=00-0C-29
-30-F3-11/
DnsPolicy : Static
WinsPolicy : Static
Wins :
To retrieve the routing configuration of the specified virtual machine, run the cmdlet:
[vSphere PowerCLI] C:\Program Files\VMware\Infrastructure\vSphere PowerCLI> Get-VMGuestroute -VM windows-dc -HostUser root -HostPassword vmware123 -GuestUser administrator -GuestPassword vmware123

Destination : 0.0.0.0
Gateway : 10.112.103.254
Interface : 10.112.102.7
Netmask : 0.0.0.0
VMId : VirtualMachine-vm-33
VM : windows-dc
Configuring a virtual machine using PowerCLI
This section discusses the cmdlets that you can use to configure/reconfigure the virtual machines.
To create new virtual machines, run the cmdlet:
[vSphere PowerCLI] C:\Program Files\VMware\Infrastructure\vSphere PowerCLI> New-VM -VMHost 10.112.96.17 -Name TestCli -MemoryMB 1024 -DiskMB 8024
Name PowerState Num CPUs Memory (MB)
---- ---------- -------- - ----------
TestCli PoweredOff 1 1024
To migrate a virtual machine using vMotion, run the cmdlet:
[vSphere PowerCLI] C:\Program Files\VMware\Infrastructure\vSphere PowerCLI> Get-VMHost 10.112.96.18 | Get-VM "windows-cli" | Move-VM -Destination 10.112.96.17
Name PowerState Num CPUs Memory (MB)
---- ---------- -------- -----------
windows-cli PoweredOn 1 1024
To migrate a virtual machine using Storage vMotion, run the cmdlet:
[vSphere PowerCLI] C:\Program Files\VMware\Infrastructure\vSphere PowerCLI> Get-VM windows-rhel5 | Move-VM -Datastore vCloud-1
Name PowerState Num CPUs Memory (MB)
---- ---------- -------- -----------
windows-rhel5 PoweredOn 1 3072
All of the virtual machines in the in the inventory can be configured with or without the CD-ROM drive using this command:
Note: To disable CD-ROM, use the $false option. To enable CD-ROM, use the $true option.
[vSphere PowerCLI] C:\Program Files\VMware\Infrastructure\vSphere PowerCLI> Get-VM | Get-CDDrive | Set-CDDrive -Connected:$false
Confirm
Are you sure you want to perform this action?
Performing operation "Setting Connected: False, NoMedia: False." on Target "CD/DVD Drive 1".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"):Y
Working with virtual machine snapshots
vSphere PowerCLI provides cmdlets to create/remove snapshots for all of the virtual machines in the inventory. However, you may further customize the command to specify virtual machines from a specific ESX/ESXi Host, Cluster, or Datacenter.
To take a new snapshot for all virtual machines in a Cluster, run the cmdlet:
[vSphere PowerCLI] C:\Program Files\VMware\Infrastructure\vSphere PowerCLI> Get-Cluster "vCloud" | Get-VM | New-Snapshot -Name Automate
Name Description PowerState
---- ----------- ----------
Automate PoweredOff
Automate PoweredOff
To remove a snapshot from all of the virtual machine in the inventory, run the cmdlet:
[vSphere PowerCLI] C:\Program Files\VMware\Infrastructure\vSphere PowerCLI> Get-VM | Get-Snapshot | Remove-Snapshot
Confirm
Are you sure you want to perform this action?
Performing operation "Removing snapshot." on Target
"VirtualMachineSnapshot-snapshot-174".
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help
(default is "Y"):A
Note: Use the preceding commands with caution as the changes made are applicable for all virtual machines.
Updating VMware Tools
Update-Tools cmdlets can be used to update the VMware Tools on a single or multiple virtual machines. This command reboots the virtual machine after updating the VMware Tools. You can use the -NoReboot option to update the VMware Tools without rebooting the virtual machine.
In this example, the VMware Tools for all of the virtual machines in Resource Pool vCloud will be updated without rebooting the virtual machine:
[vSphere PowerCLI] C:\Program Files\VMware\Infrastructure\vSphere PowerCLI> Get-ResourcePool vcloud | Get-VM | Update-Tools -NoReboot
WARNING: Automatic update of VMware tools is not fully supported for
non-Windows OSs. Manual intervention might be required.
Note: Before running the cmdlet, ensure that the VMware Tools service is running. This command is used only to upgrade VMware Tools. To do an unattended install, use msiexec.exe. For more information, see The Microsoft article Use Windows Installer from the command line.