Отговорни

Как да изградим отговорен списък в JSON формат

Как да изградим отговорен списък в JSON формат
По подразбиране файлът на Ansible опис използва INI конфигурационен формат. Можете също да използвате конфигурационния формат JSON (JavaScript Object Notation) за файлове с инвентаризация Ansible.

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

Предпоставки:

Ако искате да изпробвате примерите от тази статия,

1) Трябва да имате инсталиран Ansible на вашия компютър.
2) Трябва да имате поне 6 хоста на Linux, конфигурирани за Ansible автоматизация.

В LinuxHint има много статии, посветени на Инсталиране на Ansible и конфигуриране на хостове за Ansible автоматизация. Можете да ги проверите, ако е необходимо.

Създаване на директория на проекти:

В тази статия ще използвам кода на Visual Studio за редактиране на конфигурационния файл Ansible, файла на инвентара и книгите за игра. Можете да използвате всеки редактор или IDE, който искате.

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

Създадох нова директория на проекта json-опис / в моето У ДОМА директория, както можете да видите на екранната снимка по-долу.

След като създадете нова директория на проекта, отворете я с любимия си текстов редактор или IDE.

В Visual Studio Code отидете на Файл > Отворена папка… както е отбелязано на екранната снимка по-долу.

Сега изберете директорията на проекта json-опис / и кликнете върху Добре.

Директорията на проекта трябва да се отвори с Visual Studio Code.

Сега кликнете върху Нов файл  и създайте нов файл ансибъл.cfg.

След това въведете следните редове в ансибъл.cfg файл.

[по подразбиране]
инвентар = хостове.json
host_key_checking = Невярно

След като приключите, натиснете + С за да запазите ансибъл.cfg файл.

По същия начин създайте a домакини.json файл. Това е JSON инвентарен файл. Засега го оставете празно. Ще работим по него по-късно.

Сега кликнете върху Нова папка  и създайте нова директория книги за игри както е показано на екранната снимка по-долу.

Добавяне на хостове към файла с инвентара JSON:

В този раздел ще ви покажа как да добавите хостове към вашия инвентарен файл във формат JSON.

В домакини.json инвентарен файл, добавяте всичко раздел.


"всичко":

В всичко раздел, добавяте a домакин и добавете своите хостове.


"всичко":
"hosts":
"host1": нула,
"host2": нула


Например можете да добавите хостове vm1.нодеките.com и vm2.нодеките.com в домакини.json инвентарен файл, както следва.


"всичко":
"hosts":
"vm1.нодеките.com ": нула,
"vm2.нодеките.com ": нула


След като приключите, натиснете + С за да запазите домакини.json файл.

Можете да проверите кои хостове са налични във вашия инвентарен файл със следната команда:

$ ansible --list-хоства всички

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

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

В този раздел ще ви покажа как да групирате хостове във вашия JSON инвентарен файл.

Групата по подразбиране в Ansible е всичко. The всичко group има всички хостове от всяка група (включително хостовете от всичко група).

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


"всичко":
..
"деца":
"group1":
,
"group2":



Например, за да добавите хостовете vm3.нодеките.com и vm4.нодеките.com в уеб група и да добавите хостовете vm5.нодеките.com и vm6.нодеките.com в db група, въведете следните редове във вашия JSON инвентарен файл.


"всичко":
"hosts":
"vm1.нодеките.com ": нула,
"vm2.нодеките.com ": нула
,
"деца":
"web":
"hosts":
"vm3.нодеките.com ": нула,
"vm4.нодеките.com ": нула

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




След като приключите, натиснете + С за да запазите домакини.json файл.

Тук маркираните редове добавят хостовете vm3.нодеките.com и vm4.нодеките.com в уеб група.

Маркираните редове добавят хостовете vm5.нодеките.com и vm6.нодеките.com в db група.

Сега можете да изброите всички налични хостове във вашия JSON инвентарен файл със следната команда:

$ ansible --list-хоства всички

Както можете да видите, всички домакини от всяка група (уеб, db, и всичко) се показват.

За да изброите наличните хостове от уеб само група, изпълнете следната команда:

$ ansible --list-hosts уеб

Както можете да видите, всички домакини в уеб група се показват.

По същия начин можете да изброите всички налични хостове от db група със следната команда:

$ ansible --list-hosts db

Както можете да видите, всички домакини в db група се показват.

Добавяне на глобални факти във файла с инвентара JSON:

В Ansible променливите също се наричат ​​факти. Глобални факти или глобални променливи са достъпни от всеки хост на всяка група във вашия JSON инвентарен файл. В този раздел ще ви покажа как да добавяте глобални факти или глобални променливи в ansible.

Можете да добавите глобални факти или глобални променливи в варира раздел вътре всичко раздел на вашия JSON инвентарен файл, както следва:


"всичко":
"hosts":
..
,
"vars":
"променлива1": "стойност1",
"променлива2": "стойност2"
,
"деца":
"web":
..
,
"db":
..



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


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

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




След като приключите, натиснете + С за да запазите JSON инвентарния файл.

За да проверя дали глобалните факти / променливи работят, ще създам нова книга за игри print_vars1.ямъл. Целта на тази книга е да отпечата факти / променливи с помощта на отстраняване на грешки модул на Ansible. По-късно ще ни помогне да разберем приоритет на факти / променливи.

Така че, създайте нова книга за игри print_vars1.ямъл във вашия книги за игри / директория и въведете следните редове във вашия print_vars1.ямъл файл.

- домакини: всички
потребител: ansible
задачи:
- name: Отпечатва уеб root и индекс
отстраняване на грешки:
msg: 'WebRoot webroot и индекс index'

След като приключите, натиснете + С за да запазите print_vars1.ямъл файл.

За да проверите дали глобалните факти / променливи работят, стартирайте print_vars1.ямъл playbook, както следва:

$ ansible-playbook playbooks / print_vars1.ямъл

Книгата за игри трябва да работи успешно.

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

Добавяне на групови факти във файла с инвентара JSON:

Можете да добавяте факти / променливи и за конкретна група хостове. В този раздел ще ви покажа как да добавите групови факти / променливи във вашия JSON инвентарен файл.

Ще добавя същото webroot и индекс факти в уеб хост група на моя JSON инвентарен файл. Стойността на тези факти ще бъде различна. Направих го, за да можете също така да разберете как работи фактите / променливия приоритет в Ansible.

За да добавите фактите webroot и индекс в уеб група домакин, добавете a варира раздела в уеб раздел на вашия JSON инвентарен файл, както следва:


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

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




След като приключите, натиснете + С за да запазите JSON инвентарния файл.

За да проверите фактите, стартирайте print_vars1.ямъл playbook, както следва:

$ ansible-playbook playbooks / print_vars1.ямъл

Както можете да видите, групата факти webroot и индекс са достъпни само за домакините vm3.нодеките.com и vm4.нодеките.com, домакините в уеб група.

Също така обърнете внимание, че груповите факти (webroot и индекс) замени глобалните факти (webroot и индекс). Така че, можете да кажете, че груповите факти имат по-голям приоритет от глобалните факти.

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

Можете да добавяте специфични за хоста факти / променливи и във вашия JSON инвентарен файл. В този раздел ще ви покажа как да добавите специфични за хоста факти / променливи във вашия JSON инвентарен файл.

За глобални или групови факти сме запазили стойността на хостовете нула.

За да добавите факти за хоста, заменете нула с фактите на вашия хост във файла с инвентара JSON, както следва:

"hosts":
"host1":
"var1": "стойност1",
"var2": "стойност2",
,
"host2":
"var2": "стойност3",
"var3": "стойност4",

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


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

,
"db":
"hosts":
"vm5.нодеките.com ":
"index": "индекс.пи "
,
"vm6.нодеките.com ": нула




След като приключите, натиснете + С за да запазите JSON инвентарния файл.

За да проверите наличните факти, стартирайте print_vars1.ямъл playbook, както следва:

$ ansible-playbook playbooks / print_vars1.ямъл

Както можете да видите, индекс фактът е достъпен само за vm5.нодеките.com домакин.

Също така забележете, че фактът на хоста замести глобалния факт. Фактите / променливите на хоста имат най-голям приоритет в Ansible. И така, хост фактите / променливите ще заменят груповите факти / променливи и глобални факти / променливи.

Заключение:

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

Преглед на безжична мишка на Microsoft Sculpt Touch
Наскоро прочетох за Microsoft Sculpt Touch безжична мишка и реших да я купя. След като го използвах известно време, реших да споделя опита си с него. ...
Екранен тракпад и указател на мишката на AppyMouse за таблети с Windows
Потребителите на таблети често пропускат показалеца на мишката, особено когато са привични да използват лаптопите. Смартфоните и таблетите със сензоре...
Средният бутон на мишката не работи в Windows 10
The среден бутон на мишката ви помага да превъртате дълги уеб страници и екрани с много данни. Ако това спре, добре ще свършите да използвате клавиату...