Efni - Gerðu sjálfvirkan Linux stjórnunarverkefni og dreifingu forrita yfir SSH


Þegar kemur að því að stjórna ytri vélum og dreifingu forrita, þá eru til nokkur skipanalínuverkfæri þarna úti þó að mörg eigi við vandamál að stríða vegna skorts á nákvæmum skjölum.

Í þessari handbók munum við fara yfir skrefin til að kynna og byrja á því hvernig á að nota efni til að bæta umsýslu netþjónahópa.

Fabric er python bókasafn og öflugt skipanalínuverkfæri til að framkvæma kerfisstjórnunarverkefni eins og að framkvæma SSH skipanir á mörgum vélum og dreifing forrita.

Lestu einnig: Notaðu Shell Scripting til að gera sjálfvirkan viðhaldsverkefni Linux kerfis

Að hafa góða þekkingu á Python getur verið gagnlegt þegar þú notar Fabric, en gæti vissulega ekki verið nauðsynlegt.

Ástæður fyrir því að þú ættir að velja efni fram yfir aðra valkosti:

  1. Einfaldleiki
  2. Það er vel skjalfest
  3. Þú þarft ekki að læra annað tungumál ef þú ert nú þegar python gaur.
  4. Auðvelt í uppsetningu og notkun.
  5. Það er hratt í rekstri.
  6. Það styður samhliða fjarframkvæmd.

Hvernig á að setja upp sjálfvirknitól fyrir efni í Linux

Mikilvægur eiginleiki við efni er að ytri vélarnar sem þú þarft að stjórna þurfa aðeins að hafa staðlaða OpenSSH netþjóninn uppsettan. Þú þarft aðeins að setja upp ákveðnar kröfur á netþjóninum sem þú stjórnar ytri netþjónum áður en þú getur byrjað.

  1. Python 2.5+ með þróunarhausunum
  2. Python-uppsetningarverkfæri og pip (valfrjálst, en valið) gcc

Efni er auðveldlega sett upp með því að nota pip (mjög mælt með), en þú gætir líka kosið að velja sjálfgefna pakkastjórann þinn apt-get til að setja upp efnispakka, venjulega kallaður efni eða python-efni.

Fyrir dreifingar byggðar á RHEL/CentOS, verður þú að hafa EPEL geymslu uppsett og virkt á kerfinu til að setja upp efnispakka.

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

Fyrir Debian og afleiður þess eins og Ubuntu og Mint geta notendur einfaldlega gert apt-get til að setja upp efnispakkann eins og sýnt er:

# apt-get install fabric

Ef þú vilt setja upp þróunarútgáfu af efni, geturðu notað pip til að grípa í nýjustu meistaragreinina.

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

Þegar pip hefur verið sett upp með góðum árangri geturðu notað pip til að grípa nýjustu útgáfuna af efninu eins og sýnt er:

# pip install fabric

Hvernig á að nota efni til að gera sjálfvirkan Linux stjórnunarverkefni

Svo skulum byrja á því hvernig þú getur notað efni. Meðan á uppsetningarferlinu stóð var Python handriti sem heitir fab bætt við möppu á slóðinni þinni. Dásamlega handritið gerir alla vinnu þegar efni er notað.

Samkvæmt venju þarftu að byrja á því að búa til Python skrá sem heitir fabfile.py með uppáhalds ritlinum þínum. Mundu að þú getur gefið þessari skrá annað nafn eins og þú vilt en þú þarft að tilgreina skráarslóðina sem hér segir:

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

Fabric notar fabfile.py til að framkvæma verkefni. Fabric-skráin ætti að vera í sömu möppu og þú keyrir Fabric tólið.

Dæmi 1: Við skulum búa til grunn Hello World fyrst.

# vi fabfile.py

Bættu þessum kóðalínum við skrána.

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

Vistaðu skrána og keyrðu skipunina hér að neðan.

# fab hello

Við skulum nú skoða dæmi um fabfile.py til að framkvæma spenntursskipunina á staðbundinni vél.

Dæmi 2: Opnaðu nýja fabfile.py skrá sem hér segir:

# vi fabfile.py

Og límdu eftirfarandi kóðalínur í skrána.

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

Vistaðu síðan skrána og keyrðu eftirfarandi skipun:

# fab uptime

Fabric API notar stillingarorðabók sem er jafngildi Python samtengingarfylkis sem kallast env, sem geymir gildi sem stjórna því hvað Fabric gerir.

env.hosts er listi yfir netþjóna sem þú vilt keyra Fabric verkefni á. Ef netið þitt er 192.168.0.0 og vilt stjórna hýsil 192.168.0.2 og 192.168.0.6 með fabskránni þinni, gætirðu stillt env.hosts sem hér segir:

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

Ofangreind kóðalína tilgreinir aðeins vélina sem þú munt keyra efnisverkefni á en gera ekkert meira. Þess vegna geturðu skilgreint nokkur verkefni, Fabric býður upp á mengi aðgerða sem þú getur notað til að hafa samskipti við ytri vélarnar þínar.

Þó að það séu margar aðgerðir eru þær sem oftast eru notaðar:

  1. run – sem keyrir skel skipun á ytri vél.
  2. local – sem keyrir skipun á staðbundinni vél.
  3. sudo – sem keyrir skel skipun á ytri vél, með rótarréttindi.
  4. Get – sem hleður niður einni eða fleiri skrám frá ytri vél.
  5. Setja – sem hleður einni eða fleiri skrám inn á ytri vél.

Dæmi 3: Til að enduróma skilaboð á mörgum vélum skaltu búa til fabfile.py eins og þann hér að neðan.

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

Til að framkvæma verkefnin skaltu keyra eftirfarandi skipun:

# fab echo

Dæmi 4: Þú getur bætt fabfile.py sem þú bjóst til áðan til að framkvæma spenntursskipunina á staðbundinni vél, þannig að hún keyri spenntursskipunina og athugar einnig disknotkun með því að nota df skipunina á mörgum vélar sem hér segir:

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

Vistaðu skrána og keyrðu eftirfarandi skipun:

# fab uptime
# fab disk_space

Dæmi 4: Við skulum skoða dæmi til að setja upp LAMP (Linux, Apache, MySQL/MariaDB og PHP) netþjón á ytri Linux netþjóni.

Við munum skrifa aðgerð sem gerir kleift að setja LAMP upp fjarstýrt með því að nota rótarréttindi.

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

Vistaðu skrána og keyrðu eftirfarandi skipun:

# fab deploy_lamp

Athugið: Vegna mikillar framleiðslu er ekki mögulegt fyrir okkur að búa til skjávarp (animated gif) fyrir þetta dæmi.

Nú geturðu gert sjálfvirkan Linux netþjónastjórnunarverkefni með því að nota Fabric og eiginleika þess og dæmi sem gefin eru hér að ofan ...

  1. Þú getur keyrt fab –help til að skoða hjálparupplýsingar og langan lista yfir tiltæka skipanalínuvalkosti.
  2. Mikilvægur valkostur er –fabfile=PATH sem hjálpar þér að tilgreina aðra python mát skrá til að flytja inn aðra en fabfile.py.
  3. Til að tilgreina notandanafn til að nota þegar tengst er við ytri gestgjafa, notaðu –user=USER valkostinn.
  4. Til að nota lykilorð fyrir auðkenningu og/eða sudo skaltu nota –password=PASSWORD valkostinn.
  5. Til að prenta út nákvæmar upplýsingar um skipunina NAME, notaðu –display=NAME valkostinn.
  6. Til að skoða snið, notaðu –list valmöguleika, valkosti: stutt, venjulegt, hreiður, notaðu –list-format=FORMAT valkostinn.
  7. Til að prenta lista yfir mögulegar skipanir og hætta skaltu láta –list valmöguleikann fylgja með.
  8. Þú getur tilgreint staðsetningu stillingarskráar sem á að nota með því að nota –config=PATH valkostinn.
  9. Til að sýna litaða villuúttak skaltu nota –colorize-errors.
  10. Til að skoða útgáfunúmer forritsins og hætta, notaðu –version valkostinn.

Samantekt

Efni er öflugt tæki og er vel skjalfest og auðveldar notkun fyrir nýliða. Þú getur lesið skjölin í heild sinni til að fá meiri skilning á því. Ef þú hefur einhverjar upplýsingar til að bæta við eða ef þú lendir í villum sem þú lendir í við uppsetningu og notkun geturðu skilið eftir athugasemd og við munum finna leiðir til að laga þær.

Tilvísun: Dúkur skjöl