для целевых машин, работающих под управлением Unix/Linux, управляющая машиной:
открывающего SSH сессию к целевому узлу, выполняет основные препараты (например, создает временные каталогов);
создает настраиваемые сценарии (в основном Python) и передает их с использованием SFTP (по умолчанию) или SCP (configurable) в цель;
Наконец, он выполняет скрипты на целевом хосте.
Этот процесс повторяется для каждой отдельной задачи на каждом отдельном хосте (анзибль также могут быть оптимизированы, чтобы оставить открытую сессию SSH для нескольких задач).
В анзибле, основные единицы работ закодированы в modules и определены в (вызывается из) задач.
Для большинства модулей логика написана на Python. Независимо от того, использует ли конкретный модуль внешние программы или нет, выполняемые действия завершаются в сценарии Python.
Единственным исключением из этого является raw
module, который выполняет конкретную команду непосредственно в сеансе SSH.
Другой специальный случай - synchronize
module, который выполнен на управляющей машине и использует rsync
для передачи файлов.
Некоторые модули, которые ориентированы в основном cloud услуги и network устройств, выполняются на локальном хосте (или прокси-сервер) и системы назначения доступа и устройств с их API.
Для целевых компьютеров Windows Ansible подключается к WinRM и запускает сценарии PowerShell на целевой машине через функцию удаленного доступа PowerShell от Windows.