Ansible: различия между версиями

1 байт убрано ,  3 года назад
м
Викификатор
м (Заменён жаргон на научный стиль.)
м (Викификатор)
'''Ansible''' — [[конфигурационное управление|система управления конфигурациями]], написанная на [[Python]], с использованием декларативного [[Язык разметки|языка разметки]] для описания конфигураций. Используется для автоматизации настройки и развертывания программного обеспечения. Обычно используется для управления [[Linux]]-узлами, но [[Windows]] также поддерживается. Поддерживает работу с сетевыми устройствами, на которых установлен Python версии 2.4 и выше по SSH или PowerShell соединению.
 
Автор платформы — Michael DeHaan, ранее разработавший серверную систему развертывания ПО [[Cobbler]] и соавтор фреймворка удаленного администрирования Func. '''Ansible''' входит в состав большинства дистрибутивов Linux. Есть пакеты для [[Solaris]], [[FreeBSD]] и [[MacOS]]. Компания Ansible, Inc осуществляла коммерческую поддержку и сопровождение '''Ansible'''. 16 октября 2015 года Red Hat, Inc объявила о поглощении Ansible, Inc.
 
Слово «Ansible» означает вымышленную систему мгновенной гиперпространственной связи. Эта система была в мире [[Игра Эндера]] [[Орсон Скотт Кард|Орсона С. Карда]], само слово придумано [[Урсула Ле Гуин|Урсулой Ле Гуин]] в романе [[Мир Роканнона]] (1966).
Наряду с [[Chef (программа)|Chef]], [[Puppet]] и [[SaltStack]] считается одной из наиболее популярных систем управления конфигурациями для [[Linux]]. Главное отличие '''Ansible''' от аналогов — не нужна установка агента/клиента на целевые системы.
 
Пользователь Ansible создаёт определенные «плейбуки» (''англ.'' playbook, play - — игра, пьеса, book - — книга) в формате [[YAML]] с описанием требуемых состояний управляемой системы. «Плейбук» — это описание состояния ресурсов системы, в котором она должна находиться в конкретный момент времени, включая установленные пакеты, запущенные службы, созданные файлы и многое другое. Ansible проверяет, что каждый из ресурсов системы находится в ожидаемом состоянии и пытается исправить состояние ресурса, если оно не соответствует ожидаемому.
 
Для выполнения задач используется система модулей. Каждая задача представляет собой имя задачи, используемый модуль и список параметров, характеризующих задачу. Ansible поддерживает переменные, фильтры обработки переменных (поддержка осуществляется библиотекой [[Jinja|Jinja2]]), условное выполнение задач, параллелизацию, шаблоны файлов. Адреса и настройки целевых систем содержатся в файлах «инвентаря» (inventory). Поддерживается группирование. Для реализации набора сходных задач существует система ролей.
* Packaging: работа с менеджерами пакетов [[apt]], [[FreeBSD Ports]], [[Gentoo]], [[Homebrew (система управления пакетами)|homebrew]], [[Pacman (система управления пакетами)|pacman]], [[opkg]], [[Red Hat Enterprise Linux|Red Hat software channels]], [[yum]], [[xbps]], [[zypper]]
* Source Control: работа с системами контроля версий [[git]], [[mercurial]], [[subversion]]
* System: работа с компонентами Linux/Unix систем — [[cron]], [[iptables]], [[LVM]], [[SELinux]], [[Sshd|sshd]], [[zfs]]
* Utilities: реализуют внутреннюю логику плейбуков
* Web Infrastructure: работа с [[Apache HTTP Server|Apache]], [[Django]], [[JBoss]], [[JIRA]]