ansible.windows.win_dsc – Вызывает конфигурацию PowerShell DSC
Примечание
Этот плагин входит в сборку ansible.windows (версия 1.3.0).
Для его установки используйте: ansible-galaxy collection install ansible.windows
Для использования в книге задач укажите: ansible.windows.win_dsc
Обзор
- Настраивает ресурс с помощью PowerShell DSC.
- Требуется версия PowerShell 5.0 или выше.
- Большинство параметров этого модуля динамические и будут различаться в зависимости от ресурса DSC, указанного в resource_name.
Параметры
| Параметр | Варианты/Значения по умолчанию | Комментарии |
|---|---|---|
| free_form строка / обязательно | Модуль ansible.windows.win_dsc принимает несколько свободных параметров, основанных на ресурсе DSC, вызываемом с помощью resource_name. Нет параметра, который называется free_form, поэтому см. примеры.Этот модуль попытается преобразовать параметр в правильный тип, требуемый ресурсом DSC, и выведет предупреждение, если это не удастся. Если тип параметра ресурса DSC — CimInstance или CimInstance[], это означает, что значение должно быть словарем или списком словарей, в зависимости от требуемых значений этого параметра.Если тип параметра ресурса DSC — PSCredential, то необходимо задать 2 параметра в определении задачи Ansible, оканчивающихся на _username и _password. Если тип параметра ресурса DSC — массив, то необходимо предоставить список, но также может работать и строка, разделенная запятыми. Используйте список, где это возможно, так как в этом случае не требуется экранирование, и он работает с более сложными типами, включая списки CimInstance[]. Если тип параметра ресурса DSC — DateTime, для обеспечения точной даты необходимо использовать строку в формате ISO 8901. | |
| module_version строка | Значение по умолчанию: "latest" | Может использоваться для конфигурирования точной версии ресурса DSC, который нужно вызвать. Полезно, если целевой узел имеет несколько установленных версий модуля, содержащего ресурс DSC. Если не указано, модуль будет следовать стандартной конвенции PowerShell и использовать самую последнюю доступную версию. |
| resource_name строка / обязательно | Имя ресурса DSC, которое необходимо использовать. Должен быть доступен для PowerShell с помощью стандартных путей. |
Примечания
Примечание
- По умолчанию имеется несколько встроенных ресурсов, поставляемых с PowerShell 5.0. См. https://docs.microsoft.com/en-us/powershell/scripting/dsc/resources/resources для получения дополнительной информации об этих ресурсах.
- Пользовательские ресурсы DSC можно установить с помощью community.windows.win_psmodule с использованием параметра name.
- Двигатель DSC выполняет каждую задачу как учетная запись SYSTEM. Любые ресурсы, к которым необходимо получить доступ с помощью другой учетной записи, должны иметь
PsDscRunAsCredential. - Чтобы увидеть допустимые параметры для ресурса DSC, выполните модуль с
-vvvдля отображения возможных вызовов модуля. Значения по умолчанию в этом выводе не отображаются, но применяются в двигателе DSC. - Двигателю DSC требуется, чтобы HTTP-слушатель WSMan был активен, и его порт был настроен как стандартный слушатель для HTTP. Это настраивается по умолчанию, но если используется пользовательский HTTP-порт или имеется только HTTPS-слушатель, модуль завершится ошибкой. В примерах показано, как проверить это в PowerShell.
Примеры
- name: Verify the WSMan HTTP listener is active and configured correctly
ansible.windows.win_shell: |
$port = (Get-Item -LiteralPath WSMan:\localhost\Client\DefaultPorts\HTTP).Value
$onlinePorts = @(Get-ChildItem -LiteralPath WSMan:\localhost\Listener |
Where-Object { 'Transport=HTTP' -in $_.Keys } |
Get-ChildItem |
Where-Object Name -eq Port |
Select-Object -ExpandProperty Value)
if ($port -notin $onlinePorts) {
"The default client port $port is not set up as a WSMan HTTP listener, win_dsc will not work."
}
- name: Extract zip file
ansible.windows.win_dsc:
resource_name: Archive
Ensure: Present
Path: C:\Temp\zipfile.zip
Destination: C:\Temp\Temp2
- name: Install a Windows feature with the WindowsFeature resource
ansible.windows.win_dsc:
resource_name: WindowsFeature
Name: telnet-client
- name: Edit HKCU reg key under specific user
ansible.windows.win_dsc:
resource_name: Registry
Ensure: Present
Key: HKEY_CURRENT_USER\ExampleKey
ValueName: TestValue
ValueData: TestData
PsDscRunAsCredential_username: '{{ansible_user}}'
PsDscRunAsCredential_password: '{{ansible_password}}'
no_log: true
- name: Create file with multiple attributes
ansible.windows.win_dsc:
resource_name: File
DestinationPath: C:\ansible\dsc
Attributes: # can also be a comma separated string, e.g. 'Hidden, System'
- Hidden
- System
Ensure: Present
Type: Directory
- name: Call DSC resource with DateTime option
ansible.windows.win_dsc:
resource_name: DateTimeResource
DateTimeOption: '2019-02-22T13:57:31.2311892+00:00'
# more complex example using custom DSC resource and dict values
- name: Setup the xWebAdministration module
ansible.windows.win_psmodule:
name: xWebAdministration
state: present
- name: Create IIS Website with Binding and Authentication options
ansible.windows.win_dsc:
resource_name: xWebsite
Ensure: Present
Name: DSC Website
State: Started
PhysicalPath: C:\inetpub\wwwroot
BindingInfo: # Example of a CimInstance[] DSC parameter (list of dicts)
- Protocol: https
Port: 1234
CertificateStoreName: MY
CertificateThumbprint: C676A89018C4D5902353545343634F35E6B3A659
HostName: DSCTest
IPAddress: '*'
SSLFlags: '1'
- Protocol: http
Port: 4321
IPAddress: '*'
AuthenticationInfo: # Example of a CimInstance DSC parameter (dict)
Anonymous: no
Basic: true
Digest: false
Windows: yes
Возвращаемые значения
Общие возвращаемые значения описаны в этом месте, следующие — поля, уникальные для данного модуля:
| Ключ | Возвращаемое значение | Описание |
|---|---|---|
| module_version строка | всегда | Версия ресурса/модуля dsc, используемого. Пример: 1.0.1 |
| reboot_required булево | всегда | Флаг, возвращаемый двигателем DSC, указывающий, требуется ли перезагрузка компьютера для вступления в силу внесенных изменений. Пример: True |
| verbose_set список / элементы=строка | Вербальность Ansible -vvv или выше и произошли изменения | Подробный вывод в виде списка, полученный в результате выполнения метода DSC Set. Пример: ["Perform operation 'Invoke CimMethod' with the following parameters, ", '[SERVER]: LCM: [Start Set ] [[File]DirectResourceAccess]', "Operation 'Invoke CimMethod' complete."] |
| verbose_test список / элементы=строка | Вербальность Ansible -vvv или выше | Подробный вывод в виде списка, полученный в результате выполнения метода DSC test. Пример: ["Perform operation 'Invoke CimMethod' with the following parameters, ", '[SERVER]: LCM: [Start Test ] [[File]DirectResourceAccess]', "Operation 'Invoke CimMethod' complete."] |
Авторы
- Trond Hindenes (@trondhindenes)
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.10/collections/ansible/windows/win_dsc_module.html