PowerCLIВиртуализация VMware

PowerCLI. Invoke-VMScript. Установка IP-адреса гостя (static, DHCP).

В данной статье я расскажу как установить статический IP-адрес внутри гостевой системы посредством командлета Invoke-VMScript

Также приведу реализацию скрипта, который позволяет получить интерфейсу IP-адрес по DHCP. 
Рассматриваемые скрипты протестированы на применение один-за-другим. Т.е. могут быть использованы как в тестовых целях так и для траблшутинга.
 

С помощью командлета Invoke-VMscript мы можем запускать скрипты внутри виртуальной машины. Для этого на гостевой ОС должны быть установлены VMware Tools и Windows Powershell.

 Первым делом установим учетные данные для входа в гостевую операционную систему:

Выполним

$GuestCredential = Get-Credential
 
Затем создадим текст скрипта, который будет выполняться в гостевой ОС.
Укажем параметры для установки статического IP-адреса. 
$ScriptText = ‘New-NetIPAddress -InterfaceAlias “Ethernet0” -AddressFamily Ipv4 -IPAddress 10.10.10.210-PrefixLength 24 -DefaultGateway 10.10.10.1′ 

В параметре -InterfaceAlias “Ethernet0 необходимо указать имя вашего адаптера

Теперь выполним этот скрипт

Invoke-VMScript -ScriptText $ScriptText -VM TestVM -GuestCredential $GuestCredential  

В параметре  -VM TestVM укажем имя требуемой ВМ.

Результат выполнения скрипта довольно обширный


Теперь создадим скрипт на установки IP-адреса DNC сервера

$ScriptText = ‘Set-DnsClientServerAddress -InterfaceAlias “Ethernet0” -ServerAddresses 10.10.10.20’

И снова запустим командлет Invoke-VMScript


После настройки адаптера нам хотелось бы убедиться в правильности настройки, запустив в госте ipconfig. Но заходить в консоль ВМ нет необходимости, – снова воспользуемся скриптом

$ScriptText = ‘Get-NetIPConfiguration -InterfaceAlias “Ethernet0″‘ 


Как видим все верно.

Но каждый раз модифицировать скрипт можно только в учебных целях. Для практических я задач я создал два скрипта, которые все делают за раз.

Первый скрип – это объединение рассмотренных выше скрпитов

$ScriptText = ‘New-NetIPAddress -InterfaceAlias “Ethernet0” -AddressFamily Ipv4 -IPAddress 10.10.10.210 -PrefixLength 24 -DefaultGateway 10.10.10.1 | Out-Null;Set-DnsClientServerAddress -InterfaceAlias “Ethernet0” -ServerAddresses 10.10.10.20 | Out-Null;Start-Sleep -Seconds 5;Get-NetIPConfiguration -InterfaceAlias “Ethernet0″‘  

Рассмотрим как он работает.
Блок New-NetIPAddress -InterfaceAlias “Ethernet0” -AddressFamily Ipv4 -IPAddress 10.10.10.210 -PrefixLength 24 -DefaultGateway 10.10.10.1 | Out-Null; устанавливает IP-адрес. При этом в окно терминала сообщения не выводятся, за что отвечает | Out-Null. Второй блок – установка DNC мы записываем после ; (точки с запятой), причем обязательно без пробелов. Затем идет команда Start-Sleep -Seconds 5, которая создает паузу в пять секунд, которая необходима для завершения обновления настроек на сетевом адаптере. Это время может быть как меньше так и больше, в зависимости от скорости обновления настроек в каждом конкретном случае. После этого выводится конфигурация сетевого адаптера.

Второй скрипт для получения адаптером сетевых настроек с DHCP сервера. 

$ScriptText = ‘Remove-NetRoute -AddressFamily IPv4 -Confirm:$false | Out-Null;Set-NetIPInterface -InterfaceAlias “Ethernet0” -Dhcp Enabled;Set-DnsClientServerAddress -InterfaceAlias “Ethernet0” -ResetServerAddresses;Start-Sleep -Seconds 5;Get-NetIPConfiguration -InterfaceAlias “Ethernet0″‘

Первый блок – Remove-NetRoute -AddressFamily IPv4 -Confirm:$false удаляет маршруты. Если его не выполнять, то в настройках адаптера сохранится шлюз по умолчанию. Затем включается DHCP, удаляются существующие адреса DNS серверов для их получения посредством DHCP, также создается пауза для применения настроек и затем производится вывод полученной конфигурации.


Как видим, несмотря на наличие в скрипте командлета Out-Null, кроме конфигурации адаптера вывелась и информация о работе блока, очищающего маршрут. Вернее не работы – на экране мы видим именно ошибки, которые выводятся всегда и вне зависимости от наличия командлета Out-Null.

Related Post

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.