Ansible

Как создать Ansible Inventory в формате JSON

Как создать Ansible Inventory в формате JSON
По умолчанию файл инвентаризации Ansible использует формат конфигурации INI. Вы также можете использовать формат конфигурации JSON (JavaScript Object Notation) для файлов инвентаризации Ansible.

В этой статье я покажу вам, как использовать формат конфигурации JSON для создания файлов инвентаризации Ansible. Итак, приступим.

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

Если вы хотите попробовать примеры из этой статьи,

1) На вашем компьютере должен быть установлен Ansible.
2) У вас должно быть не менее 6 хостов Linux, настроенных для автоматизации Ansible.

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

Создание каталога проекта:

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

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

Я создал новую директорию проекта json-inventory / в моем ДОМ каталог, как вы можете видеть на скриншоте ниже.

После того, как вы создали новый каталог проекта, откройте его в своем любимом текстовом редакторе или IDE.

В Visual Studio Code перейдите к Файл > Открыть папку… как отмечено на скриншоте ниже.

Теперь выберите каталог проекта json-inventory / и нажмите на ОК.

Каталог проекта должен быть открыт с помощью Visual Studio Code.

Теперь нажмите на Новый файл  и создайте новый файл анзибль.cfg.

Затем введите следующие строки в анзибль.cfg файл.

[по умолчанию]
inventory = hosts.json
host_key_checking = Ложь

Когда вы закончите, нажмите + S чтобы спасти анзибль.cfg файл.

Таким же образом создайте хозяева.json файл. Это файл инвентаризации JSON. Пока оставьте поле пустым. Мы будем работать над этим позже.

Теперь нажмите на Новая папка  и создайте новый каталог пьесы как показано на скриншоте ниже.

Добавление хостов в файл инвентаризации JSON:

В этом разделе я покажу вам, как добавить хосты в файл инвентаря в формате JSON.

в хозяева.json файл инвентаря, вы добавляете все раздел.


"все":

В все раздел, вы добавляете хозяин раздел и добавьте своих хостов.


"все":
"hosts":
"host1": ноль,
"host2": ноль


Например, вы можете добавить хосты vm1.нодекит.ком а также vm2.нодекит.ком в хозяева.json инвентарный файл следующим образом.


"все":
"hosts":
"vm1.нодекит.com ": null,
"vm2.нодекит.com ": null


Когда вы закончите, нажмите + S чтобы спасти хозяева.json файл.

Вы можете проверить, какие хосты доступны в вашем файле инвентаризации, с помощью следующей команды:

$ ansible --list-hosts все

Как видите, хосты, которые я добавил в свой файл инвентаря (vm1.нодекит.ком а также vm2.нодекит.ком) перечислены.

Группировка хостов в файле инвентаризации JSON:

В этом разделе я покажу вам, как группировать хосты в вашем файле инвентаризации JSON.

Группа хостов по умолчанию в Ansible: все. В все в группе есть все хосты из каждой группы (включая хосты из все группа).

Вы добавляете группы узлов сети в дети раздел вашего инвентарного файла JSON.


"все":

"дети":
"группа 1":
,
"group2":



Например, чтобы добавить хосты vm3.нодекит.ком а также vm4.нодекит.ком в сеть группа, и добавить хосты vm5.нодекит.ком а также vm6.нодекит.ком в db group, введите следующие строки в свой файл инвентаризации JSON.


"все":
"hosts":
"vm1.нодекит.com ": null,
"vm2.нодекит.com ": null
,
"дети":
"web":
"hosts":
"vm3.нодекит.com ": null,
"vm4.нодекит.com ": null

,
"db":
"hosts":
"vm5.нодекит.com ": null,
"vm6.нодекит.com ": null




Когда вы закончите, нажмите + S чтобы спасти хозяева.json файл.

Здесь отмеченные линии добавляют хосты vm3.нодекит.ком а также vm4.нодекит.ком в сеть группа.

Отмеченные линии добавляют хосты vm5.нодекит.ком а также vm6.нодекит.ком в db группа.

Теперь вы можете перечислить все доступные хосты в вашем файле инвентаризации JSON с помощью следующей команды:

$ ansible --list-hosts все

Как видите, все хосты из каждой группы (сеть, db, а также все) отображаются.

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

$ ansible --list-hosts веб-сайт

Как видите, все хосты в сеть группы отображаются.

Таким же образом вы можете перечислить все доступные хосты из db group с помощью следующей команды:

$ ansible --list-hosts БД

Как видите, все хосты в db группы отображаются.

Добавление глобальных фактов в файл инвентаризации JSON:

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

Вы можете добавить глобальные факты или глобальные переменные в варс раздел внутри все раздел вашего инвентарного файла JSON следующим образом:


"все":
"hosts":

,
"vars":
"переменная1": "значение1",
"переменная2": "значение2"
,
"дети":
"web":

,
"db":




Например, вы можете добавить глобальные факты / переменные webroot а также индекс в варс раздел вашего инвентарного файла JSON следующим образом:


"все":
"hosts":
"vm1.нодекит.com ": null,
"vm2.нодекит.com ": null
,
"vars":
"webroot": "/ var / www / html",
"index": "index.php "
,
"дети":
"web":
"hosts":
"vm3.нодекит.com ": null,
"vm4.нодекит.com ": null

,
"db":
"hosts":
"vm5.нодекит.com ": null,
"vm6.нодекит.com ": null




Когда вы закончите, нажмите + S чтобы сохранить файл инвентаризации JSON.

Чтобы проверить, работают ли глобальные факты / переменные, я собираюсь создать новую книгу print_vars1.ямл. Цель этого пособия - распечатать факты / переменные с помощью отлаживать модуль Ansible. Это также поможет нам позже понять приоритет фактов / переменных.

Итак, создайте новую пьесу print_vars1.ямл в твоей пьесы / каталог и введите следующие строки в свой print_vars1.ямл файл.

- хосты: все
пользователь: ansible
задачи:
- имя: Распечатать корневой каталог и индекс
отлаживать:
msg: 'WebRoot webroot и индекс index'

Когда вы закончите, нажмите + S чтобы спасти print_vars1.ямл файл.

Чтобы проверить, работают ли глобальные факты / переменные, запустите print_vars1.ямл playbook следующим образом:

$ ansible-playbook плейбуки / print_vars1.ямл

Плейбук должен успешно работать.

Вернитесь к ЗАДАЧА раздел. Как видите, webroot а также индекс факты / переменные применяются к каждому хосту в моем файле инвентаризации JSON. Итак, глобальные факты / переменные работают.

Добавление групповых фактов в файл инвентаризации JSON:

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

Я собираюсь добавить то же самое webroot а также индекс факты в сеть группа хостов моего инвентарного файла JSON. Ценность этих фактов будет разной. Я сделал это, чтобы вы также могли понять, как работает приоритет фактов / переменных в Ansible.

Чтобы добавить факты webroot а также индекс в сеть группа узлов, добавьте варс раздел в сеть раздел вашего инвентарного файла JSON следующим образом:


"все":
"hosts":
"vm1.нодекит.com ": null,
"vm2.нодекит.com ": null
,
"vars":
"webroot": "/ var / www / html",
"index": "index.php "
,
"дети":
"web":
"hosts":
"vm3.нодекит.com ": null,
"vm4.нодекит.com ": null
,
"vars":
"webroot": "/ web / public_html",
"index": "index.html "

,
"db":
"hosts":
"vm5.нодекит.com ": null,
"vm6.нодекит.com ": null




Когда вы закончите, нажмите + S чтобы сохранить файл инвентаризации JSON.

Чтобы проверить факты, запустите print_vars1.ямл playbook следующим образом:

$ ansible-playbook плейбуки / print_vars1.ямл

Как видите, групповые факты webroot а также индекс доступны только для хозяев vm3.нодекит.ком а также vm4.нодекит.ком, хозяева в сеть группа.

Также обратите внимание, что групповые факты (webroot а также индекс) заменили глобальные факты (webroot а также индекс). Итак, вы можете сказать, что групповые факты имеют более высокий приоритет, чем глобальные.

Добавление фактов хоста в файл инвентаризации JSON:

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

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

Чтобы добавить факты о хосте, замените ноль с фактами вашего хоста в файле инвентаризации JSON следующим образом:

"hosts":
"host1":
"var1": "значение1",
"var2": "значение2",
,
"host2":
"var2": "значение3",
"var3": "значение4",

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


"все":
"hosts":
"vm1.нодекит.com ": null,
"vm2.нодекит.com ": null
,
"vars":
"webroot": "/ var / www / html",
"index": "index.php "
,
"дети":
"web":
"hosts":
"vm3.нодекит.com ": null,
"vm4.нодекит.com ": null
,
"vars":
"webroot": "/ web / public_html",
"index": "index.html "

,
"db":
"hosts":
"vm5.нодекит.com ":
"index": "index.ру "
,
"vm6.нодекит.com ": null




Когда вы закончите, нажмите + S чтобы сохранить файл инвентаризации JSON.

Чтобы проверить доступные факты, запустите print_vars1.ямл playbook следующим образом:

$ ansible-playbook плейбуки / print_vars1.ямл

Как видите, индекс факт доступен только для vm5.нодекит.ком хозяин.

Также обратите внимание, что основной факт заменил глобальный факт. Факты / переменные хоста имеют наивысший приоритет в Ansible. Таким образом, основные факты / переменные заменят групповые факты / переменные и глобальные факты / переменные.

Заключение:

В этой статье я показал вам, как создать файл инвентаризации Ansible в формате JSON. Я показал вам, как добавлять хосты, добавлять группы хостов, добавлять глобальные факты, добавлять факты групп и добавлять факты хостов в ваш файл инвентаризации в формате JSON.

Shadow of the Tomb Raider для Linux Учебное пособие
Shadow of the Tomb Raider - двенадцатое дополнение к серии Tomb Raider - франшизе приключенческой игры, созданной Eidos Montreal. Игра была очень хоро...
Как увеличить FPS в Linux?
FPS означает Кадров в секунду. Задача FPS - измерить частоту кадров при воспроизведении видео или во время игры. Проще говоря, количество непрерывных ...
Лучшие игры Oculus App Lab
Если вы владелец гарнитуры Oculus, вы должны знать о загрузке неопубликованных приложений. Боковая загрузка - это процесс установки на гарнитуру содер...