Ansible Advanced Host List Inventory

Ansible Advanced Host List Inventory



Используя один из новейших методов управления, Ansible, мы представляем, как мы выводим список всех отслеживаемых хостов на устройстве. В Ansible мы используем плагин «inventory» для вывода списка всех хостов в сети.

Крайне важно иметь список всех ваших хост-компьютеров в Ansible. Поддержание порядка в файле инвентаризации так же важно, как и поддержание плейбуков или задач, потому что вы будете постоянно находиться в состоянии неопределенности и задавать себе несколько вопросов, если ваш файл инвентаря управляется неправильно. В дополнение к вышесказанному, определение необходимых переменных в файле инвентаризации сводит к минимуму содержание задачи в плейбуках и ускоряет интерпретацию. Существует группа переменных, которые можно объявить как в ваших плейбуках, так и в файлах инвентаризации Ansible, которые отвечают за подключение и настройку поведения подключения к хост-компьютеру.







Предпосылки:

Ниже приведены требования перед реализацией команды host list inventory в Ansible:



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

Пример: Инвентаризация списка хостов на машине

Вот пример, который мы реализуем в инструменте Ansible для проверки или определения списка хостов. Для этого мы сделаем этот пример на разных этапах, чтобы мы могли легко понять работу и реализацию этого руководства. Ниже приведены шаги:



Шаг 1. Проверьте список хостов по умолчанию на целевом удаленном хост-устройстве.





Во-первых, мы проверяем, сколько хостов находится в инвентаре инструмента Ansible. Для этого мы используем оператор «ansible» с «-list-hosts», чтобы мы могли отображать в инвентаре обрабатываемые узлы по умолчанию.

[ корень @ Мастер Ансибл ] # доступны все --list-hosts



Вот вывод после написания предыдущей команды:

Терминал Ansible отображает «0 хостов», как вы можете видеть в предоставленном ответе, потому что мы не объявляли инвентаризацию. Мы создаем инвентарь, чтобы перечислить инвентарь хоста в терминале, прежде чем решать эту проблему.

Инвентарь по умолчанию:

Когда мы устанавливаем Ansible в программное обеспечение, Ansible создает файл инвентаризации, который можно найти, написав в терминале следующий оператор:

[ корень @ Мастер Ансибл ] # sudo nano /etc/ansible/hosts

Результат генерируется, когда мы пишем предыдущий оператор. Затем он просит вас ввести пароль:

В этом снимке файл хостов Ansible по умолчанию предоставляет информацию о несгруппированных хостах и ​​хостах группы веб-серверов. Эти хосты включают URL-адреса и различные IP-адреса.

Шаг 2. Определите пользовательский инвентарь в Ansible

В Ansible мы также можем определить наш инвентарь, написав несколько операторов в терминале Ansible. Определение инвентаризации при запуске операторов и плейбуков — это мудрое решение, которое предотвращает конфликты хостов и сбои при подключении к хостам.

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

[ корень @ Мастер Ансибл ] # нано hosts.yml

После написания предыдущего оператора инвентаризация создается и запускается в новом терминале Ansible с заголовком «hosts.yml». Затем мы перечисляем целевые хосты один за другим в инвентаре. Самый первый хост, к которому мы подключаемся, — это хост Linux. Мы предоставляем IP-адрес хоста Linux, пользователя Ansible, пароль Ansible, тип подключения и номер порта Ansible. Мы также делаем то же самое со вторым целевым хостом. Второй хост, который мы используем, — это хост Ansible. Все хосты, которые мы перечислили, находятся под параметром Ansible в инвентаре.

Доступный:
хосты:
Linux_хост:
доступный_хост: 192.168.3.229
ansible_user: корень
доступный_пароль: tpstps_22
доступное_соединение: ssh
доступный_порт: 22

Ansible_Host:
доступный_хост: 192.168.7.10
ansible_user: ирис
ansible_password: TpsTps_1
доступное_соединение: ssh
доступный_порт: 22

После создания файла инвентаризации и предоставления в нем хостов мы завершаем файл инвентаризации и возвращаемся к основному терминалу Ansible.

Шаг 3: Создайте Playbook в Ansible

Затем мы создаем playbook в инструменте Ansible, чтобы определить задачи. Для этого пишем в главном терминале Ansible следующую команду:

[ корень @ Мастер Ансибл ] # нано ansible_advanced_inventory.yml

Теперь playbook запускается в новом терминале. Во-первых, мы пишем название playbook. В следующей строке мы указываем целевой хост. Мы используем опцию сбора фактов, которая используется для получения всей информации о хостах. Но здесь мы передаем «нет», что означает, что мы не хотим получать все данные хостов.

Далее мы перечисляем задачи в playbook. Первая задача используется для отображения целевого хоста с именем хоста. В следующей задаче мы печатаем результаты хоста.

- имя: Ansible Advanced Host Inventory
хосты: Ansible [ 0 ]
собрать_факты: нет
задания:

- название: получить имя хоста управляемого узла
оболочка: 'имя хоста'
регистрация: результат

- название: Печать имя хоста
отлаживать:
сообщение: '{{результат.stdout}}'

Теперь мы хотим запустить плейбук вместе с файлом инвентаря. Итак, мы сначала заканчиваем playbook. Ниже приведен оператор, который мы используем для запуска команды:

[ корень @ Мастер Ансибл ] # ansible-playbook ansible_advanced_inventory.yml –i host.yml

Ниже приведен выходной дисплей, который показывает, что соединение установлено успешно. Поскольку мы передали Ansible[0] в плейбуке, в выводе отображается первый хост:

Заключение

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