Главная
Новости
Строительство
Ремонт
Дизайн и интерьер
Полезные советы




19.07.2023


24.03.2023


28.02.2023


29.12.2022


29.12.2022


23.12.2022





Яндекс.Метрика





Ansible

25.05.2023

Ansible — система управления конфигурациями, написанная на языке программирования Python, с использованием декларативного языка разметки для описания конфигураций. Применяется для автоматизации настройки и развёртывания программного обеспечения. Обычно используется для управления Linux-узлами, но Windows также поддерживается. Поддерживает работу с сетевыми устройствами, на которых установлен Python версии 2.4 и выше по SSH- или WinRM-соединению.

Автор платформы — Михаэль Дехан (Michael DeHaan), ранее разработавший серверную систему развёртывания программного обеспечения Cobbler и соавтор фреймворка удалённого администрирования Func.

Входит в состав большинства дистрибутивов Linux. Есть пакеты для Solaris, FreeBSD и macOS. Развитием и коммерциализацией платформы занималась компания Ansible, 16 октября 2015 года она была поглощена корпорацией Red Hat.

Наименование взято от вымышленной системы мгновенной гиперпространственной связи из фильма «Игра Эндера», слово, её обозначающее, в свою очередь, заимствовано из романа Урсулы Ле Гуин «Мир Роканнона» (1966).

Архитектура

Наряду с Chef, Puppet и SaltStack считается одной из наиболее популярных систем управления конфигурациями для Linux. Главное отличие Ansible от аналогов — не нужна установка агента или клиента на целевые системы.

Пользователь Ansible создаёт определённые сценарии («плейбуки», англ. playbooks) в формате YAML с описанием требуемых состояний управляемой системы. Сценарий — это описание состояния ресурсов системы, в котором она должна находиться в конкретный момент времени, включая установленные пакеты, запущенные службы, созданные файлы и многое другое. Ansible проверяет, что каждый из ресурсов системы находится в ожидаемом состоянии и пытается исправить состояние ресурса, если оно не соответствует ожидаемому.

Для выполнения задач используется система модулей. Каждая задача представляет собой имя задачи, используемый модуль и список параметров, характеризующих задачу. Система поддерживает переменные, фильтры обработки переменных (поддержка осуществляется библиотекой Jinja2), условное выполнение задач, параллелизацию, шаблоны файлов. Адреса и настройки целевых систем содержатся в файлах «инвентаря» (inventory). Поддерживается группирование. Для реализации набора сходных задач существует система ролей.

Ansible Tower

Ansible Tower — графический интерфейс для управления и мониторинга работы Ansible. Является платным продуктом, однако в 2017 году, после перехода активов в RedHat, исходные коды Tower были опубликованы под свободной лицензией Apache. Новый проект получил название AWX Project, который ныне является кодовой основой для коммерческого продукта Tower.

В продукте организована визуальная панель состояния, ведутся списки доступа, группы и роли пользователей, обеспечивается централизованное журналирование и аудит.

Модули

Категории модулей и выполняемые ими задачи:

  • Cloud: поддержка Amazon EC2, S3, Azure, Cloudstack, Digital Ocean, Rackspace, а также средств контейнеризации (Docker, LXC) и виртуализации (OpenStack, VMware);
  • Clustering: поддержка Consul, ZooKeeper, Kubernetes;
  • Command: выполняют консольные команды и сценарии командной строки;
  • Database: поддержка СУБД MySQL, PostgreSQL, Vertica, MongoDB, Redis, Riak;
  • File: работа с файлами — копирование, синхронизация, модификация, проверка, архивирование;
  • Inventory: работа с именами хостов или их IP-адресами;
  • Messaging: поддержка RabbitMQ;
  • Monitoring: поддержка систем мониторинга DataDog, Nagios, Zabbix и ряда других;
  • Network: работа с сетевым оборудованием и ПО F5 BIG-IP, Cisco IOS/NXOS, Juniper JunOS, OpenSwitch, Cumulus Linux, Mikrotik RouterOS;
  • Notification: отсылаются сообщения в Campfire, HipChat, Jabber, Pushbullet, Slack, через e-mail и SMS;
  • Packaging: работа с менеджерами пакетов apt, FreeBSD Ports, Gentoo, homebrew, pacman, opkg, Red Hat software channels, yum, xbps, zypper;
  • Source Control: работа с системами контроля версий git, mercurial, subversion;
  • System: работа с компонентами Linux/Unix систем — cron, iptables, LVM, SELinux, sshd, ZFS;
  • Utilities: реализуют внутреннюю логику сценариев;
  • Web Infrastructure: работа с Apache, Django, JBoss, Jira;
  • Windows: работа с компонентами Windows, в том числе IIS, Windows Firewall, реестром.

Имя:*
E-Mail:
Комментарий: