Bii o ṣe le Lo Awọn ohun elo Aimi ati Dynamic in Ansible - Apá 4


Ninu Apakan 4 ti jara Ansible, a yoo ṣalaye bawo ni a ṣe le lo iṣiro ati agbara titiipa lati ṣalaye awọn ẹgbẹ ti awọn ọmọ-ogun ni Ansible.

Ninu Ansites, awọn ogun ti a ṣakoso tabi awọn olupin eyiti o ṣakoso nipasẹ oju ipade iṣakoso Ansible ni a ṣalaye ninu faili atokọ ogun bi a ti ṣalaye ninu.

Awọn ogun ti a ṣakoso le boya ṣe atokọ bi awọn titẹ sii kọọkan tabi ṣe tito lẹtọ labẹ orukọ ẹgbẹ kan bi a yoo ṣe rii nigbamii. Ni Ansible, awọn oriṣi meji ti awọn faili akopọ wa: Aimi ati Dynamic.

Jẹ ki a wo kọọkan ninu iwọnyi ki a wo bi a ṣe le ṣakoso wọn. Lọwọlọwọ, a ro pe o ti fi Ansible sori ẹrọ tẹlẹ lori oju ipade Iṣakoso rẹ, ati tunto asopọ SSH ti ko ni Ọrọigbaniwọle si awọn ogun rẹ ti o ṣakoso.

Ni Ansible, faili iṣiro kan ti o jẹ faili ọrọ pẹtẹlẹ ti o ni atokọ ti awọn ọmọ-ogun ti a ṣakoso ṣalaye labẹ ẹgbẹ oluṣamulo nipa lilo boya awọn orukọ alejo tabi awọn adirẹsi IP.

Orukọ ẹgbẹ agbalejo kan wa ninu awọn akọmọ onigun mẹrin ie [orukọ ẹgbẹ] . Awọn titẹ sii alejo ti o ṣakoso ni a ṣe atokọ ni isalẹ ni orukọ ẹgbẹ, ọkọọkan lori laini tirẹ. Gẹgẹbi a ti jiroro ni iṣaaju, a ṣe akojọ awọn ọmọ-ogun nipa lilo boya awọn orukọ ile-iṣẹ tabi awọn adirẹsi IP.

[group name]

Host A ip_address 
Host B ip_address
Host c ip_address

Fun awọn idi ti apejuwe, a yoo ṣẹda faili atokọ aimi kan.

# mkdir test_lab && cd test_lab
# vim hosts
[webservers]
173.82.115.165

[database_servers]
173.82.220.239

[datacenter:children]
webservers
database_servers

Fipamọ faili naa ki o jade.

Bi o ṣe le rii ninu faili-ọja ti o wa loke, a ti ṣẹda awọn ẹgbẹ agbalejo 2: webservers ati database_servers. Pẹlupẹlu, a ti ṣẹda ẹgbẹ afikun ti a pe ni datacenter ti o pẹlu ẹgbẹ kan ti awọn ẹgbẹ alejo ti a tọka nipasẹ : awọn ọmọde suffix bi a ti rii loke.

Ansible tun gba awọn ẹgbẹ ti awọn ọmọ-ogun laaye lati gbe labẹ orukọ ẹgbẹ kan. Ninu faili akojọ-ọja loke, awọn oju-iwe ayelujara ati awọn ẹgbẹ database_servers ti wa labẹ aaye data.

AKIYESI: Ko ṣe dandan lati fi awọn ogun ti o ṣakoso si ẹgbẹ ẹgbẹ kan. O le jiroro ni ṣe atokọ wọn nipa lilo awọn orukọ ile-iṣẹ wọn tabi awọn adirẹsi IP fun apẹẹrẹ.

173.82.202.239
172.82.115.165
load_balancer.pnl.com

Jẹ ki a lo awọn ofin Ansites diẹ diẹ fun itọkasi faili akọọlẹ ogun. Iṣeduro ipilẹ fun iṣakoso akojo ọja jẹ bi a ṣe han.

$ ansible {host-pattern} -i /path/of/inventory/file --list-hosts

Fun apere,

$ ansible all -i /root/test_labs/hosts --list-hosts

Ni omiiran, o le lo ohun kikọ egan ni * lati ropo ariyanjiyan ‘gbogbo’ .

$ ansible * -i /root/test_labs/hosts --list-hosts

Lati ṣe atokọ awọn agbalejo ninu ẹgbẹ kan, ṣafihan ẹgbẹ ti o gbalejo ni aaye apẹrẹ-ogun.

$ ansible webservers -i /root/test_labs/hosts --list-hosts

Ninu iṣeto kan - paapaa iṣeto awọsanma bii AWS nibiti faili atokọ ṣe n yipada nigbagbogbo bi o ṣe ṣafikun tabi awọn olupin idinku, fifipamọ awọn taabu lori awọn ọmọ-ogun ti a ṣalaye ninu faili akojopo di ipenija gidi. O di aiṣeeṣe lati pada si faili alejo ati mimuṣe akojọ awọn ọmọ-ogun pẹlu awọn adirẹsi IP wọn.

Ati pe eyi ni ibiti akojopo agbara wa lati mu ṣiṣẹ. Nitorinaa kini akopọ agbara? Akojopo agbara jẹ iwe afọwọkọ ti a kọ ni Python, PHP tabi ede siseto miiran. O wa ni ọwọ ni awọn agbegbe awọsanma bii AWS nibiti awọn adirẹsi IP ṣe yipada ni kete ti a da olupin foju duro ti o bẹrẹ lẹẹkansii.

Ansible ti tẹlẹ ti dagbasoke awọn iwe afọwọkọ ọja fun awọn iru ẹrọ awọsanma gbangba bi Google Compute Engine, apẹẹrẹ Amazon EC2, OpenStack, RackSpace, cobbler, laarin awọn miiran.

  • Awọn ohun elo ti o ni agbara ṣe iṣẹ pipe ti idinku aṣiṣe eniyan bi alaye ṣe pejọ ni lilo awọn iwe afọwọkọ.
  • A nilo igbiyanju kekere ni ṣiṣakoso awọn akojo ọja.

O le kọ ti ara rẹ ṣe akanṣe ẹda agbara ni ede siseto ti o fẹ. Akojopo yẹ ki o pada ọna kika ni JSON nigbati awọn aṣayan ti o yẹ ba kọja.

Iwe afọwọkọ kan ti a lo lati ṣẹda akojopo agbara ni lati jẹ ki o ṣee ṣe ki Ansible le lo.

Lati gba alaye nipa awọn ọmọ-ogun inu iwe afọwọkọ akojopo ṣiṣe lasan.

# ./script --list 

Gẹgẹbi a ti tọka tẹlẹ, iṣẹjade yẹ ki o wa ni JSON ni ọna kika ni isalẹ.

  • Atokọ ti awọn ogun ti a ṣakoso fun ẹgbẹ kan
  • Iwe-itumọ ti awọn oniyipada

  • Awọn alejo ati awọn alejo gbigba

{
  "webservers": {
    "hosts": [
      "webserver1.example.com",
      "webserver2.example.com"
    ],
    "vars": {}
  },
  "database_servers": {
    "hosts": [
      "mysql_db1",
      "mysql_db2"
    ],
    "vars": {}
  },
  "_meta": {
    "hostvars": {
      "mysql_db2": {},
      "webserver2.example.com": {},
      "webserver1.example.com": {}, 
      "mysql_db1": {}
    }
  }
}

Ninu nkan yii, a ti ṣe afihan bii o ṣe le ṣẹda awọn iṣiro aimi ati agbara. Ni akojọpọ, faili atokọ aimi jẹ faili ọrọ lasan ti o ni atokọ ti awọn ogun ti a ṣakoso tabi awọn apa latọna jijin ti awọn nọmba ati adirẹsi IP wa ni iduroṣinṣin nigbagbogbo.

Ni apa keji, faili agbalejo ti o ni agbara mu iyipada bi o ṣe ṣafikun awọn ọmọ-ogun tuntun tabi fifagile awọn atijọ. Awọn adirẹsi IP ti awọn ọmọ-ogun tun jẹ agbara bi o ṣe duro ati bẹrẹ awọn ọna ṣiṣe alejo gbigba tuntun. A nireti pe o rii alaye ti ẹkọ yii.