2022-06-24
551

Управление Windows через Ansible

Подготовка windows

Ansible осуществляет управление windows через powershell вместо python, который используется на linux. Для того, чтобы ansible мог управлять windows, нужно чтобы на windows стоял powershell не ниже 3 версии, но некоторые команды используют powershell более высокой версии, поэтому чем версия будет выше тем лучше. А также для управления программами нужно установить chocolatey, если он не установлен.

Для подготовки к работе нужно запустить powershell скрипт ConfigureRemotingForAnsible, можно скопировать текст и поместить его в файл с расширением .ps1, а затем запустить его с правами администратора. Для этого нужно запустить терминал powershell от имени администратора перейти в каталог со скриптом и запустить его ./ConfigureRemotingForAnsible.ps1.
Вывод должен содержать ОК.

Если при запуске скрипта powershell появляется ошибка Выполнение сценариев отключено в этой системе нужно разрешить выполнение сценариев командой powershell
Для текущего пользователя
Set-ExecutionPolicy Unrestricted -Scope CurrentUser
Или для всех пользователей компьютера
Set-ExecutionPolicy Unrestricted -Scope LocalMachine

Если нужно управлять большим количеством windows, то скрипт для подготовки можно запустить через групповые политики домена.

Учетная запись windows от имени которой будут запускаться команды ansible должна содержать пароль.

Подготовка linux

На управляющем хосте нужно установить ansible и python, как описано тут, а так же pip-пакет pywinrm
pip install pywinrm
Минимальная конфигурация файла inventory должна выглядеть следующим образом
[windows]
windows10-1 ansible_host=192.168.10.15

[windows:vars]
ansible_user=admin        #Пользователь windows
ansible_password="12"     #Пароль пользователя windows, лучше не указывать тут, а при запуске команды использовать --ask-pass
ansible_connection=winrm  #Служба, через которую будет управляться Windows хост
ansible_port=5986         #Порт, на котором работает winrm
ansible_winrm_server_cert_validation=ignore #режим проверки сертификата сервера
Проверить подключение можно командой
ansible windows -m win_ping

Можно установить ansible на wsl в windows и запускать playbook'и не используя отдельную систему linux.