Kitambaa - Otosha Majukumu Yako ya Utawala wa Linux na Usambazaji wa Maombi Juu ya SSH


Linapokuja suala la kudhibiti mashine za mbali na upelekaji wa programu, kuna zana kadhaa za safu ya amri huko nje ingawa nyingi zina shida ya kawaida ya ukosefu wa nyaraka za kina.

Katika mwongozo huu, tutashughulikia hatua za kutambulisha na kuanza jinsi ya kutumia kitambaa kuboresha usimamizi wa vikundi vya seva.

Kitambaa ni maktaba ya chatu na zana yenye nguvu ya safu ya amri ya kutekeleza majukumu ya usimamizi wa mfumo kama vile kutekeleza amri za SSH kwenye mashine nyingi na uwekaji wa programu.

Soma Pia: Tumia Maandishi ya Shell Kuweka Majukumu ya Matengenezo ya Mfumo wa Linux Otomatiki

Kuwa na ujuzi wa kufanya kazi wa Python kunaweza kusaidia wakati wa kutumia Kitambaa, lakini kwa hakika inaweza kuwa sio lazima.

Sababu kwa nini unapaswa kuchagua kitambaa badala ya njia zingine:

  1. Urahisi
  2. Imeandikwa vyema
  3. Huhitaji kujifunza lugha nyingine ikiwa tayari wewe ni chatu.
  4. Rahisi kusakinisha na kutumia.
  5. Ina kasi katika utendakazi wake.
  6. Inaauni utekelezaji sambamba wa mbali.

Jinsi ya Kufunga Zana ya Uendeshaji wa Kitambaa kwenye Linux

Sifa muhimu kuhusu kitambaa ni kwamba mashine za mbali ambazo unahitaji kusimamia zinahitaji tu kuwa na seva ya kawaida ya OpenSSH iliyosakinishwa. Unahitaji tu mahitaji fulani yaliyosakinishwa kwenye seva ambayo unasimamia seva za mbali kabla ya kuanza.

  1. Python 2.5+ yenye vichwa vya ukuzaji
  2. Python-setuptools na bomba (hiari, lakini inapendekezwa) gcc

Kitambaa husakinishwa kwa urahisi kwa kutumia pip (inapendekezwa sana), lakini pia unaweza kupendelea kuchagua kidhibiti cha kifurushi chako chaguo-msingi apt-get kusakinisha kifurushi cha kitambaa, kwa kawaida huitwa kitambaa au python-fabric.

Kwa usambazaji wa msingi wa RHEL/CentOS, lazima uwe na hazina ya EPEL iliyosakinishwa na kuwezeshwa kwenye mfumo ili kusakinisha kifurushi cha kitambaa.

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

Kwa Debian na derivatives kama vile watumiaji wa Ubuntu na Mint wanaweza kufanya apt-get kusakinisha kifurushi cha kitambaa kama inavyoonyeshwa:

# apt-get install fabric

Ikiwa ungependa kusakinisha toleo la ukuzaji la kitambaa, unaweza kutumia pip kunyakua tawi kuu la hivi majuzi.

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

Pip ikishasakinishwa kwa mafanikio, unaweza kutumia pip kunyakua toleo la hivi punde la kitambaa kama inavyoonyeshwa:

# pip install fabric

Jinsi ya Kutumia Kitambaa Kuendesha Kazi za Utawala za Linux

Kwa hivyo hebu tuanze jinsi unavyoweza kutumia kitambaa. Wakati wa mchakato wa usakinishaji, hati ya Python inayoitwa fab iliongezwa kwenye saraka kwenye njia yako. Hati ya kitambaa hufanya kazi yote wakati wa kutumia kitambaa.

Kwa kawaida, unahitaji kuanza kwa kuunda faili ya Python inayoitwa fabfile.py kwa kutumia kihariri chako unachopenda. Kumbuka unaweza kuipa faili hii jina tofauti unavyotaka lakini utahitaji kutaja njia ya faili kama ifuatavyo:

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

Kitambaa hutumia fabfile.py kutekeleza kazi. Fabfile inapaswa kuwa katika saraka sawa ambapo unaendesha zana ya Kitambaa.

Mfano 1: Hebu tuunde Hujambo Ulimwengu msingi kwanza.

# vi fabfile.py

Ongeza mistari hii ya nambari kwenye faili.

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

Hifadhi faili na uendesha amri hapa chini.

# fab hello

Hebu sasa tuangalie mfano wa fabfile.py kutekeleza amri ya uptime kwenye mashine ya ndani.

Mfano 2: Fungua faili mpya ya fabfile.py kama ifuatavyo:

# vi fabfile.py

Na ubandike mistari ifuatayo ya nambari kwenye faili.

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

Kisha uhifadhi faili na uendesha amri ifuatayo:

# fab uptime

API ya kitambaa hutumia kamusi ya usanidi ambayo ni sawa na Python ya safu shirikishi inayojulikana kama env, ambayo huhifadhi thamani zinazodhibiti kile kitambaa hufanya.

env.hosts ni orodha ya seva ambazo ungependa kuendesha kazi za kitambaa. Ikiwa mtandao wako ni 192.168.0.0 na ungependa kudhibiti seva pangishi 192.168.0.2 na 192.168.0.6 na faili yako, unaweza kusanidi env.hosts kama ifuatavyo:

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

Mstari wa hapo juu wa nambari hutaja tu wapangishi ambao utaendesha kazi za Kitambaa lakini usifanye chochote zaidi. Kwa hivyo unaweza kufafanua baadhi ya kazi, Kitambaa hutoa seti ya vitendakazi ambavyo unaweza kutumia kuingiliana na mashine zako za mbali.

Ingawa kuna kazi nyingi, zinazotumiwa zaidi ni:

  1. run - ambayo huendesha amri ya ganda kwenye mashine ya mbali.
  2. local - ambayo inaendesha amri kwenye mashine ya ndani.
  3. sudo - ambayo huendesha amri ya ganda kwenye mashine ya mbali, yenye upendeleo wa mizizi.
  4. Pata - ambayo hupakua faili moja au zaidi kutoka kwa mashine ya mbali.
  5. Put - ambayo hupakia faili moja au zaidi kwenye mashine ya mbali.

Mfano 3: Kutoa mwangwi wa ujumbe kwenye mashine nyingi tengeneza fabfile.py kama ilivyo hapa chini.

#!/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 ' ")

Ili kutekeleza majukumu, endesha amri ifuatayo:

# fab echo

Mfano wa 4: Unaweza kuboresha fabfile.py ambayo uliunda mapema kutekeleza amri ya uptime kwenye mashine ya ndani, ili iendeshe amri ya uptime na pia kuangalia utumiaji wa diski kwa kutumia df amri kwenye nyingi. mashine kama ifuatavyo:

#!/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')

Hifadhi faili na uendesha amri ifuatayo:

# fab uptime
# fab disk_space

Mfano wa 4: Hebu tuangalie mfano wa kupeleka seva ya LAMP (Linux, Apache, MySQL/MariaDB na PHP) kwenye seva ya mbali ya Linux.

Tutaandika kazi ambayo itaruhusu LAMP kusakinishwa kwa mbali kwa kutumia haki za mizizi.

#!/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")

Hifadhi faili na uendesha amri ifuatayo:

# fab deploy_lamp

Kumbuka: Kwa sababu ya matokeo mengi, haiwezekani kwetu kuunda skrini (gif iliyohuishwa) kwa mfano huu.

Sasa unaweza kuhariri kazi za usimamizi wa seva ya Linux kwa kutumia Kitambaa na vipengele vyake na mifano iliyotolewa hapo juu...

  1. Unaweza kuendesha fab -help ili kuona maelezo ya usaidizi na orodha ndefu ya chaguo za mstari wa amri zinazopatikana.
  2. Chaguo muhimu ni -fabfile=PATH ambalo hukusaidia kubainisha faili tofauti ya moduli ya chatu ili kuleta zingine kisha fabfile.py.
  3. Ili kubainisha jina la mtumiaji la kutumia unapounganisha kwa seva pangishi za mbali, tumia chaguo la -user=USER.
  4. Ili kutumia nenosiri kwa uthibitishaji na/au sudo, tumia -password=PASSWORD chaguo.
  5. Ili kuchapisha maelezo ya kina kuhusu amri NAME, tumia -display=NAME chaguo.
  6. Ili kuona chaguo la fomati tumia -list, chaguo: fupi, la kawaida, lililowekwa, tumia chaguo la -list-format=FORMAT.
  7. Ili kuchapisha orodha ya amri zinazowezekana na uondoke, jumuisha chaguo la -orodha.
  8. Unaweza kubainisha eneo la faili ya usanidi kutumia kwa kutumia -config=PATH chaguo.
  9. Ili kuonyesha matokeo ya makosa ya rangi, tumia -colorize-errors.
  10. Ili kuona nambari ya toleo la programu na uondoke, tumia chaguo la -version.

Muhtasari

Kitambaa ni zana yenye nguvu na imerekodiwa vyema na hutoa matumizi rahisi kwa wanaoanza. Unaweza kusoma hati kamili ili kupata uelewa zaidi juu yake. Ikiwa una maelezo yoyote ya kuongeza au kutokea kwa hitilafu zozote utakazokutana nazo wakati wa kusakinisha na kutumia, unaweza kuacha maoni na tutatafuta njia za kuzirekebisha.

Rejea: Nyaraka za kitambaa