Ansible Towerдеги Ansible Content Collections инвентаризация плагиндерин колдонуу

IT чөйрөлөрү барган сайын татаалдашып баратат. Мындай шарттарда IT автоматташтыруу тутумунун тармакта бар жана кайра иштетилүүгө тийиш болгон түйүндөр жөнүндө акыркы маалыматка ээ болушу абдан маанилүү. Red Hat Ansible Automation Платформасында бул маселе инвентаризация деп аталган нерсе аркылуу чечилет (жолу) – башкарылуучу түйүндөрдүн тизмелери.

Ansible Towerдеги Ansible Content Collections инвентаризация плагиндерин колдонуу

Эң жөнөкөй түрдө инвентаризация статикалык файл болуп саналат. Бул Ansible менен иштей баштаганда идеалдуу, бирок автоматташтырылган сайын ал жетишсиз болуп калат.

Ошондон улам:

  1. Иштер тынымсыз өзгөрүп турганда, жумуш жүктөмдөрү, анан алар иштеткен түйүндөр келип-кетип турганда, көзөмөлгө алынган түйүндөрдүн толук тизмесин кантип жаңыртасыз жана сактайсыз?
  2. Белгилүү бир автоматташтыруу үчүн түйүндөрдү атайын тандоо үчүн IT инфраструктурасынын компоненттерин кантип классификациялоо керек?

Динамикалык инвентаризация бул суроолордун экөөнө тең жооп берет (динамикалык инвентаризация) – чындыктын булагына шилтеме жасоо менен автоматташтырылган түйүндөрдү издеген скрипт же плагин. Мындан тышкары, динамикалык инвентаризация түйүндөрдү автоматтык түрдө топторго классификациялайт, андыктан сиз конкреттүү Ansible автоматташтыруу үчүн максаттуу системаларды так тандай аласыз.

Инвентаризация плагиндери Ansible колдонуучуга максаттуу түйүндөрдү динамикалык издөө үчүн тышкы платформаларга кирүү мүмкүнчүлүгүн бериңиз жана инвентаризацияны түзүүдө бул платформаларды чындыктын булагы катары колдонуңуз. Ansible булактарынын стандарттык тизмеси AWS EC2, Google GCP жана Microsoft Azure булут платформаларын камтыйт, ошондой эле Ansible үчүн башка көптөгөн инвентаризация плагиндери бар.

Ansible Tower бир катар менен келет инвентаризация плагиндери, алар кутудан тышкары иштейт жана жогоруда саналып өткөн булут платформаларынан тышкары VMware vCenter, Red Hat OpenStack Platform жана Red Hat Satellite менен интеграцияны камсыз кылат. Бул плагиндер үчүн сиз жөн гана максаттуу платформага туташуу үчүн ишеним грамоталарын беришиңиз керек, андан кийин алар Ansible Towerде инвентаризациялык маалыматтардын булагы катары колдонулушу мүмкүн.

Ansible Tower менен камтылган стандарттуу плагиндерден тышкары, Ansible коомчулугу тарабынан колдоого алынган башка инвентаризация плагиндери бар. га өтүү менен Red Hat Ansible мазмун жыйнактары бул плагиндер тиешелүү жыйнактарга киргизиле баштады.

Бул постто биз кардарлар көп учурда CMDBде бардык түзмөктөрү тууралуу маалыматты сактаган популярдуу IT кызматын башкаруу платформасы болгон ServiceNow үчүн инвентаризация плагини менен иштөөнүн мисалын алабыз. Мындан тышкары, CMDB сервер ээлери, тейлөө деңгээли (өндүрүш/өндүрүш эмес), орнотулган жаңыртуулар жана тейлөө терезелери жөнүндө маалымат сыяктуу автоматташтыруу үчүн пайдалуу контекстти камтышы мүмкүн. Ansible инвентаризация плагини ServiceNow CMDB менен иштей алат жана коллекциянын бир бөлүгү болуп саналат кызмат убактысы порталы galaxy.ansible.com.

Git репозиторий

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

Биздин репозиторий чындыгында абдан жөнөкөй:

├── collections
│   └── requirements.yml
└── servicenow.yml

servicenow.yml файлы плагин инвентаризациясынын чоо-жайын камтыйт. Биздин учурда, биз жөн гана биз колдонгубуз келген ServiceNow CMDB таблицасын көрсөтөбүз. Биз ошондой эле түйүн өзгөрмөлөрү катары кошула турган талааларды, ошондой эле биз түзгүбүз келген топтор боюнча белгилүү бир маалыматты орнотобуз.

$ cat servicenow.yml
plugin: servicenow.servicenow.now
table: cmdb_ci_linux_server
fields: [ip_address,fqdn,host_name,sys_class_name,name,os]
keyed_groups:
  - key: sn_sys_class_name | lower
	prefix: ''
	separator: ''
  - key: sn_os | lower
	prefix: ''
	separator: ''

Бул кандайдыр бир жол менен тута турган ServiceNow инстанциясын көрсөтпөгөнүн жана туташуу үчүн эч кандай эсептик дайындарды көрсөтпөгөнүн эске алыңыз. Мунун баарын кийинчерээк Ansible Tower'те конфигурациялайбыз.

File collections/requirements.yml Ansible Tower талап кылынган коллекцияны жүктөп алып, ошону менен керектүү инвентаризация плагинин ала алышы үчүн керек. Болбосо, бул коллекцияны бардык Ansible Tower түйүндөрүбүзгө кол менен орнотуп, тейлөөгө туура келет.

$ cat collections/requirements.yml
---
collections:

- name: servicenow.servicenow

Бул конфигурацияны версияны башкарууга түрткөндөн кийин, биз Ansible Towerде тиешелүү репозиторийге шилтеме жасаган долбоорду түзө алабыз. Төмөндөгү мисал Ansible Tower менен биздин github репозиторийине шилтеме берет. SCM URL дарегине көңүл буруңуз: ал жеке репозиторийге туташуу үчүн каттоо эсебин каттоого, ошондой эле белгилүү бир филиалды, тегди же текшерүү үчүн милдеттенмени көрсөтүүгө мүмкүндүк берет.

Ansible Towerдеги Ansible Content Collections инвентаризация плагиндерин колдонуу

ServiceNow үчүн эсептик дайындарды түзүү

Жогоруда айтылгандай, биздин репозиторийдеги конфигурацияда ServiceNow менен туташуу үчүн эсептик маалыматтар жок жана биз байланыша турган ServiceNow инстанциясы көрсөтүлбөйт. Ошондуктан, бул маалыматтарды орнотуу үчүн, биз Ansible Towerде эсептик дайындарды түзөбүз. Ылайык ServiceNow инвентаризация плагининин документтери, биз туташуу параметрлерин орното турган бир катар чөйрө өзгөрмөлөрү бар, мисалы:

= username
    	The ServiceNow user account, it should have rights to read cmdb_ci_server (default), or table specified by SN_TABLE

    	set_via:
      	env:
      	- name: SN_USERNAME

Бул учурда, эгерде SN_USERNAME чөйрө өзгөрмөсү коюлган болсо, инвентаризация плагини аны ServiceNow менен туташуу үчүн каттоо эсеби катары колдонот.

Ошондой эле SN_INSTANCE жана SN_PASSWORD өзгөрмөлөрүн коюшубуз керек.

Бирок, Ansible Tower'те бул типтеги эсептик дайындар жок, анда сиз бул маалыматты ServiceNow үчүн көрсөтө аласыз. Бирок Ansible Tower бизге аныктоого мүмкүндүк берет ыңгайлаштырылган эсептик дайындардын түрлөрү, бул тууралуу кененирээк макаладан окуй аласыз "Ansible Tower өзгөчөлүгү Spotlight: Ыңгайлаштырылган эсептик маалыматтар".

Биздин учурда, ServiceNow үчүн ыңгайлаштырылган эсептик дайындар үчүн киргизүү конфигурациясы төмөнкүдөй көрүнөт:

fields:
  - id: SN_USERNAME
	type: string
	label: Username
  - id: SN_PASSWORD
	type: string
	label: Password
	secret: true
  - id: SN_INSTANCE
	type: string
	label: Snow Instance
required:
  - SN_USERNAME
  - SN_PASSWORD
  - SN_INSTANCE

Бул эсептик дайындар бирдей аталыштагы чөйрө өзгөрмөлөрү катары ачылат. Бул инжектордун конфигурациясында сүрөттөлөт:

env:
  SN_INSTANCE: '{{ SN_INSTANCE }}'
  SN_PASSWORD: '{{ SN_PASSWORD }}'
  SN_USERNAME: '{{ SN_USERNAME }}'

Ошентип, биз өзүбүзгө керектүү эсептик дайындардын түрүн аныктадык, эми биз ServiceNow каттоо эсебин кошуп, мисалды, колдонуучунун атын жана сырсөзүн төмөнкүдөй орното алабыз:

Ansible Towerдеги Ansible Content Collections инвентаризация плагиндерин колдонуу

Биз инвентаризация түзөбүз

Ошентип, азыр баарыбыз Ansible Towerде инвентаризация түзүүгө даярбыз. Аны ServiceNow деп атайлы:

Ansible Towerдеги Ansible Content Collections инвентаризация плагиндерин колдонуу

Инвентаризацияны түзгөндөн кийин, биз ага маалымат булагын тиркесек болот. Бул жерде биз мурда түзүлгөн долбоорду тактап, баштапкы башкаруу репозиторийиндеги YAML инвентаризация файлына жолду киргизебиз, биздин учурда бул долбоордун тамырында servicenow.yml. Мындан тышкары, сиз ServiceNow аккаунтуңузду байланыштырышыңыз керек.

Ansible Towerдеги Ansible Content Collections инвентаризация плагиндерин колдонуу

Баары кантип иштээрин текшерүү үчүн, келгиле, “Баарын синхрондоштуруу” баскычын чыкылдатуу менен маалымат булагы менен синхрондоштурууга аракет кылалы. Эгер баары туура конфигурацияланган болсо, анда түйүндөр биздин инвентаризацияга импорттолушу керек:

Ansible Towerдеги Ansible Content Collections инвентаризация плагиндерин колдонуу

Бизге керектүү топтор да түзүлгөнүн эске алыңыз.

жыйынтыктоо

Бул постто биз мисал катары ServiceNow плагинин колдонуу менен Ansible Tower коллекцияларынан инвентаризация плагиндерин кантип колдонууну карадык. Биздин ServiceNow инстанциясына туташуу үчүн биз ишеним грамоталарын да коопсуз каттадык. Долбоордон инвентаризация плагинин байланыштыруу үчүнчү тараптын же ыңгайлаштырылган плагиндер менен гана иштебестен, кээ бир стандарттык запастардын иштешин өзгөртүү үчүн да колдонсо болот. Бул барган сайын татаал IT чөйрөлөрүн автоматташтырууда Ansible Automation Platform программасын учурдагы инструменттер менен оңой жана кемчиликсиз интеграциялайт.

Сиз бул постто талкууланган темалар, ошондой эле Ansible колдонуунун башка аспектилери боюнча көбүрөөк маалыматты бул жерден таба аласыз:

*Red Hat бул жерде камтылган код туура экенине эч кандай кепилдик бербейт. Эгерде башкасы ачык айтылбаса, бардык материалдар индоссаментсиз негизде берилет.

Source: www.habr.com

Комментарий кошуу