Tela - I-automate ang Imong Mga Buluhaton sa Administrasyon sa Linux ug Mga Deployment sa Aplikasyon Labaw sa SSH


Kung bahin sa pagdumala sa mga hilit nga makina ug pag-deploy sa mga aplikasyon, adunay daghang mga gamit sa linya sa command nga naglungtad bisan kung daghan ang adunay kasagaran nga problema sa kakulang sa detalyado nga dokumentasyon.

Sa kini nga giya, atong tabonan ang mga lakang sa pagpaila ug pagsugod kung giunsa ang paggamit sa panapton aron mapauswag ang pagdumala sa mga grupo sa mga server.

Ang panapton usa ka librarya sa python ug usa ka kusgan nga himan sa linya sa command alang sa paghimo sa mga buluhaton sa pagdumala sa sistema sama sa pagpatuman sa mga mando sa SSH sa daghang mga makina ug pag-deploy sa aplikasyon.

Basaha Usab: Gamita ang Shell Scripting aron I-automate ang Linux System Maintenance Tasks

Ang pagbaton ug kahibalo sa pagtrabaho sa Python mahimong makatabang kung gamiton ang Tela, apan dili gyud kinahanglan.

Ang mga hinungdan ngano nga kinahanglan nimo nga pilion ang panapton kaysa sa ubang mga alternatibo:

  1. Kay kayano
  2. Kini maayo nga dokumentado
  3. Dili nimo kinahanglan nga magkat-on og laing lengguwahe kung usa ka na ka sawa.
  4. Sayon i-install ug gamiton.
  5. Kini paspas sa iyang mga operasyon.
  6. Kini nagsuporta sa parallel remote execution.

Giunsa ang Pag-install sa Fabric Automation Tool sa Linux

Usa ka hinungdanon nga kinaiya bahin sa panapton mao nga ang mga hilit nga makina nga kinahanglan nimo nga ipangalagad kinahanglan ra nga adunay gi-install nga standard nga OpenSSH server. Kinahanglan ra nimo ang pipila nga mga kinahanglanon nga na-install sa server diin ikaw nagdumala sa mga hilit nga server sa dili ka pa makasugod.

  1. Python 2.5+ uban ang development header
  2. Python-setuptools ug pip (opsyonal, apan gipalabi) gcc

Ang panapton dali nga ma-install gamit ang pip (girekomendar kaayo), apan mahimo usab nimo nga pilion ang imong default manager sa package nga apt-get to install nga pakete sa panapton, kasagaran gitawag nga panapton o python-fabric.

Para sa RHEL/CentOS based distributions, kinahanglan nga adunay EPEL repository nga na-install ug ma-enable sa system para ma-install ang fabric package.

# yum install fabric   [On RedHat based systems]  
# dnf install fabric   [On Fedora 22+ versions]

Alang sa Debian ug kini mga derivatives sama sa mga tiggamit sa Ubuntu ug Mint mahimo ra nga buhaton ang apt-get aron ma-install ang panapton nga pakete sama sa gipakita:

# apt-get install fabric

Kung gusto nimo i-install ang development nga bersyon sa tela, mahimo nimong gamiton ang pip aron makuha ang labing bag-o nga master branch.

# yum install python-pip       [On RedHat based systems] 
# dnf install python-pip       [On Fedora 22+ versions]
# apt-get install python-pip   [On Debian based systems]

Kung malampuson nga na-install ang pip, mahimo nimong gamiton ang pip aron makuha ang labing bag-ong bersyon sa panapton sama sa gipakita:

# pip install fabric

Giunsa Paggamit ang Tela aron I-automate ang Mga Buluhaton sa Pagdumala sa Linux

Mao nga magsugod kita kung giunsa nimo magamit ang Tela. Atol sa proseso sa pag-instalar, usa ka script sa Python nga gitawag og fab ang gidugang sa usa ka direktoryo sa imong agianan. Ang fab script naghimo sa tanan nga trabaho kung naggamit og panapton.

Pinaagi sa kombensiyon, kinahanglang magsugod ka pinaagi sa paghimo og Python file nga gitawag og fabfile.py gamit ang imong paborito nga editor. Hinumdumi nga mahimo nimong hatagan kini nga file og lahi nga ngalan kung gusto nimo apan kinahanglan nimo nga ipiho ang agianan sa file sama sa mosunod:

# fabric --fabfile /path/to/the/file.py

Gigamit sa panapton ang fabfile.py aron ipatuman ang mga buluhaton. Ang fabfile kinahanglan nga anaa sa sama nga direktoryo diin imong gipadagan ang Fabric tool.

Panig-ingnan 1: Maghimo ta ug batakang Hello World una.

# vi fabfile.py

Idugang kini nga mga linya sa code sa file.

def hello():
       print('Hello world, Tecmint community')

I-save ang file ug padagana ang command sa ubos.

# fab hello

Atong tan-awon karon ang usa ka pananglitan sa usa ka fabfile.py aron ipatuman ang uptime nga mando sa lokal nga makina.

Pananglitan 2: Ablihi ang usa ka bag-ong fabfile.py file sama sa mosunod:

# vi fabfile.py

Ug idikit ang mosunod nga mga linya sa code sa file.

#!  /usr/bin/env python
from fabric.api import local
def uptime():
  local('uptime')

Dayon i-save ang file ug padagana ang mosunod nga sugo:

# fab uptime

Ang Fabric API naggamit ug configuration dictionary nga katumbas sa Python sa usa ka associative array nga nailhang env, nga nagtipig og mga value nga nagkontrol sa gibuhat sa Fabric.

Ang env.hosts usa ka lista sa mga server diin gusto nimo nga ipadagan ang mga buluhaton sa Tela. Kung ang imong network 192.168.0.0 ug gusto nimo nga modumala sa host 192.168.0.2 ug 192.168.0.6 gamit ang imong fabfile, mahimo nimong i-configure ang env.hosts sama sa mosunod:

#!/usr/bin/env python
from  fabric.api import env
env.hosts = [ '192.168.0.2', '192.168.0.6' ]

Ang linya sa kodigo sa ibabaw nagtino lamang sa mga host diin ikaw modagan sa mga buluhaton sa Tela apan wala nay mahimo pa. Busa mahimo nimong ipasabut ang pipila ka mga buluhaton, ang Fabric naghatag usa ka hugpong sa mga gimbuhaton nga magamit nimo aron makig-uban sa imong hilit nga mga makina.

Bisan kung adunay daghang mga gimbuhaton, ang labing sagad nga gigamit mao ang:

  1. run – nga nagpadagan ug shell command sa layo nga makina.
  2. lokal – nga nagpadagan sa command sa lokal nga makina.
  3. sudo – nga nagpadagan ug shell command sa layo nga makina, nga adunay mga pribilihiyo sa gamut.
  4. Pagkuha – nga nag-download sa usa o daghan pa nga mga file gikan sa layo nga makina.
  5. Put – nga nag-upload og usa o daghan pang mga file ngadto sa layo nga makina.

Pananglitan 3: Aron ipalanog ang usa ka mensahe sa daghang mga makina paghimo ug fabfile.py sama sa ubos.

#!/usr/bin/env python
from fabric.api import env, run
env.hosts = ['192.168.0.2','192.168.0.6']
def echo():
      run("echo -n 'Hello, you are tuned to Tecmint ' ")

Aron ipatuman ang mga buluhaton, pagdagan ang mosunud nga mando:

# fab echo

Pananglitan 4: Mahimo nimong pauswagon ang fabfile.py nga imong gibuhat sa sayo pa aron ipatuman ang uptime nga sugo sa lokal nga makina, aron kini modagan sa uptime nga sugo ug magsusi usab sa paggamit sa disk gamit ang df command sa multiple makina sama sa mosunod:

#!/usr/bin/env python
from fabric.api import env, run
env.hosts = ['192.168.0.2','192.168.0.6']
def uptime():
      run('uptime')
def disk_space():
     run('df -h')

I-save ang file ug padagana ang mosunod nga sugo:

# fab uptime
# fab disk_space

Panig-ingnan 4: Atong tan-awon ang usa ka pananglitan sa pag-deploy sa LAMP (Linux, Apache, MySQL/MariaDB ug PHP) nga server sa usa ka hilit nga server sa Linux.

Magsulat mi og function nga magtugot sa LAMP nga ma-install sa layo gamit ang root privileges.

#!/usr/bin/env python
from fabric.api import env, run
env.hosts = ['192.168.0.2','192.168.0.6']
def deploy_lamp():
  run ("yum install -y httpd mariadb-server php php-mysql")
#!/usr/bin/env python
from fabric.api import env, run
env.hosts = ['192.168.0.2','192.168.0.6']
def deploy_lamp():
  sudo("apt-get install -q apache2 mysql-server libapache2-mod-php5 php5-mysql")

I-save ang file ug padagana ang mosunod nga sugo:

# fab deploy_lamp

Mubo nga sulat: Tungod sa dako nga output, kini dili posible alang kanato sa paghimo sa usa ka screencast (animated gif) alang niini nga panig-ingnan.

Karon mahimo nimong i-automate ang mga buluhaton sa pagdumala sa server sa Linux gamit ang Fabric ug ang mga bahin niini ug mga pananglitan nga gihatag sa ibabaw…

  1. Mahimo nimong ipadagan ang fab –help aron makita ang impormasyon sa tabang ug taas nga lista sa mga opsyon sa command line.
  2. Usa ka importante nga opsyon mao ang –fabfile=PATH nga makatabang nimo sa pagtino ug lain nga python module file nga i-import ug lain unya fabfile.py.
  3. Aron itudlo ang usa ka username nga gamiton kung magkonektar sa layo nga mga host, gamita ang –user=USER nga kapilian.
  4. Aron magamit ang password para sa pag-authenticate ug/o sudo, gamita ang –password=PASSWORD nga opsyon.
  5. Aron maimprinta ang detalyadong impormasyon bahin sa command NAME, gamita ang –display=NAME nga opsyon.
  6. Aron tan-awon ang mga format gamita ang –list option, mga pagpili: mubo, normal, nested, gamita ang –list-format=FORMAT option.
  7. Aron i-print ang lista sa posibleng mga command ug exit, iapil ang –list option.
  8. Mahimo nimong ipiho ang lokasyon sa config file nga gamiton pinaagi sa paggamit sa –config=PATH nga opsyon.
  9. Aron magpakita ug colored error output, gamita ang –colorize-errors.
  10. Aron makita ang numero sa bersyon sa programa ug paggawas, gamita ang –bersyon nga kapilian.

Summary

Ang panapton usa ka gamhanan nga himan ug maayo nga dokumentado ug naghatag og sayon nga paggamit alang sa mga bag-ohan. Mahimo nimong basahon ang tibuok nga dokumentasyon aron mas masabtan kini. Kung naa kay impormasyon nga idugang o incase sa bisan unsa nga mga sayop nga imong masugatan sa panahon sa pag-instalar ug paggamit, mahimo kang magbilin ug komento ug mangita mig paagi sa pag-ayo niini.

Reperensya: Dokumentasyon sa panapton