Понимание основных компонентов Ansible. Часть 1.
Экзамен Red Hat Certified Specialist in Ansible Automation (EX407) — это новая программа сертификации от Red Hat, которая проверяет ваши навыки использования Ansible для автоматизации. настройка систем и приложений.
Серия будет называться «Экзамен на сертифицированного специалиста Red Hat по Ansible Automation (EX407)» и охватывает следующие задачи экзамена на основе Red Hat Enterprise Linux 7.5 и Ansible 2.7, который мы рассмотрим в этой серии статей о Ansible:
Чтобы просмотреть стоимость и зарегистрироваться на экзамен в вашей стране, посетите страницу экзамена Ansible Automation.
В этой Части 1 серии Ansible мы обсудим базовый обзор основных компонентов Ansible.
Понимание основных компонентов Ansible
Ansible — это бесплатная платформа автоматизации с открытым исходным кодом от RedHat, которая позволяет вам управлять несколькими серверами из одного центрального места. Это особенно идеально, когда у вас есть несколько повторяющихся задач, которые необходимо выполнить. Таким образом, вместо того, чтобы входить в каждый из этих удаленных узлов и выполнять свои задачи, вы можете с комфортом делать это из центрального места и с комфортом управлять своими серверами.
Это полезно, если вы хотите обеспечить согласованность при развертывании приложений, уменьшить количество человеческих ошибок и автоматизировать повторяющиеся и несколько рутинные задачи.
Конечно, существуют и другие альтернативы Ansible, такие как Puppet, Chef и Salt. Однако в большинстве случаев предпочтение отдается Ansible, поскольку он прост в использовании и в освоении.
Почему так просто учиться, спросите вы? Это связано с тем, что Ansible использует YAML (еще один язык разметки) в своих заданиях по настройке и автоматизации, которые удобочитаемы для человека и за ними довольно легко следить. YAML использует протокол SSH для связи с удаленными серверами, в отличие от других платформ автоматизации, которые требуют установки агента на удаленных узлах для связи с ними.
Прежде чем мы начнем с Ansible, важно ознакомиться с некоторыми базовыми терминами, чтобы не заблудиться и не запутаться по мере продвижения вперед.
Инвентарь
Инвентаризация – это текстовый файл, содержащий список серверов или узлов, которыми вы управляете и настраиваете. Обычно серверы перечисляются на основе их имен хостов или IP-адресов.
Файл инвентаря может содержать удаленные системы, определенные по их IP-адресам, как показано:
10.200.50.50
10.200.50.51
10.200.50.52
Альтернативно, их можно перечислить по группам. В приведенном ниже примере серверы помещены в две группы: веб-серверы и базы данных. Таким образом, на них можно ссылаться по именам групп, а не по IP-адресам. Это еще больше упрощает рабочие процессы.
[webservers]
10.200.50.60
10.200.50.61
[databases]
10.200.50.70
10.200.50.71
Если вы находитесь в большой производственной среде, вы можете иметь несколько групп с несколькими серверами.
Пособие
Сборник правил – это набор сценариев управления конфигурацией, которые определяют, как задачи должны выполняться на удаленных хостах или в группе хостов. Сценарии или инструкции написаны в формате YAML.
Например, у вас может быть файл playbook для установки веб-сервера Apache в CentOS 7 и назвать его httpd.yml.
Чтобы создать сценарий, выполните команду.
touch playbook_name.yml
Например, чтобы создать сборник сценариев под названием httpd, выполните команду.
touch httpd.yml
Файл YAML начинается с 3 дефисов, как показано ниже. Внутри файла добавьте следующие инструкции.
---
- name: This installs and starts Apache webserver
hosts: webservers
tasks:
- name: Install Apache Webserver
yum: name=httpd state=latest
- name: check httpd status
service: name=httpd state=started
Приведенный выше сборник устанавливает веб-сервер Apache на удаленных системах, определенных как веб-серверы в файле инвентаризации. После установки веб-сервера Ansible позже проверяет, запущен ли и работает ли веб-сервер Apache.
Модули
Модули — это отдельные единицы кода, используемые в сборниках игр для выполнения команд на удаленных хостах или серверах. За каждым модулем следует аргумент.
Базовый формат модуля: ключ: значение.
- name: Install apache packages
yum: name=httpd state=present
В приведенном выше фрагменте кода YAML -name и yum являются модулями.
Игры
Ansible play — это сценарий или инструкция, определяющая задачу, которую необходимо выполнить на сервере. Сборник пьес представляет собой сборник пьес. Другими словами, playbook — это совокупность нескольких пьес, каждая из которых четко оговаривает задачу, которую необходимо выполнить на сервере. Пьесы существуют в формате YAML.
Переменные
Если у вас есть опыт программирования, то, скорее всего, вы использовали переменные. По сути, переменная представляет значение. Переменная может включать буквы, цифры и символы подчеркивания, но ДОЛЖНА всегда начинаться с букв.
Переменные используются, когда инструкции различаются от одной системы к другой. Особенно это актуально при настройке различных сервисов и функций.
Существует 3 основных типа переменных:
- Переменные книги игр
- Переменные инвентаря
- Специальные переменные
В Ansible переменные сначала определяются с помощью vars k, затем следуют имя переменной и значение.
Синтаксис такой, как показано:
vars:
Var name1: ‘My first variable’
Var name2: ‘My second variable’
Рассмотрим код ниже.
- hosts: webservers
vars:
- web_directory:/var/www/html/
В приведенном выше примере здесь используется переменная web_directory, которая указывает ansible создать каталог по пути /var/www/html/.
Факты
Факты — это системные свойства, собранные Ansible при выполнении книги сценариев в хост-системе. Свойства включают имя хоста, семейство ОС, тип ЦП и ядра ЦП, и это лишь некоторые из них.
Чтобы увидеть количество доступных для использования фактов, введите команду.
ansible localhost -m setup
Как видите, по умолчанию отображается огромное количество фактов. Вы можете дополнительно сузить результаты, используя параметр фильтра, как показано.
ansible localhost -m setup -a "filter=*ipv4"
Файлы конфигурации
В Ansible файл конфигурации — это файл, содержащий различные настройки параметров, которые определяют, как работает Ansible. Файлом конфигурации по умолчанию является файл ansible.cfg, расположенный в каталоге /etc/ansible/.
Вы можете просмотреть файл конфигурации, выполнив:
cat /etc/ansible/ansible.cfg
Как вы можете видеть, включено несколько параметров, таких как пути к файлам инвентаря и библиотеки, пользователь sudo, фильтры плагинов, модули и т. д. Эти параметры можно настроить, просто прокомментировав их. out и изменяя содержащиеся в нем значения.
Кроме того, у вас может быть несколько файлов конфигурации, работающих с Ansible, помимо файла конфигурации по умолчанию.
Краткое содержание
Рассмотрев основные компоненты Ansible, мы надеемся, что вы сможете держать их под рукой и выбирать по мере нашего продвижения вперед. Присоединяйтесь к нам в следующей теме.