Назад | Перейти на главную страницу

Как применить конфигурацию желаемого состояния xNetworking xIPAddress (DSC)?

Используется Windows Server 2012 R2.

Цель - установить IPv4-адрес сервера. Как правильно указывает DSC в подробном сообщении ниже, ожидаемый [ip] 192.168.0.203, а фактический [ip] 192.168.0.205

Следующее сообщение об ошибке:

Start-DscConfiguration -Path .\BasicServer -Verbose -Wait -Force

VERBOSE: Perform operation 'Invoke CimMethod' with following parameters, ''methodName' = SendConfigurationApply,'className' =
MSFT_DSCLocalConfigurationManager,'namespaceName' = root/Microsoft/Windows/DesiredStateConfiguration'.
VERBOSE: An LCM method call arrived from computer ComputerName with user sid S-1-5-21-139086020-2308268882-217435134-1104.
VERBOSE: [ComputerName]: LCM:  [ Start  Set      ]
VERBOSE: [ComputerName]: LCM:  [ Start  Resource ]  [[xIPAddress]IPAddress]
VERBOSE: [ComputerName]: LCM:  [ Start  Test     ]  [[xIPAddress]IPAddress]
VERBOSE: [ComputerName]:                            [[xIPAddress]IPAddress] Checking the IPAddress ...
VERBOSE: [ComputerName]:                            [[xIPAddress]IPAddress] IPAddress not correct. Expected 192.168.0.203, actual 192.168.0.205
VERBOSE: [ComputerName]: LCM:  [ End    Test     ]  [[xIPAddress]IPAddress]  in 0.0310 seconds.
VERBOSE: [ComputerName]: LCM:  [ Start  Set      ]  [[xIPAddress]IPAddress]
VERBOSE: [ComputerName]:                            [[xIPAddress]IPAddress] Checking the IPAddress ...
VERBOSE: [ComputerName]:                            [[xIPAddress]IPAddress] IPAddress not correct. Expected 192.168.0.203, actual 192.168.0.205
VERBOSE: [ComputerName]:                            [[xIPAddress]IPAddress] Setting IPAddress ...
VERBOSE: [ComputerName]:                            [[xIPAddress]IPAddress] Instance DefaultGateway already exists
VERBOSE: [ComputerName]: LCM:  [ End    Set      ]  [[xIPAddress]IPAddress]  in 0.0620 seconds.
PowerShell DSC resource MSFT_xIPAddress  failed to execute Set-TargetResource functionality with error message: Can not set or find valid IPAddress using
InterfaceAlias Ethernet and AddressFamily IPv4
+ CategoryInfo          : InvalidOperation: (:) [], CimException
+ FullyQualifiedErrorId : ProviderOperationExecutionFailure
+ PSComputerName        : ComputerName.domain.com

The SendConfigurationApply function did not succeed.
+ CategoryInfo          : NotSpecified: (root/Microsoft/...gurationManager:String) [], CimException
+ FullyQualifiedErrorId : MI RESULT 1
+ PSComputerName        : ComputerName.domain.com

VERBOSE: Operation 'Invoke CimMethod' complete.
VERBOSE: Time taken for configuration job to complete is 0.268 seconds

... выдается при применении следующей конфигурации xNetworking DSC:

Import-DscResource -Module xNetworking

Node $NodeFQDN {
xIPAddress IPAddress {
    InterfaceAlias = "Ethernet"
    IPAddress = $IPv4
    AddressFamily = "IPV4"
    DefaultGateway = '192.168.0.1'
    SubnetMask = 24
}}

где $ IPv4 = '192.168.0.203'.

Я заметил, что Local Configuration Manager поддерживает Test-DSCConfiguration, но не может применять какие-либо изменения, связанные с IP. Я проверил это, запустив конфигурацию выше в системе, когда IP уже установлен правильно.

Сообщение «Не удается установить или найти действительный IP-адрес с помощью InterfaceAlias ​​Ethernet и AddressFamily IPv4» сбивает с толку, поскольку LCM, очевидно, смог найти адаптер во время операции Test-DSCConfiguration.

Есть какие-нибудь подсказки относительно того, почему Local Configuration Manager не может применить конфигурацию? Что я не вижу?

Решением было удалить шлюз по умолчанию из конфигурации: DefaultGateway = '192.168.0.1'

Похоже, что если есть какие-либо конфигурации в дополнение к основным (IPAddress, InterfaceAlias, SubnetMask, AddressFamily), DSC сосредоточится на дополнительных элементах и ​​рассматривает базовые как ссылки. Обратите внимание на следующее:

xIPAddress IPAddress {
    InterfaceAlias = 'Ethernet'
    IPAddress = '192.168.0.203'
    AddressFamily = 'IPV4'
    SubnetMask = 24
}

Приведенная выше конфигурация установит IP-адрес 192.168.0.203.

 xIPAddress IPAddress {
    InterfaceAlias = 'Ethernet'
    IPAddress = '192.168.0.203'
    AddressFamily = 'IPV4'
    SubnetMask = 24
    DefaultGateway = '192.168.0.1'
}

Приведенная выше конфигурация найдет адаптер с именем «Ethernet» с IP-адресом 192.168.0.203 и настроит его DefaultGateway на 192.168.0.1. В моем вопросе диспетчер локальной конфигурации не смог найти такой адаптер. Я пытался установить IP и шлюз одновременно.

Это открытие привело меня к пониманию того, что установка IP-адреса и настройка других свойств адаптера не могут выполняться в одной конфигурации. Такой вид исключает идею использования одного (да, только 1) скрипта для сквозной настройки сервера.

Я правильно понимаю?

p.s. Я также сталкивался с конфигурациями, добавляющими новый IP вместо замены. Не буду сейчас вдаваться в подробности, но очень интересное поведение ...