Sabta ang Panguna nga mga Bahagi sa Ansible - Bahin 1


Ang Red Hat Certified Specialist sa Ansible Automation exam (EX407) usa ka bag-ong programa sa sertipikasyon sa Red Hat nga nagsulay sa imong kahanas sa paggamit sa Ansible aron ma-automate ang pag-configure sa mga sistema ug aplikasyon.

Ang serye paga-ulohan og The Red Hat Certified Specialist in Ansible Automation exam (EX407) ug naglangkob sa mosunod nga mga tumong sa eksaminasyon base sa Red Hat Enterprise Linux 7.5 ug Ansible 2.7, nga atong hisgotan niining Ansible series:

Aron matan-aw ang mga bayronon ug magparehistro alang sa usa ka eksaminasyon sa imong nasud, susiha ang panid sa Ansible Automation exam.

Niini nga Bahin 1 sa seryeng Ansible, atong hisgotan ang pipila ka sukaranang kinatibuk-ang paglantaw sa kinauyokan nga mga sangkap sa Ansible.

Ang Ansible usa ka libre ug opensource nga automation nga plataporma sa RedHat nga makapahimo kanimo sa pagdumala ug pagkontrolar sa daghang mga server gikan sa usa ka sentral nga lokasyon. Kini labi ka maayo kung ikaw adunay daghang ug gibalikbalik nga mga buluhaton nga kinahanglan buhaton. Mao nga imbis nga mag-log in sa matag usa niining hilit nga mga node ug buhaton ang imong mga buluhaton, mahimo nimo kini nga komportable gikan sa usa ka sentro nga lokasyon ug komportable nga madumala ang imong mga server.

Mapuslanon kini kung gusto nimo nga magpadayon ang pagkamakanunayon sa pag-deploy sa aplikasyon, pagpakunhod sa sayup sa tawo ug pag-automate sa mga balik-balik ug medyo kalibutanon nga mga buluhaton.

Siyempre, adunay ubang mga alternatibo sa Ansible sama sa Puppet, Chef, ug Salt. Bisan pa, ang Ansible kasagaran gipalabi tungod kay kini dali gamiton ug yano nga makat-on.

Ngano nga sayon ra ang pagkat-on nga mahimo nimong ipangutana? Kini tungod kay ang Ansible naggamit sa YAML (Yet Another Markup Language) sa pag-configure ug mga trabaho sa automation nga mabasa sa tawo ug dali ra sundon. Ang YAML naggamit sa SSH protocol aron makigkomunikar sa mga remote server, dili sama sa ubang mga automation platform nga nagkinahanglan nga mag-install ka og ahente sa mga remote node aron makigkomunikar kanila.

Sa dili pa kita magsugod sa Ansible, importante nga masinati nimo ang pipila ka mga batakang terminolohiya aron dili ka mawala o maglibog samtang kita nagpadayon.

Ang imbentaryo usa ka text file nga adunay lista sa mga server o node nga imong gidumala ug gi-configure. Kasagaran, ang mga server gilista base sa ilang mga hostname o IP address.

Ang usa ka file sa imbentaryo mahimong adunay mga hilit nga sistema nga gipasabut sa ilang mga adres sa IP sama sa gipakita:

10.200.50.50
10.200.50.51
10.200.50.52

Sa laing paagi, mahimo silang ilista sumala sa mga grupo. Sa pananglitan sa ubos, kami adunay mga server nga gibutang sa ilawom sa 2 nga mga grupo - mga web server ug mga database. Niining paagiha mahimo silang ma-reference sumala sa ilang mga ngalan sa grupo ug dili sa ilang mga IP address. Gipasimple pa niini ang mga proseso sa operasyon.

[webservers]
10.200.50.60
10.200.50.61

[databases]
10.200.50.70
10.200.50.71

Mahimo ka adunay daghang mga grupo nga adunay daghang mga server kung naa ka sa usa ka dako nga palibot sa produksiyon.

Ang playbook usa ka hugpong sa mga script sa pagdumala sa pag-configure nga naghubit kung giunsa ang mga buluhaton ipatuman sa hilit nga mga host o usa ka grupo sa mga host machine. Ang mga script o instruksyon gisulat sa YAML format.

Pananglitan, mahimo kang adunay playbook file aron ma-install ang Apache webserver sa CentOS 7 ug tawgon kini nga httpd.yml.

Aron mahimo ang playbook padagana ang command.

$ touch playbook_name.yml

Pananglitan sa paghimo og playbook nga gitawag og httpd, padagana ang command.

$ touch httpd.yml

Ang YAML file nagsugod sa 3 hyphens sama sa gipakita. Sa sulod sa file, idugang ang mosunod nga mga instruksyon.

---
- name: This installs and starts Apache webserver
  hosts: webservers

  tasks:
  - name: Install Apache Webserver 
    yum:   name=httpd  state=latest

 - name: check httpd status
    service:   name=httpd  state=started

Ang naa sa ibabaw nga playbook nag-install sa Apache web server sa mga hilit nga sistema nga gihubit ingon mga webserver sa file sa imbentaryo. Pagkahuman sa pag-instalar sa webserver, ang Ansible sa ulahi magsusi kung ang Apache web server nagsugod ug nagdagan.

Ang mga modulo kay discrete units sa code nga gigamit sa playbooks para sa pagpatuman sa mga command sa remote hosts o servers. Ang matag module gisundan sa usa ka argumento.

Ang sukaranan nga pormat sa usa ka module mao ang yawe: bili.

- name: Install apache packages 
    yum:   name=httpd  state=present

Sa ibabaw nga YAML code snippet, -name ug yum mga modules.

Ang usa ka ansible nga dula usa ka script o usa ka panudlo nga naghubit sa buluhaton nga himuon sa usa ka server. Ang usa ka koleksyon sa mga dula naglangkob sa usa ka playbook. Sa laing pagkasulti, ang usa ka playbook usa ka koleksyon sa daghang mga dula, nga ang matag usa tin-aw nga nagtakda sa buluhaton nga himuon sa usa ka server. Ang mga dula anaa sa YAML format.

Kung ikaw adunay background sa programming, lagmit nga gigamit nimo ang mga variable. Sa panguna, ang usa ka variable nagrepresentar sa usa ka kantidad. Ang usa ka variable mahimong maglakip sa mga letra, numero, ug underscore apan KINAHANGLAN kanunay magsugod sa mga letra.

Ang mga variable gigamit kung ang mga panudlo magkalainlain gikan sa usa ka sistema ngadto sa lain. Tinuod kini labi na sa panahon sa pag-configure o lainlaing mga serbisyo ug mga bahin.

Adunay 3 ka nag-unang matang sa mga variable:

  • Mga baryable sa playbook
  • Mga variable sa imbentaryo
  • Espesyal nga mga variable

Sa Ansible, ang mga variable una nga gihubit gamit ang vars k, dayon gisundan sa variable nga ngalan ug ang kantidad.

Ang syntax sama sa gipakita:

vars:
Var name1: ‘My first variable’
	Var name2:  ‘My second variable’

Tagda ang code sa ubos.

- hosts: webservers
  vars: 
    - web_directory:/var/www/html/

Sa panig-ingnan sa ibabaw, ang variable dinhi mao ang web_directory ug kini nagtudlo nga mahimo nga maghimo usa ka direktoryo sa /var/www/html/ dalan.

Ang mga kamatuoran mao ang mga kabtangan sa sistema nga gitigum sa Ansible kung kini nagpatuman sa usa ka playbook sa usa ka host system. Ang mga kabtangan naglakip sa hostname, pamilya sa OS, tipo sa CPU, ug mga core sa CPU aron mahisgutan ang pipila.

Aron makit-an ang gidaghanon sa mga kamatuoran nga magamit aron magamit i-isyu ang mando.

$ ansible localhost -m setup

Sama sa imong nakita, daghang mga kamatuoran ang gipakita pinaagi sa default. Mahimo nimong minusan ang mga resulta gamit ang parameter sa filter sama sa gipakita.

$ ansible localhost -m setup -a "filter=*ipv4"

Sa Ansible, usa ka file sa pag-configure usa ka file nga adunay lainlaing mga setting sa parameter nga nagtino kung giunsa pagdagan ang Ansible. Ang default configuration file mao ang ansible.cfg file nga nahimutang sa /etc/ansible/ directory.

Mahimo nimong tan-awon ang configuration file pinaagi sa pagpadagan:

$ cat /etc/ansible/ansible.cfg

Sama sa imong maobserbahan, daghang mga parameter ang gilakip sama sa imbentaryo ug mga agianan sa file sa librarya, sudo user, plugin filters, modules, ug uban pa. Kini nga mga parameter mahimong i-adjust pinaagi lamang sa pagkomento niini ug pag-usab sa mga bili niini.

Dugang pa, mahimo ka adunay daghang mga pag-configure nga mga file nga nagtrabaho kauban ang Ansible gawas sa imong default config file.

Sa pagtan-aw sa kinauyokan nga mga sangkap sa Ansible, nanghinaut kami nga naa ka sa posisyon nga ipadayon kini sa imong mga tudlo ug pilion kini samtang nagpadayon kami. Apil kanamo sa imong sunod nga topiko.