Он предоставляет несколько модулей Windows, которые используются для настройки и управления сервером Windows.
Я предполагаю, что вы уже установили Ansible на Windows и вы хотите управлять серверами Windows.
Ниже приведены некоторые из наиболее часто используемых задач, выполняемых администраторами Windows ежедневно. Вы будете удивлены, увидев, как легко администрируется Windows с помощью Ansible.
IP-адрес моего компьютера с контроллером Ansible Windows – 192.168.0.106, а IP-адрес моей удаленной системы Windows – 192.168.0.102
Прежде чем начать, убедитесь, что вы запустите модуль win_ping, чтобы проверить, можете ли вы подключиться к удаленному серверу Windows или нет.
$ ansible win -m win_ping 192.168.0.102 | SUCCESS => < «changed»: false, «ping»: «pong»
Мое соединение с удаленным хостом прошло успешно.
Копирование файлов
win_copy – это модуль, который копирует файл с локального сервера на удаленный хост Windows.
08. Ansible для начинающих и чайников + практический опыт: Демо — Windows
Я буду использовать этот модуль для копирования одного PDF.
Используйте приведенный ниже код YAML, укажите исходный и целевой путь.
Запустите плейбук с win_copy.
$ ansible-playbook copy.yml PLAY [win] *********************************************************************************************************************************** TASK [Gathering Facts] *********************************************************************************************************************** ok: [192.168.0.102] TASK [Copy File] ***************************************************************************************************************************** changed: [192.168.0.102] PLAY RECAP *********************************************************************************************************************************** 192.168.0.102 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Файл успешно скопирован в месте назначения в удаленной системе Windows.
Установить / удалить MSI
Чтобы установить приложение с помощью файла MSI, вам нужно использовать win_get_url, чтобы указать путь к файлу MSI для загрузки, а затем использовать модуль win_package для его установки.
state present означает, что MSI будет установлен на машине, и приложение будет находится в текущем состоянии.
Здесь я устанавливаю Apache.
$ vi msi.yml — — name: Installing Apache MSI hosts: win tasks: — name: Download the Apache installer win_get_url: url: https://archive.apache.org/dist/httpd/binaries/win32/httpd-2.2.25-win32-x86-no_ssl.msi dest: C:ansible_exampleshttpd-2.2.25-win32-x86-no_ssl.msi — name: Install MSI win_package: path: C:ansible_exampleshttpd-2.2.25-win32-x86-no_ssl.msi state: present
Запустите ansible плейбук для установки MSI
$ ansible-playbook msi.yml PLAY [Installing Apache MSI] ***************************************************************************************************************** TASK [Gathering Facts] *********************************************************************************************************************** ok: [192.168.0.102] TASK [Download the Apache installer] ********************************************************************************************************* changed: [192.168.0.102] TASK [Install MSI] *************************************************************************************************************************** changed: [192.168.0.102] PLAY RECAP *********************************************************************************************************************************** 192.168.0.102 : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Теперь перейдите в систему Windows и проверьте, успешно ли установлено приложение apache.
Ansible установка, настройка. Первый день работы. | ITСИТКОМ | Серия 2
cd C:Program Files (x86)Apache Software FoundationApache2.2bin C:Program Files (x86)Apache Software FoundationApache2.2bin>httpd -v Server version: Apache/2.2.25 (Win32) Server built: Jul 10 2013 01:52:12
Вы также можете устанавливать приложения, используя MSI с аргументами.
Ниже приведен тот же пример, что и выше, но вместо state мы используем аргумент install для установки apache.
— — name: Installing Apache MSI hosts: win tasks: — name: Download the Apache installer win_get_url: url: https://archive.apache.org/dist/httpd/binaries/win32/httpd-2.2.25-win32-x86-no_ssl.msi dest: C:ansible_exampleshttpd-2.2.25-win32-x86-no_ssl.msi — name: Install MSI win_package: path: C:ansible_exampleshttpd-2.2.25-win32-x86-no_ssl.msi arguments: — /install — /passive — /norestart
Чтобы удалить приложение с помощью файла MSI, вам нужно использовать модуль win_package.
Отсутствие state absent, что приложение будет удалено с использованием файла MSI.
Здесь я удаляю Apache.
$ vi uninstall_msi.yml — — name: UnInstalling Apache MSI hosts: win tasks: — name: UnInstall MSI win_package: path: C:ansible_exampleshttpd-2.2.25-win32-x86-no_ssl.msi state: absent
Запустите ansible плейбук для удаления MSI
$ ansible-playbook uninstall_msi.yml PLAY [UnInstalling Apache MSI] ***************************************************************************************************************** TASK [Gathering Facts] *********************************************************************************************************************** ok: [192.168.0.102] TASK [UnInstall MSI] ************************************************************************************************************************* changed: [192.168.0.102] PLAY RECAP *********************************************************************************************************************************** 192.168.0.102 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Теперь, если я проверю версию apache, я получу следующий вывод, так как приложение было удалено.
httpd -v ‘httpd’ is not recognized as an internal or external command, operable program or batch file.
Удалить программное обеспечение (.EXE)
Вы также можете удалить программное обеспечение с помощью файла .exe, используя идентификатор продукта этого программного обеспечения (product id).
$ vi uninstall.yml — — hosts: win tasks: — name: Uninstall 7-Zip from the exe win_package: path: C:Program Files7-ZipUninstall.exe product_id: 7-Zip arguments: /S state: absent
Запустите ansible плейбук, чтобы удалить 7-Zip.
$ ansible-playbook uninstall.yml PLAY [win] ************************************************************************************************************************************************************************************* TASK [Gathering Facts] ************************************************************************************************************************************************************************* ok: [192.168.0.102] TASK [Uninstall 7-Zip from the exe] *********************************************************************************************************************************************************** changed: [192.168.0.102] PLAY RECAP ************************************************************************************************************************************************************************************* 192.168.0.102 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Остановить / запустить / перезапустить службу Windows
Модуль win_service используется для запуска, остановки или перезапуска службы. Здесь я покажу вам, как остановить службу tomcat.
Вам необходимо указать имя службы в файле YAML и установить состояние (state) на stopped.
$ vi service.yml — — hosts: win tasks: — name: Stop service Tomcat win_service: name: Tomcat8 state: stopped
Запустите ansible плейбук, чтобы остановить службу Tomcat.
$ ansible-playbook service.yml PLAY [win] *********************************************************************************************************************************** TASK [Gathering Facts] *********************************************************************************************************************** ok: [192.168.0.102] TASK [Stop service Tomcat] **************************************************************************************************************** changed: [192.168.0.102] PLAY RECAP *********************************************************************************************************************************** 192.168.0.102 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Если вы проверите службу Tomcat в системе Windows,то увидите, что она теперь находится в остановленном состоянии.
Вы можете определить состояние started или restarted или paused, чтобы изменить статус службы.
Сбор фактов
С помощью модуля ansible win_disk_facts вы можете получить всю информацию о диске целевого хоста.
$ vi disk.yml — — hosts: win tasks: — name: Get disk facts win_disk_facts: — name: Output first disk size debug: var: ansible_facts.disks[0].size — name: Convert first system disk into various formats debug: msg: ‘> vs >’ vars: # Get first system disk disk: ‘>’ # Show disk size in Gibibytes disksize_gib_human: ‘>’ disksize_gib: ‘> GiB’
Запустите ansible плейбук, чтобы получить информацию о диске.
$ ansible-playbook disk.yml PLAY [win] *********************************************************************************************************************************** TASK [Gathering Facts] *********************************************************************************************************************** ok: [192.168.0.102] TASK [Get disk facts] ************************************************************************************************************************ ok: [192.168.0.102] TASK [Output first disk size] **************************************************************************************************************** ok: [192.168.0.102] => < «ansible_facts.disks[0].size»: «1000204886016» >TASK [Convert first system disk into various formats] **************************************************************************************** ok: [192.168.0.102] => < «msg»: «932 GiB vs 931.5 GiB» >PLAY RECAP *********************************************************************************************************************************** 192.168.0.102 : ok=4 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Используя ANSI-модуль win_command, вы можете выполнять команды на удаленном хосте, получать информацию о процессоре, сведения об устройстве и многое другое.
$ vi check.yml — — hosts: win tasks: — name: Get disk facts win_command: wmic cpu get caption, deviceid, name, numberofcores, maxclockspeed, status register: usage — debug: msg=»>»
Запустите ansible плейьук, чтобы получить информацию об удаленной системе.
Запуск команд
Какие бы команды вы ни выполняли в Windows, они могут выполняться через модуль ansible win_command.
Вам просто нужно указать команду в вашем файле YAML.
На примере я просто создаю каталог.
$ vi commands.yml — — hosts: win tasks: — name: run an executable using win_command win_command: whoami.exe — name: run a cmd command win_command: cmd.exe /c mkdir C:test
Запустите ansible плейбук для выполнения операции win_command.
$ ansible-playbook commands.yml PLAY [win] *********************************************************************************************************************************** TASK [Gathering Facts] *********************************************************************************************************************** ok: [192.168.0.102] TASK [run an executable using win_command] *************************************************************************************************** changed: [192.168.0.102] TASK [run a cmd command] ********************************************************************************************************************* changed: [192.168.0.102] PLAY RECAP *********************************************************************************************************************************** 192.168.0.102 : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Переменные среды
Система Windows имеет несколько переменных среды, например, JAVA_HOME.
Используя ANSI-модуль win_environment, вы можете добавлять или изменять переменные среды в системе Windows.
В этом примере я добавляю новую переменную в список переменных среды Windows.
$ vi env.yml — — hosts: win tasks: — name: Set an environment variable for all users win_environment: state: present name: NewVariable value: New Value level: machine
Запустите ansible плейбук, чтобы добавить переменную окружения на удаленном компьютере с Windows.
$ ansible-playbook env.yml PLAY [win] *********************************************************************************************************************************** TASK [Gathering Facts] *********************************************************************************************************************** ok: [192.168.0.102] TASK [Set an environment variable for all users] ********************************************************************************************* changed: [192.168.0.102] PLAY RECAP *********************************************************************************************************************************** 192.168.0.102 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Перейти в окно переменных среды; вы увидите, что новая переменная, которую вы только что добавили, присутствует!
Изменить реестр
Ansible модуль win_regedit используется для добавления или редактирования данных реестра на удаленной машине с Windows.
Вам необходимо указать путь к реестру и контент для добавления / обновления.
Здесь я создаю новую запись реестра Itisgood по пути HKLM:SOFTWARE, а затем добавляю имя и данные в этот реестр.
$ vi registry.yml — — hosts: win tasks: — name: Creating a registry win_regedit: path: HKLM:SOFTWAREItisgood — name: Modifying a registry, adding name and data win_regedit: path: HKLM:SOFTWAREItisgood name: Geek data: Flare
Запустите ansible плейбук, чтобы добавить именения в реестр.
$ ansible-playbook registry.yml PLAY [win] *********************************************************************************************************************************** TASK [Gathering Facts] *********************************************************************************************************************** ok: [192.168.0.102] TASK [Creating a registry] ******************************************************************************************************************* changed: [192.168.0.102] TASK [Modifying a registry, adding name and data] ******************************************************************************************** changed: [192.168.0.102] PLAY RECAP *********************************************************************************************************************************** 192.168.0.102 : ok=3 changed=2 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Если вы зайдете в редактор реестра на удаленной системе, вы увидите, что этот каталог был успешно добавлен с параметрами Name и Data.
Удаление логов
Модуль win_eventlog используется для добавления, очистки или удаления логов системы Windows.
Перейдите в Windows Powershell и перечислите EventLogs, присутствующие на удаленном компьютере с Windows.
Get-EventLog -List Max(K) Retain OverflowAction Entries Log —— —— ————— ——- — 20,480 0 OverwriteAsNeeded 33,549 Application 20,480 0 OverwriteAsNeeded 0 HardwareEvents 512 7 OverwriteOlder 20 Internet Explorer 20,480 0 OverwriteAsNeeded 0 Key Management Service 128 0 OverwriteAsNeeded 190 OAlerts Security 20,480 0 OverwriteAsNeeded 44,828 System 15,360 0 OverwriteAsNeeded 3,662 Windows PowerShell
Теперь я покажу, как удалить логи Internet Explorer.
$ vi log.yml — — hosts: win tasks: — name: Remove Internet Explorer Logs win_eventlog: name: Internet Explorer state: absent
Запустите ansible плейбук, чтобы удалить логи Internet Explorer с удаленного компьютера с Windows.
$ ansible-playbook log.yml PLAY [win] ************************************************************************************************************************************************************************************* TASK [Gathering Facts] ************************************************************************************************************************************************************************* ok: [192.168.0.102] TASK [Remove Internet Explorer Logs] ********************************************************************************************************************************************** changed: [192.168.0.102] PLAY RECAP ************************************************************************************************************************************************************************************* 192.168.0.102 : ok=2 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
Теперь, если вы снова перечислите логи, вы увидите, что логи Internet Explorer были удалены.
Get-EventLog -List Max(K) Retain OverflowAction Entries Log —— —— ————— ——- — 20,480 0 OverwriteAsNeeded 33,549 Application 20,480 0 OverwriteAsNeeded 0 HardwareEvents 20,480 0 OverwriteAsNeeded 0 Key Management Service 128 0 OverwriteAsNeeded 190 OAlerts Security 20,480 0 OverwriteAsNeeded 44,835 System 15,360 0 OverwriteAsNeeded 56 Windows PowerShell
Итак, это все об Ansible плейбуках, которые можно использовать для удаленного администрирования Windows
Источник: itisgood.ru
Ansible windows установка программ
Добро пожаловать! Меня зовут Григорьев Иван, я Full Stack Developer. В основном пишу на PHP (Nette, Laravel), Python (Django, DRF), Vue (Quasar Framework). Опыт профессиональной разработки более 10 лет.
Работаю в компании MACRO разработчиком. В свободное время оказываю консультации по разработке ПО.
Пишу о:
Запуск Ansible (и любых Linux программ и команд) в Windows 10
Речь в заметке пойдет о запуске Linux приложений под Windows 10 с помощью WSL без виртуальной машины, средствами Windows.
Предыстория
У нас, в компании Кузбасс-ЦОТ, есть программный продукт “ Комплекс ”. Это такая штука, которая обучает и тестирует людей, вычисляет их компетентность и прогнозирует риски. Сам продукт представляет собой сервер, написаный на языке PHP, и клиент на Qt5, работающий на вандалоустойчивом терминале с ОС Ubuntu.
Есть проблема в следующем: при внедрении ПО на предприятии заказчика, количество этих терминалов может достигать десятки штук, а то и сотню. Приходится объезжать места физической установки терминалов и вручную накатывать образ через Clonezilla, далее конфигурировать его, указывать IP адрес сервера. Так как терминалы поставляются уже с предустановленной ОС, данную проблему я решил исправить с помощью Ansible. Если просто, это такая система управления конфигурациями, где состояние конечной системы описывается в файлах формата YAML и далее это состояние поддерживается.
Описание решения
Хотя Ansible и написан на Python, установить его через pip, как рассказывается в документации, не получилось, так как требовались возможности Linux.
Ставить второй системой Linux или запускать его в виртуальной машине мне очень не хотелось. Поэтому я пошел по пути меньшего сопротивления и решил использовать WSL. Это подсистема Windows для Linux, позволяющая запускать много программ и утилит без виртуализации. Оговорюсь — это не полноценный Linux, а лишь только реализация окружения и утилит.
Внимание! WSL работает только на 64 битных версиях Windows 10!
Установка WSL
Для установки WSL требуется включить компонент Подсистема Windows для Linux. Откройте PowerShell с правами администратора и выполните команду, включающую данный компонент:
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Далее потребуется перезагрузить компьютер.
Теперь установите через Microsoft Store необходимый дистрибутив Linux. Полный список доступных дистрибутивов можно посмотреть по ссылке. Для себя я выбрал Ubuntu 18.04 LTS.
После установки и запуска, откроется терминал с приглашением указать имя пользователя и пароль для данного дистрибутива. Пароль можно не указывать, пустые пароли пропускает. WSL установлена!
Установка Ansible
Далее я следовал документации по установке Ansible для Ubuntu:
$ sudo apt update $ sudo apt install software-properties-common $ sudo apt-add-repository —yes —update ppa:ansible/ansible $ sudo apt install ansible
Ansible установлен! Теперь можно работать с ним из системы Windows 10:
PS C:Usersivans> wsl ansible usage: ansible [-h] [—version] [-v] [-b] [—become-method BECOME_METHOD] [—become-user BECOME_USER] [-K] [-i INVENTORY] [—list-hosts] [-l SUBSET] [-P POLL_INTERVAL] [-B SECONDS] [-o] [-t TREE] [-k] [—private-key PRIVATE_KEY_FILE] [-u REMOTE_USER] [-c CONNECTION] [-T TIMEOUT] [—ssh-common-args SSH_COMMON_ARGS] [—sftp-extra-args SFTP_EXTRA_ARGS] [—scp-extra-args SCP_EXTRA_ARGS] [—ssh-extra-args SSH_EXTRA_ARGS] [-C] [—syntax-check] [-D] [-e EXTRA_VARS] [—vault-id VAULT_IDS] [—ask-vault-pass | —vault-password-file VAULT_PASSWORD_FILES] [-f FORKS] [-M MODULE_PATH] [—playbook-dir BASEDIR] [-a MODULE_ARGS] [-m MODULE_NAME] pattern ansible: error: too few arguments
Командой wsl можно вызывать команды WSL из PowerShell в требуемой директории не запуская приложение. Например так можно установить и запустить редактор nano :
wsl sudo apt install nano wsl nano
Думаю данная заметка пригодится вам, спасибо за прочтение. Буду рад, если поделитесь статьей с коллегами разработчиками.
Источник: ivanscm.name
Управление конфигурацией Windows через Ansible
09.02.2023
itpro
Linux, Windows 10, Windows Server 2019
комментариев 6
В этой статье мы рассмотрим, как удаленно управлять хостами с Windows через популярную систему управления конфигурациями Ansible. Мы предполагаем, что Ansible уже установлен на вашем хосте Linux.
Подготовка Windows к удаленному управления через Ansible
Ansible позволяет удаленно управлять хостами Windows со всеми поддерживаемым версиями ОС, начиная с Windows 7/Windows Server 2008 и до современных Windows 11/Windows Server 2022. В Windows должен быть установлен PowerShell 3.0 (или выше) и NET 4.0+.
Ansible использует WinRM для подключения к Windows. Поэтому вам нужно включить и настроить WinRM listener на всех управляемых хостах.
В Ansible 2.8 и выше доступна экспериментальная опция удаленного управления клиентами Windows 10 и Windows Serve 2019 через встроенный OpenSSH сервер.
- В домене AD можно централизованно настроить WinRM с помощью групповых политик;
- На отдельно стоящем хосте Windows для включения WinRM выполните команду PowerShell: Enable-PSRemoting –Force
Если WinRM включен и настроен на хостах Windows, проверьте что с сервера Ansible на ваших серверах доступен порт TCP/5985 или TCP/5986 (если используется HTTPS).
$ nc -zv 192.168.13.122 5985
В зависимости от того. в какой среде вы будете использовать Ansible, вам нужно выбрать способ аутентификации.
- Для отдельно-стоящего компьютера или рабочей группы можно использовать HTTPS для WinRM с самоподписанными сертификатами с аутентификацией под локальной учетной записью Windows с правами администратора. Для быстрой настройки хоста Windows можно использовать готовый скрипт ConfigureRemotingForAnsible.ps1 (https://github.com/ansible/ansible/blob/devel/examples/scripts/ConfigureRemotingForAnsible.ps1);
- В моем случае все хосты Windows находятся в домене Active Directory, поэтому я буду использовать учетную запись AD для аутентификации через Ansible. В этом случае нужно настроить Kerberos аутентификацию на сервере Ansible (рассмотрено далее).
Установите необходимые пакеты для Kerberos аутентификации:
- В RHEL/Rocky Linux/CentOS через менеджер пакетов yum/dnf:
$ sudo yum -y install python-devel krb5-devel krb5-libs krb5-workstation - В Ubuntu/Debian:
$ sudo apt-get -y install python-dev libkrb5-dev krb5-user
Теперь установите пакет для python через pip:
$ sudo pip3 install requests-kerberos
Укажите настройки подключения к вашему домену в файле:
$ sudo mcedit /etc/krb5.conf
[logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] dns_lookup_realm = false ticket_lifetime = 24h renew_lifetime = 7d forwardable = true rdns = false default_realm = WINITPRO.LOC [realms] WINITPRO.LOC = < admin_server = dc02.winitpro.loc kdc = dc02.winitpro.loc >[domain_realm] winitpro.loc = WINITPRO.LOC .WINITPRO.LOC = WINITPRO.LOC
Проверьте, что вы можете выполнить аутентификацию в вашем домене AD и получите тикет Kerberos:
kinit -C [email protected]
Введите пароль пользователя AD, проверьте что получен тикет.
Настройка Ansible для управления компьютерами Windows
Теперь добавьте все ваши хосты Windows в инвентаризационный файл ansible:
$ sudo mcedit /etc/ansible/hosts
msk-rds2.winitpro.loc msk-rds3.winitpro.loc wks-t1122h2.winitpro.loc [windows_all:vars] ansible_port=5985 [email protected] ansible_connection=winrm ansible_winrm_transport=kerberos ansible_winrm_scheme=http ansible_winrm_server_cert_validation=ignore
Проверьте, что все ваши Windows хосты (в моем списке два Windows Server 2019 и один компьютер Windows 11) доступны из Ansible:
$ ansible windows_all -m win_ping
В моем случае все хосты вернули ошибку:
«msg»: «kerberos: Bad HTTP response returned from server. Code 500», «unreachable»: true
Причина в том, что в этом примере для WinRM подключения используется протокол HTTP вместо HTTPS. Чтобы игнорировать ошибку, нужно разрешить незашифрованный трафик на хостах Windows:
Set-Item -Path WSMan:localhostServiceAllowUnencrypted -Value true
Теперь через Ansible вы можете выполнить произвольную команду на всех хостах. Например, я хочу сбросить DNS кеш на всех хостах Windows:
$ ansible windows_all -m win_shell -a «ipconfig /flushdns»
Команда успешно отработала везде.
Примеры управления конфигурацией Windows из Ansible
Теперь вы можете запускать плейбуки Ansible на ваших хостах Windows.
Например, вам нужно через Ansible выполнить PowerShell скрипт на всех хостах (в этом примере мы с помощью PowerShell получим текущие настройки DNS на хостах). Создайте файл плейбука:
$ sudo mcedit /etc/ansible/playbooks/win-exec-powershell.yml
— — name: win_powershell_exec hosts: windows_all tasks: — name: check DNS win_shell: | Get-DnsClientServerAddress -InterfaceIndex (Get-NetAdapter|where Status -eq «Up»).ifindex -ErrorAction SilentlyContinue register: command_output — name: command output ansible.builtin.debug:
В данном примере плейбук отработал на всех Windows хостах и вернул текущие настройки DNS.
Далее рассмотрим несколько типовых плейбуков Absible, для стандартных задач управления хостами Windows.
Скопировать файл:
— name: Copy a single file win_copy: src: /home/sysops/files/test.ps1″ dest: C:Temptest.ps1
Создать файл:
— name: Create file win_file: path: C:Tempfile.txt state: touch
Удалить файл:
— name: Delete file win_file: path: C:Tempfile.txt state: absent
Создать параметр реестра:
— name: Create reg dword win_regedit: path: HKLM:SOFTWAREMicrosoftWindowsCurrentVersionPoliciesDataCollection name: AllowTelemetry data: 0 type: dword
Установить программу из MSI:
Установить программу из MSI:
— name: Install MSI package win_package: path: C:Distradobereader.msi arguments: — /install — /passive — /norestart
Запустить службу Windows:
— name: Run Windows Service win_service: name: wuauserv state: started
Установить роль Windows Server:
— name: Install Windows Feature win_feature: name: SNMP-Service state: present
Открыть порт в файерволе:
— name: Open SMTP Port п win_firewall_rule: name: port 25 localport: 25 action: allow direction: in protocol: tcp state: present enabled: yes
Выполнить PowerShell скрипт:
— name: Run PowerShell Script win_command: powershell.exe -ExecutionPolicy ByPass -File C:/temp/powershellscript.ps1
В этой статье мы рассмотрели, как управлять конфигурацией компьютеров Windows через Ansible. Если ваши хосты Windows не добавлены в домен Active Directory (находятся в рабочей группе), то удаленное управление конфигурацией хостов Windows через Ansible может быть неплохой альтернативной настройке с помощью доменных групповых политик.
Можно установить Ansible в подсистеме WSL на Windows. Это позволит запускать плейбуки без развертывания отдельного Linux хоста под ansible.
Предыдущая статья Следующая статья
Источник: winitpro.ru