2017-01-31 5 views
1

Как шеф-код копирует ваш код агентам, может ли Ansible скопировать код или просто преобразовать его в команды и выполнить их?Имеет ли Ansible код копирования для агентов? Как он выполняет эти команды?

Я проверил много документов, но не нашел хорошего документа, объясняющего этот рабочий процесс.

ответ

2

Вкратце: для каждой задачи Необязательные пакеты требуемых модулей и библиотек плюс входные данные в крошечный пакет, доставляются во временное место на целевой системе (обычно через ssh), выполняются там и очищаются после себя.

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

Подробнее о рабочем процессе в руководстве разработчика here.

1

для целевых машин, работающих под управлением Unix/Linux, управляющая машиной:

  1. открывающего SSH сессию к целевому узлу, выполняет основные препараты (например, создает временные каталогов);

  2. создает настраиваемые сценарии (в основном Python) и передает их с использованием SFTP (по умолчанию) или SCP (configurable) в цель;

  3. Наконец, он выполняет скрипты на целевом хосте.

Этот процесс повторяется для каждой отдельной задачи на каждом отдельном хосте (анзибль также могут быть оптимизированы, чтобы оставить открытую сессию SSH для нескольких задач).


В анзибле, основные единицы работ закодированы в modules и определены в (вызывается из) задач.

  • Для большинства модулей логика написана на Python. Независимо от того, использует ли конкретный модуль внешние программы или нет, выполняемые действия завершаются в сценарии Python.

  • Единственным исключением из этого является raw module, который выполняет конкретную команду непосредственно в сеансе SSH.

  • Другой специальный случай - synchronize module, который выполнен на управляющей машине и использует rsync для передачи файлов.


Некоторые модули, которые ориентированы в основном cloud услуги и network устройств, выполняются на локальном хосте (или прокси-сервер) и системы назначения доступа и устройств с их API.

Для целевых компьютеров Windows Ansible подключается к WinRM и запускает сценарии PowerShell на целевой машине через функцию удаленного доступа PowerShell от Windows.