Как управлять удаленным хостом Windows с помощью Ansible

Как управлять удаленным хостом Windows с помощью Ansible

 

Ansible становится все более популярной платформой для развертывания приложений и предоставления программного обеспечения среди разработчиков благодаря простоте использования и гибкости. Кроме того, его легко настроить, и агент не требуется устанавливать на удаленных узлах, вместо этого Ansible использует SSH-аутентификацию без пароля для управления удаленными узлами Unix / Linux. Однако в этом разделе мы увидим, как вы можете управлять хостом Windows с помощью Ansible.

Настройка лаборатории

Мы будем использовать приведенную ниже настройку для достижения нашей цели.

  • Узел Ansible Control — CentOS 8 — IP: 192.168.43.13
  • Узел Windows 10 — Windows 10 — IP: 192.168.43.147

Часть 1: Установка Ansible на контрольном узле (CentOS 8)

Прежде всего нам нужно установить Ansible на узле Control, который является системой CentOS 8.

Шаг 1. Убедитесь, что Python3 установлен на узле управления Ansible

Во-первых, нам нужно подтвердить, установлен ли Python3. CentOS 8 поставляется с Python3, но если он отсутствует по какой-либо причине, установите его с помощью команды:

# sudo dnf install python3

Затем сделайте Python3 версией Python по умолчанию, запустив:

# sudo alternatives --set python /usr/bin/python3

Чтобы проверить, установлен ли python3, выполните команду:

# python --version

Как управлять удаленным хостом Windows с помощью Ansible

Шаг 2. Установите виртуальную среду для запуска Ansible

Для этого упражнения предпочтительна изолированная среда для запуска и тестирования Ansible. Это позволит избежать таких проблем, как проблемы с зависимостями и конфликты пакетов. Изолированная среда, которую мы собираемся создать, называется виртуальной средой.

Во-первых, начнем с установки виртуальной среды на CentOS 8.

# sudo dnf install python3-virtualenv

Как управлять удаленным хостом Windows с помощью Ansible

После установки виртуальной среды создайте виртуальное рабочее пространство, запустив:

# virtualenv env

Как управлять удаленным хостом Windows с помощью Ansible

# source env/bin/activate

Как управлять удаленным хостом Windows с помощью Ansible

Большой! Наблюдатель, теперь приглашение изменилось на (env).

Шаг 3. Установите Ansible

После создания виртуальной среды продолжите и установите инструмент автоматизации Ansible с помощью pip, как показано:

# pip install ansible

Как управлять удаленным хостом Windows с помощью Ansible

Позже вы можете подтвердить установку Ansible с помощью команды:

# ansible --version

Как управлять удаленным хостом Windows с помощью Ansible

Чтобы протестировать Ansible и посмотреть, работает ли он на нашем сервере Ansible Control, запустите:

# ansible localhost -m ping

Как управлять удаленным хостом Windows с помощью Ansible

Большой! Затем нам нужно определить хост или систему Windows в файле хоста на узле управления Ansible. Поэтому откройте файл hosts по умолчанию

# vim /etc/ansible/hosts

Определите хосты Windows, как показано ниже.

Как управлять удаленным хостом Windows с помощью Ansible

Примечание. Имя пользователя и пароль указывают на пользователя в хост-системе Windows.

Затем сохраните и выйдите из файла конфигурации.

Шаг 4: Установите Pywinrm

В отличие от систем Unix, где Ansible использует SSH для связи с удаленными хостами, с Windows это совсем другая история. Для связи с хостами Windows вам необходимо установить Winrm.

Чтобы установить WinRM, еще раз используйте инструмент pip, как показано:

# pip install pywinrm

Как управлять удаленным хостом Windows с помощью Ansible

Часть 2: Настройка хоста Windows

В этом разделе мы собираемся настроить нашу удаленную хост-систему Windows 10 для подключения к узлу Ansible Control. Мы собираемся установить прослушиватель WinRM ( сокращение от Windows Remote), который позволит установить соединение между хост-системой Windows и сервером Ansible.

Но прежде чем мы это сделаем, ваша хост-система Windows должна выполнить несколько требований для успешной установки:

  • Ваша хост-система Windows должна быть Windows 7 или новее . Для серверов убедитесь, что вы используете Windows Server 2008 и более поздние версии.
  • Убедитесь, что ваша система работает под управлением .NET Framework 4.0 или более поздней версии.
  • Windows PowerShell должна быть версии 3.0 или более поздней.

При соблюдении всех требований выполните следующие действия:

Шаг 1. Загрузите сценарий WinRM на хост с Windows 10.

WinRM можно установить с помощью сценария, который можно скачать по этой ссылке . Скопируйте весь сценарий и вставьте его в редактор блокнота. После этого убедитесь, что вы сохранили сценарий WinRM в наиболее удобном месте. В нашем случае мы сохранили файл на рабочем столе под именем  ConfigureRemotingForAnsible.ps1.

Шаг 2. Запустите сценарий WinRM на узле Windows 10.

Затем запустите PowerShell от имени администратора.

Как управлять удаленным хостом Windows с помощью Ansible

Перейдите к месту сценария и запустите его. В этом случае мы перешли в папку на рабочем столе, где сохранили скрипт. Затем продолжите и выполните сценарий WinRM на хосте WIndows:

.\ConfigureRemotingForAnsible.ps1

Это займет около минуты, и вы должны получить результат, показанный ниже. Выходные данные показывают, что WinRM успешно установлен.

Как управлять удаленным хостом Windows с помощью Ansible

Часть 3: Подключение к хосту Windows из Ansible Control Node

Чтобы проверить подключение к узлу Windows 10, выполните команду:

# ansible winhost -m win_ping

Как управлять удаленным хостом Windows с помощью Ansible

Выходные данные показывают, что мы действительно установили соединение с удаленным хостом Windows 10 из узла Ansible Control. Это означает, что теперь мы можем управлять удаленным хостом Windows с помощью Ansible Playbooks. Давайте создадим образец учебника для хост-системы Windows.

Часть 4: Создание и запуск сценария для хоста Windows 10

В этом последнем разделе мы создадим playbook и создадим задачу, которая установит Chocolatey на удаленный хост. Chocolatey — это менеджер пакетов для системы Windows. Игра определяется следующим образом:

# vim chocolatey.yml
---
- hosts: winhost
  gather_facts: no
  tasks:
   - name: Install Chocolatey on Windows10
     win_chocolatey: name=procexp  state=present

Как управлять удаленным хостом Windows с помощью Ansible

Сохраните и закройте файл yml. Затем запустите playbook, как показано

# ansible-playbook chocolatey.yml

Как управлять удаленным хостом Windows с помощью Ansible

Результатом является указатель, что все прошло хорошо. На этом мы завершаем тему о том, как управлять хостом Windows с помощью Ansible.