Отговорни

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

Как да използвам отговорни потребителски факти
Фактите са като променливи в Ansible. Ansible генерира много факти, в зависимост от хоста, който автоматизира. Ако имате нужда, можете също да дефинирате персонализирани факти / променливи в Ansible.

Можете да дефинирате три вида потребителски факти в Ansible.

1) Общи факти: Тези факти са достъпни от всеки хост във вашия инвентарен файл.
2) Групови факти: Тези факти са достъпни само от определен набор от хостове или група от хостове.
3) Факти за домакините: Тези факти са достъпни само от определен хост.

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

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

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

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

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

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

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

За да създадете директория на проекта потребителски факти / във вашия У ДОМА директория, изпълнете следната команда:

$ mkdir -pv потребителски факти / playbooks, host_vars, group_vars

Сега отидете до потребителски факти / директория, както следва:

$ cd потребителски факти /

Създайте конфигурационен файл Ansible ансибъл.cfg в директорията на вашия проект, както следва:

$ nano ansible.cfg

Въведете в следващите редове вашия ансибъл.cfg файл.

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

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

Сега създайте Ansible инвентарен файл домакини в директорията на вашия проект, както следва:

$ nano домакини

Въведете следните редове във вашия домакин инвентарен файл.

vm1.нодеките.com
vm2.нодеките.com
[уеб]
vm3.нодеките.com
vm4.нодеките.com
[база данни]
vm [5: 6].нодеките.com

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

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

$ ansible all --list-hosts

Както можете да видите, аз имам шест хоста в моя инвентарен файл.

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

$ ansible web --list-hosts

Както можете да видите, имам два домакина (vm3.нодеките.com и vm4.нодеките.com) в уеб група от моето инвентарно досие.

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

База данни на $ ansible --list-hosts

Както можете да видите, имам два домакина (vm5.нодеките.com и vm6.нодеките.com) в база данни група от моето инвентарно досие.

Работа с отговорни глобални факти:

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

Първо отворете домакин инвентарен файл със следната команда:

$ nano домакини

Сега добавете маркираните редове във вашия домакин инвентарен файл. След като приключите, натиснете + х следван от Y и за да запазите файла.

'

Добавяте глобални факти в всички: вар раздел. Тук добавих web_url глобален факт.

Сега създайте нова книга за игри print_global_fact.ямъл в книги за игри / директория, както следва:

$ nano playbooks / print_global_fact.ямъл

След това въведете следните редове в print_global_fact.ямъл файл.

- домакини: всички
потребител: ansible
задачи:
- name: Отпечатайте стойността на глобалния факт 'web_url'
отстраняване на грешки:
msg: 'Уеб URL: web_url'

Целта на тази книга е да отпечата web_url глобален факт.

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

Сега стартирайте print_global_fact.ямъл playbook, както следва:

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

Както можете да видите, всички хостове в моя инвентарен файл имат достъп до глобалния факт web_url.

Можете също да добавите глобални факти в отделен файл. По този начин можете да поддържате файла с инвентара чист. Нека да видим как да го направим.

Първо, нека премахнем глобалните факти от домакин инвентарен файл.

$ nano домакини

Сега премахнете маркираните редове от инвентарния файл и натиснете + х, следван от Y и за да запазите инвентарния файл.

След това създайте нов файл всичко в group_vars / директория, както следва:

$ nano group_vars / всички

Да добавим глобалния факт web_url, въведете следния ред в group_vars / всички файл.

web_url: https: // www.linuxhint.com

След като приключите, натиснете + х следван от Y и за да запазите group_vars / всички файл.

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

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

Както можете да видите, всички хостове в моя инвентарен файл имат достъп до глобалния факт web_url.

Работа с Ansible Group Facts:

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

Първо отворете домакин инвентарен файл със следната команда:

$ nano домакини

Ако имате група домакин група1, след това добавяте групови факти / променливи за тази група хостове в група1: вар раздел от инвентарния файл.

[група1]
..
[група1: варира]
променлива1 = стойност1
променлива2 = стойност2

Например, за да добавите груповите факти / променливи име на домейн и database_backends за уеб хост група, можете да въведете маркираните редове във вашия инвентарен файл.

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

За да отпечатате и тествате дали можем да осъществим достъп до груповите факти, създайте нова книга за игри print_group_facts.ямъл в книги за игри / директория, както следва:

$ nano playbooks / print_group_facts.ямъл

Въведете следните редове във вашия print_group_facts.ямъл файл.

- домакини: уеб
потребител: ansible
задачи:
- име: Отпечатайте групови факти
отстраняване на грешки:
msg: 'Име на домейн: domain_name База данни на базата данни: database_backend'

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

Сега стартирайте print_group_facts.ямъл playbook, както следва:

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

Както можете да видите, домакините в уеб групата има достъп до име на домейн и database_backend групирайте факти / променливи.

Сега, нека изчистим файла с инвентара и ще видим как да добавим групови факти / променливи в отделен файл.

Първо отворете домакин инвентарен файл, както следва:

$ нано факти

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

Тъй като добавяме групови променливи за уеб хост група, създайте нов файл уеб (същото като името на групата) в group_vars / директория, както следва:

$ nano group_vars / web

За да добавите груповите факти име на домейн и database_backend за уеб хост група, добавете следните редове в group_vars / web файл.

име на домейн: уеб.linuxhint.com
database_backend: pgsql

След като приключите, натиснете + х следван от Y и за да запазите group_vars / web файл.

За да проверите дали хостовете в уеб групата има достъп до груповите факти, стартира print_group_facts.ямъл playbook, както следва:

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

Както можете да видите, домакините в уеб групата има достъп до име на домейн и database_backend групирайте факти / променливи.

Работа с фактите на Ansible Host:

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

Първо отворете домакин инвентарен файл със следната команда:

$ nano домакини

Можете да добавите факти / променливи за хоста след DNS името или IP адреса на хоста във вашия инвентарен файл, както следва:

www.домейн1.com променлива1 = стойност1 променлива2 = стойност2
192.168.22.2 променлива1 = стойност3 променлива2 = стойност4

Например можете да добавите факти / променливи на хоста име на домейн и database_backend за домакините vm3.нодеките.com и vm4.нодеките.com, както е отбелязано на екранната снимка по-долу.

Забележете, че стойността на име на домейн и database_backend фактите / променливите са различни за всеки хост.

След като приключите с добавянето на хост факти / променливи, натиснете + х, следван от Y и за да запазите домакин инвентарен файл.

Тъй като добавих същите факти / променливи, както в примера за групови факти / променливи, можем да използваме print_group_facts.ямъл playbook, за да тествате и достъпността на тези факти / променливи.

Стартирайте print_group_facts.ямъл playbook, както следва:

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

Както можете да видите, фактите / променливите на хоста са достъпни за посочения от тях хост. Стойностите са различни и за всеки хост.

Тъй като всеки от хостовете е в отделен ред в моя инвентарен файл, бих могъл лесно да добавя факти / променливи хост в моя инвентарен файл. Но ако използвате диапазони за дефиниране на хостове във вашия инвентарен файл, както е отбелязано на екранната снимка по-долу, не можете да добавяте факти / променливи на хоста като този.

Можете да добавите факти / променливи на хоста в отделен файл, точно както сте направили за глобалните и групови факти / променливи.

За да добавите факти / променливи за хоста за vm5.нодеките.com хост, създайте нов файл vm5.нодеките.com (същото като DNS името на хоста) в host_vars / директория, както следва:

$ nano host_vars / vm5.нодеките.com

Можете да добавите хост факти / променливи db_port и db_name за домакина vm5.нодеките.com със следващите редове.

db_port: 3306
db_name: demo1

След като приключите, натиснете + х следван от Y и за да запазите vm5.нодеките.com файл.

По същия начин, за да добавите факти / променливи за хоста vm6.нодеките.com, създайте нов файл vm6.нодеките.com в host_vars / директория, както следва:

$ nano host_vars / vm6.нодеките.com

Можете да добавите факти / променливи на хоста db_port и db_name за домакина vm6.нодеките.com със следващите редове.

db_port: 8877
db_name: app1

След като приключите, натиснете + х следван от Y и за да запазите vm6.нодеките.com файл.

За да отпечатате и тествате дали можем да получим достъп до фактите / променливите на хоста, създайте нова книга за игри print_host_facts.ямъл в книги за игри / директория, както следва:

$ nano playbooks / print_host_facts.ямъл

Сега въведете следните редове в print_host_facts.ямъл файл.

- хостове: база данни
потребител: ansible
задачи:
- name: Отпечатайте факти за хоста
отстраняване на грешки:
msg: 'Име на базата данни: db_name Порт на базата данни: db_port'

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

За да проверите дали хостът vm5.нодеките.com и vm6.нодеките.com може да има достъп до фактите / променливите на хоста, да стартира print_host_facts.ямъл playbook, както следва:

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

Както можете да видите, домакините vm5.нодеките.com и vm6.нодеките.com има достъп до db_name и db_port хост факти / променливи.

Сглобяване на всичко заедно: Предимство на отговорните факти

В този раздел ще говоря за предимството на фактите от променливи / променливи. И така, нека започнем.

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

Отвори домакин инвентарен файл със следната команда:

$ nano домакини

Премахнете маркирания раздел от инвентарния файл.

Ето как трябва да изглежда вашият инвентарен файл в този момент.

Сега добавете маркирания ред във вашия инвентарен файл. Тези редове добавят глобалните факти / променливи fact_scope и пристанище.

След това добавете маркираните редове във вашия инвентарен файл. Тези редове добавят fact_scope и пристанище факти / променливи за хостовете в база данни група.

Накрая добавете fact_scope и пристанище хост факти / променливи за vm3.нодеките.com и vm4.нодеките.com хостове, както е отбелязано на екранната снимка по-долу.

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

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

$ nano playbooks / fact_precedence.ямъл

Въведете следните редове в факт_прецедент.ямъл файл.

- домакини: всички
потребител: ansible
задачи:
- име: Отпечатайте всички факти
отстраняване на грешки:
msg: 'Обхват на фактите: fact_scope Порт: порт'

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

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

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

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

Забележете, че груповите факти / променливи замениха глобалните факти / променливи (1). Също така забележете, че хост фактите / променливите замениха както груповите, така и глобалните факти / променливи (2).

Фактът / променливата предимство на Ansible е както следва:

Факт за домакин> Групов факт> Глобален факт

Заключение:

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

Топ 10 игри за игра на Ubuntu
Платформата на Windows е една от доминиращите платформи за игри поради огромния процент игри, които се развиват днес, за да поддържат Windows. Може ли...
5 най-добри аркадни игри за Linux
В днешно време компютрите са сериозни машини, използвани за игри. Ако не можете да получите новия висок резултат, ще разберете какво имам предвид. В т...
Битка за Уеснот 1.13.6 Разработка освободена
Битка за Уеснот 1.13.6, издаден миналия месец, е шестата версия за разработка в 1.13.x серия и предоставя редица подобрения, най-вече на потребителски...