അൻസിബിളിന്റെ പ്രധാന ഘടകങ്ങൾ മനസ്സിലാക്കുക - ഭാഗം 1


Red Hat സർട്ടിഫൈഡ് സ്പെഷ്യലിസ്റ്റ് ഇൻ അൻസിബിൾ ഓട്ടോമേഷൻ പരീക്ഷ (EX407) എന്നത് Red Hat-ന്റെ ഒരു പുതിയ സർട്ടിഫിക്കേഷൻ പ്രോഗ്രാമാണ്, അത് സിസ്റ്റങ്ങളുടെയും ആപ്ലിക്കേഷനുകളുടെയും കോൺഫിഗറേഷൻ ഓട്ടോമേറ്റ് ചെയ്യുന്നതിന് Ansible ഉപയോഗിക്കുന്നതിനുള്ള നിങ്ങളുടെ കഴിവുകൾ പരിശോധിക്കുന്നു.

The Red Hat Certified Specialist in Ansible Automation exam (EX407) എന്ന് പേരിട്ടിരിക്കുന്ന ഈ സീരീസ് Red Hat Enterprise Linux 7.5, Ansible 2.7 എന്നിവയെ അടിസ്ഥാനമാക്കിയുള്ള ഇനിപ്പറയുന്ന പരീക്ഷാ ലക്ഷ്യങ്ങൾ ഉൾക്കൊള്ളുന്നു, അത് ഞങ്ങൾ ഈ Ansible സീരീസിൽ ഉൾപ്പെടുത്താൻ പോകുന്നു:

ഫീസ് കാണാനും നിങ്ങളുടെ രാജ്യത്ത് ഒരു പരീക്ഷയ്ക്ക് രജിസ്റ്റർ ചെയ്യാനും, അൻസിബിൾ ഓട്ടോമേഷൻ പരീക്ഷാ പേജ് പരിശോധിക്കുക.

അൻസിബിൾ സീരീസിന്റെ ഈ ഭാഗം 1 ൽ, അൻസിബിളിലെ പ്രധാന ഘടകങ്ങളുടെ ചില അടിസ്ഥാന അവലോകനങ്ങൾ ഞങ്ങൾ ചർച്ച ചെയ്യും.

ഒരു കേന്ദ്ര ലൊക്കേഷനിൽ നിന്ന് ഒന്നിലധികം സെർവറുകൾ നിയന്ത്രിക്കാനും നിയന്ത്രിക്കാനും നിങ്ങളെ പ്രാപ്uതമാക്കുന്ന RedHat-ന്റെ ഒരു സ്വതന്ത്രവും ഓപ്പൺ സോഴ്uസ് ഓട്ടോമേഷൻ പ്ലാറ്റ്uഫോമാണ് അൻസിബിൾ. നിങ്ങൾക്ക് നിർവ്വഹിക്കേണ്ട ഒന്നിലധികം ആവർത്തിച്ചുള്ള ജോലികൾ ഉള്ളപ്പോൾ ഇത് പ്രത്യേകിച്ചും അനുയോജ്യമാണ്. അതിനാൽ ഈ വിദൂര നോഡുകളിൽ ഓരോന്നിലേക്കും ലോഗിൻ ചെയ്uത് നിങ്ങളുടെ ജോലികൾ നിർവഹിക്കുന്നതിനുപകരം, നിങ്ങൾക്ക് ഒരു കേന്ദ്ര സ്ഥാനത്ത് നിന്ന് സുഖകരമായി അത് ചെയ്യാനും നിങ്ങളുടെ സെർവറുകൾ സുഖകരമായി നിയന്ത്രിക്കാനും കഴിയും.

ആപ്ലിക്കേഷൻ വിന്യാസത്തിൽ സ്ഥിരത നിലനിർത്താനും മാനുഷിക പിശകുകൾ കുറയ്ക്കാനും ആവർത്തിച്ചുള്ളതും അൽപ്പം ലൗകികവുമായ ജോലികൾ ഓട്ടോമേറ്റ് ചെയ്യാനും നിങ്ങൾ ആഗ്രഹിക്കുമ്പോൾ ഇത് പ്രയോജനകരമാണ്.

തീർച്ചയായും, അൻസിബിളിന് പപ്പറ്റ്, ഷെഫ്, സാൾട്ട് തുടങ്ങിയ മറ്റ് ബദലുകളും ഉണ്ട്. എന്നിരുന്നാലും, ഉപയോഗിക്കാൻ എളുപ്പവും പഠിക്കാൻ ലളിതവുമായതിനാൽ അൻസിബിളാണ് കൂടുതലും തിരഞ്ഞെടുക്കുന്നത്.

പഠിക്കുന്നത് എന്തുകൊണ്ട് ലളിതമാണ് എന്ന് നിങ്ങൾ ചോദിച്ചേക്കാം? കാരണം, അൻസിബിൾ അതിന്റെ കോൺഫിഗറേഷനിലും ഓട്ടോമേഷൻ ജോലികളിലും YAML (മറ്റൊരു മാർക്ക്അപ്പ് ഭാഷ) ഉപയോഗിക്കുന്നു, അത് മനുഷ്യർക്ക് വായിക്കാൻ കഴിയുന്നതും പിന്തുടരാൻ എളുപ്പവുമാണ്. റിമോട്ട് സെർവറുകളുമായി ആശയവിനിമയം നടത്താൻ YAML SSH പ്രോട്ടോക്കോൾ ഉപയോഗിക്കുന്നു, മറ്റ് ഓട്ടോമേഷൻ പ്ലാറ്റ്uഫോമുകളിൽ നിന്ന് വ്യത്യസ്തമായി അവരുമായി ആശയവിനിമയം നടത്താൻ വിദൂര നോഡുകളിൽ ഒരു ഏജന്റ് ഇൻസ്റ്റാൾ ചെയ്യേണ്ടത് ആവശ്യമാണ്.

ഞങ്ങൾ അൻസിബിളുമായി ആരംഭിക്കുന്നതിന് മുമ്പ്, നിങ്ങൾ ചില അടിസ്ഥാന പദങ്ങൾ പരിചയപ്പെടേണ്ടത് പ്രധാനമാണ്, അതുവഴി ഞങ്ങൾ മുന്നോട്ട് പോകുമ്പോൾ നിങ്ങൾക്ക് നഷ്ടപ്പെടുകയോ ആശയക്കുഴപ്പത്തിലാകുകയോ ചെയ്യരുത്.

നിങ്ങൾ കൈകാര്യം ചെയ്യുന്നതും കോൺഫിഗർ ചെയ്യുന്നതുമായ സെർവറുകളുടെയോ നോഡുകളുടെയോ ഒരു ലിസ്റ്റ് അടങ്ങുന്ന ഒരു ടെക്സ്റ്റ് ഫയലാണ് ഇൻവെന്ററി. സാധാരണയായി, സെർവറുകൾ അവയുടെ ഹോസ്റ്റ്നാമങ്ങൾ അല്ലെങ്കിൽ IP വിലാസങ്ങൾ അടിസ്ഥാനമാക്കിയാണ് ലിസ്റ്റ് ചെയ്യുന്നത്.

ഒരു ഇൻവെന്ററി ഫയലിൽ കാണിച്ചിരിക്കുന്നതുപോലെ അവരുടെ IP വിലാസങ്ങൾ നിർവചിച്ചിരിക്കുന്ന റിമോട്ട് സിസ്റ്റങ്ങൾ അടങ്ങിയിരിക്കാം:

10.200.50.50
10.200.50.51
10.200.50.52

പകരമായി, ഗ്രൂപ്പുകൾ അനുസരിച്ച് അവ പട്ടികപ്പെടുത്താം. ചുവടെയുള്ള ഉദാഹരണത്തിൽ, ഞങ്ങൾക്ക് 2 ഗ്രൂപ്പുകൾക്ക് കീഴിൽ സെർവറുകൾ സ്ഥാപിച്ചിട്ടുണ്ട് - വെബ് സെർവറുകളും ഡാറ്റാബേസുകളും. ഇതുവഴി അവരെ അവരുടെ ഗ്രൂപ്പിന്റെ പേരുകൾക്കനുസൃതമായി റഫറൻസ് ചെയ്യാൻ കഴിയും, അവരുടെ ഐപി വിലാസങ്ങളല്ല. ഇത് പ്രവർത്തന പ്രക്രിയകളെ കൂടുതൽ ലളിതമാക്കുന്നു.

[webservers]
10.200.50.60
10.200.50.61

[databases]
10.200.50.70
10.200.50.71

നിങ്ങൾ ഒരു വലിയ പ്രൊഡക്ഷൻ പരിതസ്ഥിതിയിലാണെങ്കിൽ ഒന്നിലധികം സെർവറുകളുള്ള ഒന്നിലധികം ഗ്രൂപ്പുകൾ നിങ്ങൾക്ക് ഉണ്ടാകാം.

റിമോട്ട് ഹോസ്റ്റുകളിലോ ഒരു കൂട്ടം ഹോസ്റ്റ് മെഷീനുകളിലോ ടാസ്uക്കുകൾ എങ്ങനെ എക്uസിക്യൂട്ട് ചെയ്യണമെന്ന് നിർവചിക്കുന്ന കോൺഫിഗറേഷൻ മാനേജ്uമെന്റ് സ്uക്രിപ്റ്റുകളുടെ ഒരു കൂട്ടമാണ് പ്ലേബുക്ക്. സ്ക്രിപ്റ്റുകളോ നിർദ്ദേശങ്ങളോ YAML ഫോർമാറ്റിലാണ് എഴുതിയിരിക്കുന്നത്.

ഉദാഹരണത്തിന്, CentOS 7-ൽ അപ്പാച്ചെ വെബ്uസെർവർ ഇൻസ്റ്റാൾ ചെയ്യാനും അതിനെ httpd.yml എന്ന് വിളിക്കാനും നിങ്ങൾക്ക് ഒരു പ്ലേബുക്ക് ഫയൽ ഉണ്ടായിരിക്കാം.

പ്ലേബുക്ക് സൃഷ്ടിക്കാൻ കമാൻഡ് പ്രവർത്തിപ്പിക്കുക.

$ touch playbook_name.yml

ഉദാഹരണത്തിന് httpd എന്ന പ്ലേബുക്ക് സൃഷ്ടിക്കാൻ, കമാൻഡ് പ്രവർത്തിപ്പിക്കുക.

$ touch httpd.yml

YAML ഫയൽ കാണിക്കുന്നത് പോലെ 3 ഹൈഫനുകളിൽ ആരംഭിക്കുന്നു. ഫയലിനുള്ളിൽ, ഇനിപ്പറയുന്ന നിർദ്ദേശങ്ങൾ ചേർക്കുക.

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

മുകളിലെ പ്ലേബുക്ക് ഇൻവെന്ററി ഫയലിൽ വെബ്സെർവറുകൾ എന്ന് നിർവചിച്ചിരിക്കുന്ന റിമോട്ട് സിസ്റ്റങ്ങളിൽ അപ്പാച്ചെ വെബ് സെർവർ ഇൻസ്റ്റാൾ ചെയ്യുന്നു. വെബ്uസെർവർ ഇൻസ്റ്റാളുചെയ്uതതിനുശേഷം, അപ്പാച്ചെ വെബ് സെർവർ ആരംഭിച്ച് പ്രവർത്തിക്കുന്നുണ്ടോയെന്ന് അൻസിബിൾ പിന്നീട് പരിശോധിക്കുന്നു.

റിമോട്ട് ഹോസ്റ്റുകളിലോ സെർവറുകളിലോ കമാൻഡുകൾ നടപ്പിലാക്കുന്നതിനായി പ്ലേബുക്കുകളിൽ ഉപയോഗിക്കുന്ന കോഡിന്റെ വ്യതിരിക്തമായ യൂണിറ്റുകളാണ് മൊഡ്യൂളുകൾ. ഓരോ മൊഡ്യൂളും ഒരു ആർഗ്യുമെന്റിനെ പിന്തുടരുന്നു.

ഒരു മൊഡ്യൂളിന്റെ അടിസ്ഥാന ഫോർമാറ്റ് കീയാണ്: മൂല്യം.

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

മുകളിലെ YAML കോഡ് സ്uനിപ്പെറ്റിൽ, -name, yum എന്നിവ മൊഡ്യൂളുകളാണ്.

ഒരു സെർവറിൽ നിർവ്വഹിക്കേണ്ട ചുമതലയെ നിർവ്വചിക്കുന്ന ഒരു സ്ക്രിപ്റ്റ് അല്ലെങ്കിൽ നിർദ്ദേശമാണ് അൻസിബിൾ പ്ലേ. നാടകങ്ങളുടെ ഒരു ശേഖരം ഒരു പ്ലേബുക്ക് രൂപീകരിക്കുന്നു. മറ്റൊരു വിധത്തിൽ പറഞ്ഞാൽ, ഒരു പ്ലേബുക്ക് ഒന്നിലധികം നാടകങ്ങളുടെ ഒരു ശേഖരമാണ്, അവയിൽ ഓരോന്നും ഒരു സെർവറിൽ നിർവ്വഹിക്കേണ്ട ചുമതല വ്യക്തമായി വ്യവസ്ഥ ചെയ്യുന്നു. YAML ഫോർമാറ്റിൽ പ്ലേകൾ നിലവിലുണ്ട്.

നിങ്ങൾക്ക് പ്രോഗ്രാമിംഗിൽ ഒരു പശ്ചാത്തലമുണ്ടെങ്കിൽ, മിക്കവാറും നിങ്ങൾ വേരിയബിളുകൾ ഉപയോഗിച്ചിരിക്കാം. അടിസ്ഥാനപരമായി, ഒരു വേരിയബിൾ ഒരു മൂല്യത്തെ പ്രതിനിധീകരിക്കുന്നു. ഒരു വേരിയബിളിൽ അക്ഷരങ്ങൾ, അക്കങ്ങൾ, അടിവരകൾ എന്നിവ ഉൾപ്പെടാം, എന്നാൽ എല്ലായ്പ്പോഴും അക്ഷരങ്ങളിൽ തുടങ്ങണം.

നിർദ്ദേശങ്ങൾ ഒരു സിസ്റ്റത്തിൽ നിന്ന് മറ്റൊന്നിലേക്ക് മാറുമ്പോൾ വേരിയബിളുകൾ ഉപയോഗിക്കുന്നു. കോൺഫിഗറേഷൻ അല്ലെങ്കിൽ വിവിധ സേവനങ്ങളിലും ഫീച്ചറുകളിലും ഇത് പ്രത്യേകിച്ചും സത്യമാണ്.

3 പ്രധാന തരം വേരിയബിളുകൾ ഉണ്ട്:

  • പ്ലേബുക്ക് വേരിയബിളുകൾ
  • ഇൻവെന്ററി വേരിയബിളുകൾ
  • പ്രത്യേക വേരിയബിളുകൾ

അൻസിബിളിൽ, വേരിയബിളുകൾ ആദ്യം vars k ഉപയോഗിച്ചാണ് നിർവചിക്കുന്നത്, തുടർന്ന് വേരിയബിളിന്റെ പേരും മൂല്യവും.

വാക്യഘടന കാണിച്ചിരിക്കുന്നത് പോലെയാണ്:

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

ചുവടെയുള്ള കോഡ് പരിഗണിക്കുക.

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

മുകളിലെ ഉദാഹരണത്തിൽ, ഇവിടെയുള്ള വേരിയബിൾ web_directory ആണ്, അത് /var/www/html/ പാതയിൽ ഒരു ഡയറക്uടറി സൃഷ്uടിക്കാൻ നിർദ്ദേശിക്കുന്നു.

ഒരു ഹോസ്റ്റ് സിസ്റ്റത്തിൽ ഒരു പ്ലേബുക്ക് എക്സിക്യൂട്ട് ചെയ്യുമ്പോൾ അൻസിബിൾ ശേഖരിക്കുന്ന സിസ്റ്റം പ്രോപ്പർട്ടിയാണ് വസ്തുതകൾ. പ്രോപ്പർട്ടികളിൽ ഹോസ്റ്റ് നെയിം, ഒഎസ് ഫാമിലി, സിപിയു തരം, സിപിയു കോറുകൾ എന്നിവ ഉൾപ്പെടുന്നു.

ഉപയോഗത്തിന് ലഭ്യമായ വസ്uതുതകളുടെ എണ്ണം കാണുന്നതിന് കമാൻഡ് നൽകുക.

$ ansible localhost -m setup

നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ, സ്ഥിരസ്ഥിതിയായി ധാരാളം വസ്തുതകൾ പ്രദർശിപ്പിച്ചിരിക്കുന്നു. കാണിച്ചിരിക്കുന്നതുപോലെ ഫിൽട്ടർ പാരാമീറ്റർ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഫലങ്ങൾ കൂടുതൽ ചുരുക്കാം.

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

അൻസിബിളിൽ, അൻസിബിൾ എങ്ങനെ പ്രവർത്തിക്കുന്നുവെന്ന് നിർണ്ണയിക്കുന്ന വ്യത്യസ്ത പാരാമീറ്റർ ക്രമീകരണങ്ങൾ ഉൾക്കൊള്ളുന്ന ഒരു ഫയലാണ് കോൺഫിഗറേഷൻ ഫയൽ. /etc/ansible/ ഡയറക്ടറിയിൽ സ്ഥിതി ചെയ്യുന്ന ansible.cfg ഫയലാണ് ഡിഫോൾട്ട് കോൺഫിഗറേഷൻ ഫയൽ.

പ്രവർത്തിപ്പിക്കുന്നതിലൂടെ നിങ്ങൾക്ക് കോൺഫിഗറേഷൻ ഫയൽ കാണാൻ കഴിയും:

$ cat /etc/ansible/ansible.cfg

നിങ്ങൾക്ക് നിരീക്ഷിക്കാനാകുന്നതുപോലെ, ഇൻവെന്ററി, ലൈബ്രറി ഫയൽ പാഥുകൾ, സുഡോ യൂസർ, പ്ലഗിൻ ഫിൽട്ടറുകൾ, മൊഡ്യൂളുകൾ തുടങ്ങി നിരവധി പാരാമീറ്ററുകൾ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്. ഈ പരാമീറ്ററുകൾ കമന്റ് ചെയ്യുന്നതിലൂടെയും അതിലെ മൂല്യങ്ങളിൽ മാറ്റം വരുത്തുന്നതിലൂടെയും ക്രമീകരിക്കാവുന്നതാണ്.

കൂടാതെ, നിങ്ങളുടെ ഡിഫോൾട്ട് കോൺഫിഗറേഷൻ ഫയലിന് പുറമെ അൻസിബിളിൽ പ്രവർത്തിക്കുന്ന ഒന്നിലധികം കോൺഫിഗറേഷൻ ഫയലുകൾ നിങ്ങൾക്കുണ്ടാകും.

അൻസിബിളിലെ പ്രധാന ഘടകങ്ങൾ പരിശോധിച്ച ശേഷം, അവ നിങ്ങളുടെ വിരൽത്തുമ്പിൽ സൂക്ഷിക്കാനും ഞങ്ങൾ മുന്നോട്ട് പോകുമ്പോൾ അവ തിരഞ്ഞെടുക്കാനും നിങ്ങൾക്ക് കഴിയുമെന്ന് ഞങ്ങൾ പ്രതീക്ഷിക്കുന്നു. നിങ്ങളുടെ അടുത്ത വിഷയത്തിൽ ഞങ്ങളോടൊപ്പം ചേരൂ.