Jogapkärçiligiň esasy komponentlerine düşüniň - 1-nji bölüm


Ansible awtomatlaşdyryş synagynda (EX407) Red Hat kepillendirilen hünärmen, Red Hat tarapyndan ulgamlaryň we amaly programmalaryň konfigurasiýasyny awtomatlaşdyrmak üçin Ansible-i ulanmak ukybyňyzy barlaýan täze sertifikat programmasydyr.

Bu seriýa “Ansible awtomatlaşdyryş synagynda Red Hat kepillendirilen hünärmen” (EX407) ady berler we Red Ans Enterprise Linux 7.5 we Ansible 2.7 esasynda aşakdaky synag maksatlaryny öz içine alar, bu Ansible seriýasynda ara alyp maslahatlaşarys:

Feesurduňyzda tölegleri görmek we ekzamen üçin hasaba durmak üçin “Ansible Automation” synag sahypasyny barlaň.

“Ansible” seriýasynyň 1-nji bölüminde “Ansible” -iň esasy komponentlerine käbir esasy synlary ara alyp maslahatlaşarys.

Ansible, bir merkezi ýerden birnäçe serweri dolandyrmaga we dolandyrmaga mümkinçilik berýän RedHat tarapyndan mugt we açyk awtomatlaşdyryş platformasydyr. Esasanam ýerine ýetirilmeli köp we gaýtalanýan meseleler bar bolsa gaty gowy. Şonuň üçin bu uzakdaky düwünleriň hersine girip, wezipeleriňizi ýerine ýetirmegiň ýerine merkezi ýerden rahatlyk bilen edip, serwerleriňizi rahat dolandyryp bilersiňiz.

Programmany ýerleşdirmekde yzygiderliligi saklamak, adam ýalňyşlygyny azaltmak we gaýtalanýan we birneme adaty meseleleri awtomatlaşdyrmak isleseňiz bu peýdalydyr.

Elbetde, Gurjak, aşpez we duz ýaly Ansible-iň başga alternatiwalary bar. Şeýle-de bolsa, Ansible köplenç ileri tutulýar, sebäbi ulanmak aňsat we öwrenmek ýönekeý.

Näme üçin sorap biljekdigiňizi öwrenmek ýönekeý? Sebäbi “Ansible”, adam okalýan we ýerine ýetirmek aňsat bolan konfigurasiýa we awtomatlaşdyryş işlerinde YAML (Yetöne başga bir bellik dili) ulanýar. YAML, uzak serwerler bilen aragatnaşyk saklamak üçin SSH protokolyny ulanýar, olar bilen aragatnaşyk gurmak üçin uzakdaky düwünlere agent gurmagy talap edýän beýleki awtomatlaşdyryş platformalaryndan tapawutlylykda.

“Ansible” bilen başlamazdan ozal, käbir esasy terminologiýalar bilen tanyşmagyňyz möhümdir, öňe baranymyzda ýitirim bolmaz ýa-da bulaşmaz.

Inwentar, dolandyrýan we sazlaýan serwerleriň ýa-da düwünleriň sanawyny öz içine alýan tekst faýlydyr. Adatça, serwerler öz atlaryna ýa-da IP adreslerine esaslanýar.

Öwreniş faýlynda görkezilişi ýaly IP adresleri bilen kesgitlenen uzakdaky ulgamlar bolup biler:

10.200.50.50
10.200.50.51
10.200.50.52

Ativea-da bolmasa, toparlara görä sanalyp bilner. Aşakdaky mysalda, 2 topara bölünen serwerlerimiz bar - web serwerleri we maglumat bazalary. Şeýlelik bilen, IP adreslerine däl-de, topar atlaryna görä salgylanyp bolýar. Bu amal amallaryny hasam aňsatlaşdyrýar.

[webservers]
10.200.50.60
10.200.50.61

[databases]
10.200.50.70
10.200.50.71

Uly önümçilik gurşawynda bolsaňyz, birnäçe serwerli birnäçe topara eýe bolup bilersiňiz.

Oýun kitaby, uzakdaky öý eýelerinde ýa-da öý maşynlarynyň toparynda meseleleriň nähili ýerine ýetiriljekdigini kesgitleýän konfigurasiýa dolandyryş skriptleriniň toplumydyr. Ripazgylar ýa-da görkezmeler YAML görnüşinde ýazylýar.

Mysal üçin, CentOS 7-de Apache web serwerini gurmak we oňa httpd.yml diýip atlandyrmak üçin playbook faýly bolup biler.

Oýun kitabyny döretmek üçin buýrugy işlediň.

$ touch playbook_name.yml

Mysal üçin, httpd atly oýun kitabyny döretmek üçin buýrugy işlediň.

$ touch httpd.yml

YAML faýly görkezilişi ýaly 3 defis bilen başlaýar. Faýlyň içine aşakdaky görkezmeleri goşuň.

---
- 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

Aboveokardaky oýun kitaby, inwentar faýlynda web serweri hökmünde kesgitlenen uzak ulgamlarda Apache web serwerini gurýar. Web serwer gurlandan soň, Ansible Apache web serweriniň işe başlandygyny ýa-da işlemeýändigini barlaýar.

Modullar, uzakdaky hostlarda ýa-da serwerlerde buýruklary ýerine ýetirmek üçin oýun kitaplarynda ulanylýan aýratyn kod birlikleridir. Her modulda argument bolýar.

Modulyň esasy formaty açar: baha.

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

Aboveokardaky YAML kod parçasynda -name we yum modullardyr.

Jogaply oýun, serwerde ýerine ýetirilmeli meseläni kesgitleýän skript ýa-da görkezme. Spektakllar ýygyndysy oýun kitabyny emele getirýär. Başga sözler bilen aýdylanda, oýun kitaby serwerde ýerine ýetirilmeli meseläni anyk kesgitleýän birnäçe pýesanyň ýygyndysydyr. Oýunlar YAML formatda bar.

Eger programmirleme tejribäňiz bar bolsa, üýtgeýänleri ulanan bolsaňyz gerek. Esasan, üýtgeýji bir bahany aňladýar. Üýtgeýji harplary, sanlary we aşaky çyzyklary öz içine alyp biler, ýöne elmydama harplardan başlamaly.

Görkezmeler bir ulgamdan beýlekisine üýtgän mahaly üýtgeýjiler ulanylýar. Bu esasanam konfigurasiýa ýa-da dürli hyzmatlar we aýratynlyklar wagtynda dogry.

Üýtgeýjileriň 3 esasy görnüşi bar:

  • Playbook üýtgeýjileri
  • Öwreniş üýtgeýjileri
  • Specialörite üýtgeýjiler

“Ansible” -de üýtgeýjiler ilki bilen “v” karslary bilen kesgitlenilýär, soňra üýtgeýänleriň ady we bahasy kesgitlenýär.

Sintaksis görkezilişi ýaly:

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

Aşakdaky koda serediň.

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

Aboveokardaky mysalda, bu ýerdäki üýtgeýji web_directory bolup,/var/www/html/ýolda katalog döretmegi tabşyrýar.

Faktlar, “Ansible” -iň kabul ediji ulgamda oýnawaç kitabyny ýerine ýetireninde toplanan ulgam häsiýetleri. Aýratynlyklara hostname, OS maşgalasy, CPU görnüşi we CPU ýadrosy degişlidir.

Ulanmak üçin bar bolan faktlaryň sanyna göz aýlamak üçin buýrugy beriň.

$ ansible localhost -m setup

Görşüňiz ýaly, köp sanly fakt öňünden görkezildi. Görkezilişi ýaly süzgüç parametrini ulanyp, netijeleri hasam gysgaldyp bilersiňiz.

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

“Ansible” -de konfigurasiýa faýly, “Ansible” -iň işleýşini kesgitleýän dürli parametr sazlamalaryny öz içine alýan faýl. Adaty konfigurasiýa faýly/etc/ansible/katalogda ýerleşýän ansible.cfg faýlydyr.

Sazlama faýlyny işledip görüp bilersiňiz:

$ cat /etc/ansible/ansible.cfg

Syn edişiňiz ýaly, inwentar we kitaphananyň faýl ýollary, sudo ulanyjysy, plugin süzgüçleri, modullar we ş.m. ýaly birnäçe parametrler bar. Bu parametrleri diňe düşündiriş bermek we içindäki bahalary üýtgetmek arkaly sazlap bolýar.

Mundan başga-da, deslapky konfigurasiýa faýlyňyzdan başga Ansible bilen işleýän birnäçe konfigurasiýa faýly bolup biler.

“Ansible” -iň esasy böleklerine göz aýlap, olary barmaklaryňyzyň ujunda saklap, öňe baranymyzda saýlap bilersiňiz diýip umyt edýäris. Indiki mowzugyňyza goşulyň.