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 verbosity is -vvv or greater and a change occurred | Подробный вывод в виде списка из выполнения метода DSC Set. Пример: ["Perform operation 'Invoke CimMethod' with the following parameters, ", '[SERVER]: LCM: [Start Set ] [[File]DirectResourceAccess]', "Operation 'Invoke CimMethod' complete."] |
| verbose_test список / элементы=строка | Ansible verbosity is -vvv or greater | Подробный вывод в виде списка из выполнения метода 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–2021 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.11/collections/ansible/windows/win_dsc_module.html