Ansible Advanced Host List Inventory

Ansible Advanced Host List Inventory



Gamit ang isa sa mga pinakabagong diskarte sa pamamahala, 'Ansible,' ipinakilala namin kung paano namin inililista ang bawat sinusubaybayang host sa device. Sa Ansible, ginagamit namin ang plugin na 'imbentaryo' upang ilista ang lahat ng mga host sa network.

Napakahalaga na magkaroon ng listahan ng lahat ng iyong host machine sa Ansible. Ang pagpapanatiling maayos ng isang file ng imbentaryo ay kasinghalaga ng pagpapanatili ng mga playbook o mga gawain dahil palagi mong makikita ang iyong sarili sa isang estado ng kawalan ng katiyakan at tanungin ang iyong sarili tungkol sa ilang mga alalahanin kung ang iyong file ng imbentaryo ay hindi pinamamahalaan. Bilang karagdagan sa nabanggit, ang kahulugan ng file ng imbentaryo ng mga kinakailangang variable ay nagpapaliit sa nilalaman ng gawain sa mga playbook at nagpapabilis sa mga interpretasyon. Mayroong pangkat ng mga variable na maaaring ideklara sa iyong mga playbook at Ansible na mga file ng imbentaryo na responsable para sa pagkonekta at pag-configure ng gawi ng pagkakakonekta sa host machine.







Mga kinakailangan:

Ang mga sumusunod ay ang mga kinakailangan bago ipatupad ang host list inventory command sa Ansible:



  • Upang simulan ang pagpapatupad, kailangan muna namin ng software na ginagamit para sa Ansible configuration na naka-install sa server device na may pinakabagong bersyon. Dapat na i-configure ang Ansible upang madali naming mailista ang all-host machine sa aming network.
  • Upang magawa ang anumang gawain sa pagsasaayos sa Ansible, kailangan namin ng pangunahing tagapamahala ng pagsasaayos. Sa tutorial na ito, ginagamit namin ang controller server bilang pangunahing controller.
  • Upang ipatupad ang anumang mga pagbabago, kailangan naming i-target ang mga server ng host sa tutorial ng imbentaryo ng listahan ng host. Dito, mayroon kaming dalawang target na remote host.

Halimbawa: Imbentaryo ng Listahan ng Host sa Machine

Narito ang halimbawang ipinapatupad namin sa tool na Ansible upang suriin o tukuyin ang imbentaryo ng listahan ng host. Para diyan, gagawin namin ang halimbawang ito sa iba't ibang hakbang upang madali naming maunawaan ang paggawa at pagpapatupad ng tutorial na ito. Ang mga sumusunod ay ang mga hakbang:



Hakbang 1: Suriin ang Default na Host List Inventory sa Target na Remote Host Device





Una, tinitingnan namin kung gaano karaming mga host ang nasa imbentaryo ng tool na Ansible. Para diyan, ginagamit namin ang 'ansible' na pahayag na may '—list-hosts' para maipakita namin ang default na pinangangasiwaan na mga node sa imbentaryo.

[ ugat @ master ansible ] # ansible lahat --list-host



Narito ang output pagkatapos isulat ang nakaraang utos:

Ang Ansible terminal ay nagpapakita ng '0 host' tulad ng makikita mo sa ibinigay na tugon dahil hindi namin idineklara ang imbentaryo. Bumubuo kami ng imbentaryo upang ilista ang imbentaryo ng host sa terminal bago namin ito tugunan.

Default na Imbentaryo:

Kapag nag-install kami ng Ansible sa software, bubuo ang Ansible ng file ng imbentaryo na makikita sa pamamagitan ng pagsulat ng sumusunod na pahayag sa terminal:

[ ugat @ master ansible ] # sudo nano /etc/ansible/hosts

Ang kinalabasan ay nabuo kapag isinulat namin ang nakaraang pahayag. Pagkatapos, hinihiling sa iyo na ipasok ang password:

Sa snapshot na ito, ang default na Ansible hosts file ay nagbibigay ng impormasyon tungkol sa mga hindi nakagrupong host at webservers group host. Kasama sa mga host na ito ang mga URL at iba't ibang IP address.

Hakbang 2: Tukuyin ang Custom na Imbentaryo sa Ansible

Sa Ansible, maaari rin naming tukuyin ang aming imbentaryo sa pamamagitan ng pagsusulat ng maraming pahayag sa terminal ng Ansible. Ang pagtukoy sa imbentaryo kapag nagpapatakbo ng mga pahayag at playbook ay isang matalinong desisyon na pumipigil sa pag-aaway ng mga host at pagkabigo habang kumokonekta sa mga host.

Upang simulan ang pagtukoy sa imbentaryo nang mag-isa, isinusulat muna namin ang sumusunod na pahayag upang mabuo namin ang imbentaryo sa Ansible at ilista ang mga host dito para magawa namin ang koneksyon sa pagitan ng controller ng Ansible at ng mga naka-target na remote na host.

[ ugat @ master ansible ] # nano hosts.yml

Pagkatapos isulat ang nakaraang pahayag, ang imbentaryo ay ginawa at inilunsad sa isang bagong Ansible terminal na may pamagat na 'hosts.yml'. Susunod, inilista namin ang mga target na host nang paisa-isa sa imbentaryo. Ang pinakaunang host na kumonekta sa amin ay isang Linux host. Ibinibigay namin ang IP address ng Linux host, ang Ansible user, ang Ansible na password, ang uri ng koneksyon, at ang Ansible port number. Ganoon din ang ginagawa namin sa pangalawang target na host. Ang pangalawang host na ginagamit namin ay ang Ansible host. Ang lahat ng host na aming inilista ay nasa ilalim ng Ansible na parameter sa imbentaryo.

Magagawa:
mga host:
Linux_Host:
ansible_host: 192.168.3.229
ansible_user: ugat
ansible_password: tpstps_22
ansible_connection: ssh
ansible_port: 22

Ansible_Host:
ansible_host: 192.168.7.10
ansible_user: iris
ansible_password: TpsTps_1
ansible_connection: ssh
ansible_port: 22

Pagkatapos gawin ang file ng imbentaryo at ibigay ang mga host sa loob nito, wawakasan na namin ngayon ang file ng imbentaryo at bumalik sa pangunahing terminal ng Ansible.

Hakbang 3: Gumawa ng Playbook sa Ansible

Susunod, gagawa kami ng playbook sa tool na Ansible para tukuyin namin ang mga gawain. Para diyan, isinusulat namin ang sumusunod na command sa Ansible main terminal:

[ ugat @ master ansible ] # nano ansible_advanced_inventory.yml

Ngayon, ang playbook ay inilunsad sa isang bagong terminal. Una, isinusulat namin ang pamagat ng playbook. Sa susunod na linya, ibibigay namin ang target na host. Ginagamit namin ang opsyong gather fact na ginagamit para makuha ang buong impormasyon ng mga host. Ngunit dito, ipinasa namin ang 'hindi' na nangangahulugang hindi namin nais na makuha ang lahat ng data ng mga host.

Susunod, inilista namin ang mga gawain sa playbook. Ang unang gawain ay ginagamit upang ipakita ang target na host na may hostname. Sa susunod na gawain, ini-print namin ang mga resulta ng host.

- pangalan: Ansible advanced na imbentaryo ng host
mga host: Ansible [ 0 ]
gather_facts: hindi
mga gawain:

- pangalan: Kunin hostname ng pinamamahalaang node
shell: 'hostname'
rehistro: resulta

- pangalan: Print hostname
debug:
mensahe: '{{result.stdout}}'

Ngayon, gusto naming isagawa ang playbook kasama ang file ng imbentaryo. Kaya, tapusin muna namin ang playbook. Ang sumusunod ay ang pahayag na ginagamit namin upang patakbuhin ang utos:

[ ugat @ master ansible ] # ansible-playbook ansible_advanced_inventory.yml –i host.yml

Ang sumusunod ay ang output display na nagpapakita na ang koneksyon ay matagumpay. Dahil naipasa namin ang Ansible[0] sa playbook, ang unang host ay ipinapakita sa output:

Konklusyon

Nagkaroon kami ng malalim na talakayan sa imbentaryo ng Ansible sa buong tutorial na ito. Natutunan namin kung paano buuin ang imbentaryo sa Ansible at pagkatapos ay ikonekta ang mga ito sa mga target na malayuang host. Nagpatupad din kami ng halimbawa upang madali naming maunawaan ang mga konsepto ng Ansible imbentaryo.