📜 Понимание основных компонентов Ansible – часть 1

by itisgood

The Red Hat Certified Specialist in Ansible Automation exam (EX407) – это новая сертификационная программа Red Hat, которая проверяет ваши навыки использования Ansible для автоматизации конфигурации систем и приложений.

Серия будет называться «The Red Hat Certified Specialist in Ansible Automation exam (EX407)» и охватывает следующие цели экзамена на основе Red Hat Enterprise Linux 7.5 и Ansible 2.7, которые мы собираемся охватить в этой серии Ansible:

Для просмотра вариантов и регистрации на экзамен в вашей стране, посетите страницу экзамена Ansible Automation.

В этой первой части серии Ansible мы обсудим некоторый базовый обзор основных компонентов в Ansible.

Понимание основных компонентов Ansible –

Ansible – это бесплатная платформа автоматизации с открытым исходным кодом от RedHat, которая позволяет вам управлять несколькими серверами и управлять ими из одного центрального местоположения.

Его особенно идеально использовать, когда у вас есть несколько повторяющихся задач, которые необходимо выполнить.

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

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

Конечно, есть и другие альтернативы Ansible, такие как Puppet, Chef и Salt.

☸️ Полный список инструментов DevOps

Тем не менее, Ansible предпочтительнее в том плане, потому что он прост в использовании и прост в освоении.

Почему его так легко изучить, спросите вы?

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

YAML использует протокол SSH для связи с удаленными серверами, в отличие от других платформ автоматизации, которым для связи с ними требуется установить агент на удаленных узлах.

Прежде чем мы начнем работать с Ansible, важно, чтобы вы ознакомились с некоторыми основными терминологиями, чтобы вы не растерялись и не запутались по мере нашего продвижения вперед.

Inventory

Inventory – это текстовый файл, содержащий список серверов или узлов, которыми вы управляете и настраиваете.

Обычно серверы перечисляются на основе их имен хостов или IP-адресов.

Файл инвентаризации может содержать удаленные системы, определенные их IP-адресами, как показано ниже:

10.200.50.50
10.200.50.51
10.200.50.52
Кроме того, они могут быть перечислены в соответствии с группами.
В приведенном ниже примере серверы размещены в 2 группах – web sevrers и datebases.
Таким образом, на них можно ссылаться по именам их групп, а не по их IP-адресам.
Это еще больше упрощает рабочие процессы.
[webservers]
10.200.50.60
10.200.50.61

[databases]
10.200.50.70
10.200.50.71
Вы можете иметь несколько групп с несколькими серверами, если вы находитесь в большой производственной среде.

Playbook

Playbook – это набор скриптов для управления конфигурацией, которые определяют, как задачи должны выполняться на удаленных хостах или группе хост-машин.

Скрипты или инструкции написаны в формате YAML.

Например, вы можете иметь файл playbook для установки веб-сервера Apache на CentOS 7 и называть его httpd.yml.

Для создания playbook запустите команду.

$ 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=present

 - name: check httpd status
    yum:   name=httpd  state=started
Приведенный выше список воспроизведения устанавливает веб-сервер Apache на удаленных системах, определенных как webservers в файле Inventory.
После установки веб-сервера Ansible позже проверяет, запущен и работает ли веб-сервер Apache.

Модули

Модули – это дискретные единицы кода, используемые в плейбуках для выполнения команд на удаленных хостах или серверах.

Каждый модуль сопровождается аргументом.

Базовым форматом модуля является ключ: значение.

- name: Install apache packages 
    yum:   name=httpd  state=present
В приведенном выше фрагменте кода YAML -name и yum являются модулями.

Plays

Ansible plays – это скрипт или инструкция, определяющая задачу, выполняемую на сервере.

Сборник plays представляет собой плейбук.

Другими словами, playbook представляет собой набор из нескольких plays, каждая из которых четко определяет задачу, которая должна быть выполнена на сервере.

Plays существуют в формате YAML.

Переменные

Если у вас есть опыт программирования, то, скорее всего, вы использовали переменные.

По сути, переменная представляет значение.

Переменная может содержать буквы, цифры и подчеркивания, но ДОЛЖНА всегда начинаться с букв.

Переменные используются, когда инструкции варьируются от одной системы к другой.

Это особенно актуально во время настройки или различных сервисов и функций.

Существует 3 основных типа переменных:

  • Переменные Playbook
  • Переменные Inventory
  • Специальные переменные

В Ansible переменные сначала определяются с помощью переменных 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/path.

Facts

Facts (факты) – это системные свойства, собранные Ansible при запуске playbook на хост-системе.
Свойства включают имя хоста, семейство ОС, тип процессора и ядра процессора.

Чтобы получить представление о количестве фактов, доступных для использования, введите команду.

$ ansible localhost -m setup
Как видите, огромное количество фактов было отображено по умолчанию.
Вы можете дополнительно сузить результаты, используя параметр фильтра, как показано ниже
$ ansible localhost -m setup -a "filter=*ipv4"

Конфигурационные файлы

В Ansible файл конфигурации – это файл, который содержит различные настройки параметров, которые определяют, как работает Ansible.

Файл конфигурации по умолчанию – это файл ansible.cfg, расположенный в каталоге /etc/ansible/.

$ cat /etc/ansible/ansible.cfg

Как вы можете заметить, включены несколько параметров, таких как пути к файлам inventory и библиотекам, пользователь sudo, фильтры плагинов, модули и т. д.

Эти параметры можно настроить, просто закомментировав их и изменив значения.

Заключение

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

Присоединяйтесь к нам в вашей следующей теме.

 

You may also like

Leave a Comment