Поиск по сайту:

Понимание основных компонентов 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, мы надеемся, что вы сможете держать их под рукой и выбирать по мере нашего продвижения вперед. Присоединяйтесь к нам в следующей теме.