Как управлять удаленным хостом 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
Шаг 2. Установите виртуальную среду для запуска Ansible
Для этого упражнения предпочтительна изолированная среда для запуска и тестирования Ansible. Это позволит избежать таких проблем, как проблемы с зависимостями и конфликты пакетов. Изолированная среда, которую мы собираемся создать, называется виртуальной средой.
Во-первых, начнем с установки виртуальной среды на CentOS 8.
# sudo dnf install python3-virtualenv
После установки виртуальной среды создайте виртуальное рабочее пространство, запустив:
# virtualenv env
# source env/bin/activate
Большой! Наблюдатель, теперь приглашение изменилось на (env).
Шаг 3. Установите Ansible
После создания виртуальной среды продолжите и установите инструмент автоматизации Ansible с помощью pip, как показано:
# pip install ansible
Позже вы можете подтвердить установку Ansible с помощью команды:
# ansible --version
Чтобы протестировать Ansible и посмотреть, работает ли он на нашем сервере Ansible Control, запустите:
# ansible localhost -m ping
Большой! Затем нам нужно определить хост или систему Windows в файле хоста на узле управления Ansible. Поэтому откройте файл hosts по умолчанию
# vim /etc/ansible/hosts
Определите хосты Windows, как показано ниже.
Примечание. Имя пользователя и пароль указывают на пользователя в хост-системе Windows.
Затем сохраните и выйдите из файла конфигурации.
Шаг 4: Установите Pywinrm
В отличие от систем Unix, где Ansible использует SSH для связи с удаленными хостами, с Windows это совсем другая история. Для связи с хостами Windows вам необходимо установить Winrm.
Чтобы установить WinRM, еще раз используйте инструмент pip, как показано:
# pip install pywinrm
Часть 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 от имени администратора.
Перейдите к месту сценария и запустите его. В этом случае мы перешли в папку на рабочем столе, где сохранили скрипт. Затем продолжите и выполните сценарий WinRM на хосте WIndows:
.\ConfigureRemotingForAnsible.ps1
Это займет около минуты, и вы должны получить результат, показанный ниже. Выходные данные показывают, что WinRM успешно установлен.
Часть 3: Подключение к хосту Windows из Ansible Control Node
Чтобы проверить подключение к узлу Windows 10, выполните команду:
# ansible winhost -m win_ping
Выходные данные показывают, что мы действительно установили соединение с удаленным хостом 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
Сохраните и закройте файл yml. Затем запустите playbook, как показано
# ansible-playbook chocolatey.yml
Результатом является указатель, что все прошло хорошо. На этом мы завершаем тему о том, как управлять хостом Windows с помощью Ansible.