Mata - Linux dolandyryş meseleleriňizi we SSH-den programma ýerleşdirmelerini awtomatlaşdyryň


Uzakdaky maşynlary dolandyrmak we amaly programmalary ýerleşdirmek barada aýdylanda, ol ýerde birnäçe buýruk setir gurallary bar, ýöne köpüsinde jikme-jik resminamalaryň ýoklugy bilen baglanyşykly umumy mesele bar.

Bu gollanmada, serwerleriň toparlaryny dolandyrmakda matany nädip ulanmalydygy bilen tanyşdyrmak we başlamak üçin ädimler barada durup geçeris.

Mata, piton kitaphanasy we köp sanly enjamda SSH buýruklaryny ýerine ýetirmek we amaly ýerleşdirmek ýaly ulgam dolandyryş meselelerini ýerine ýetirmek üçin güýçli buýruk setiri guralydyr.

Şeýle hem okaň: Linux ulgamyna hyzmat etmek meselelerini awtomatlaşdyrmak üçin “Shell Scripting” -i ulanyň

Python hakda işleýän bilimiň bolmagy, Mata ulanylanda peýdaly bolup biler, ýöne hökman bolmazlygy mümkin.

Beýleki alternatiwalardan mata saýlamagyň sebäpleri:

  1. Sadalyk
  2. Gowy resminamalaşdyrylan
  3. Piton ýigit bolsaňyz, başga dil öwrenmegiň zerurlygy ýok.
  4. Gurmak we ulanmak aňsat.
  5. Işinde çalt.
  6. Paralel uzakdan ýerine ýetirilmegini goldaýar.

Linux-da mata awtomatlaşdyryş guralyny nädip gurmaly

Mata barada möhüm aýratynlyk, dolandyrmak üçin uzakdaky maşynlaryň diňe adaty OpenSSH serweriniň gurulmagydyr. Diňe başlamazdan ozal uzakdaky serwerleri dolandyrýan serweriňizde belli bir talaplar gerek.

  1. Python 2.5+ ösüş sözbaşylary bilen
  2. Python-setuptools we pip (islege bagly, ýöne ileri tutulýan) gcc

Mata turba (aňsatlyk bilen maslahat berilýär) arkaly aňsatlyk bilen gurnalýar, ýöne mata paketini gurmak üçin adaty mata menejeri apt-get-i saýlap bilersiňiz, adatça mata ýa-da pifon-mata diýilýär.

RHEL/CentOS esasly paýlamalar üçin, EPEL ammary gurulmaly we ulgamda mata paketini gurmak üçin açyk bolmaly.

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

Debian üçin we Ubuntu we Mint ýaly ulanyjylar üçin mata paketini görkezilişi ýaly gurmak üçin diňe apt-get edip bilerler:

# apt-get install fabric

Matanyň ösüş wersiýasyny gurmak isleseňiz, iň soňky ussat şahany almak üçin turbany ulanyp bilersiňiz.

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

Turbany üstünlikli gurnandan soň, görkezilişi ýaly matanyň iň soňky wersiýasyny almak üçin turbany ulanyp bilersiňiz:

# pip install fabric

Linux dolandyryş meselelerini awtomatlaşdyrmak üçin matany nädip ulanmaly

Mata nädip ulanyp boljakdygyna başlalyň. Gurnama prosesinde, ýoluňyzdaky kataloga fab atly Python skripti goşuldy. Fab skripti mata ulanylanda ähli işleri ýerine ýetirýär.

Düzgüne görä, halaýan redaktoryňyzy ulanyp, fabfile.py atly Python faýly döretmekden başlamaly. Bu faýly isleýşiňiz ýaly başga bir at berip biljekdigiňizi ýadyňyzdan çykarmaň, ýöne faýl ýoluny aşakdaky ýaly görkezmeli bolarsyňyz:

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

Mata işleri ýerine ýetirmek üçin fabfile.py ulanýar. Fabfile, Mata guralyny işledýän şol bir katalogda bolmaly.

Mysal 1: Ilki bilen esasy Salam Dünýä döredeliň.

# vi fabfile.py

Bu setir setirleri faýla goşuň.

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

Faýly ýazdyryň we aşakdaky buýrugy işlediň.

# fab hello

Indi ýerli enjamda iş wagtynyň buýrugyny ýerine ýetirmek üçin fabfile.py mysalyna seredeliň.

Mysal 2: Täze fabfile.py faýlyny aşakdaky ýaly açyň:

# vi fabfile.py

Aşakdaky kod setirlerini faýla goýuň.

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

Soňra faýly ýazdyryň we aşakdaky buýrugy işlediň:

# fab uptime

Fabric API, Pythonyň env ady bilen belli birleşýän massiwine deň bolan konfigurasiýa sözlügini ulanýar, bu matanyň edýän zatlaryna gözegçilik edýän bahalary saklaýar.

env.hosts Mata meselelerini işletmek isleýän serwerleriň sanawy. Toruňyz 192.168.0.0 bolsa we öz faýlyňyz bilen 192.168.0.2 we 192.168.0.6 hostlaryny dolandyrmak isleseňiz, env.hosts-y aşakdaky ýaly düzüp bilersiňiz:

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

Codeokardaky kod setiri diňe Mata meselelerini ýerine ýetirjek öý eýelerini görkezýär, ýöne başga hiç zat etme. Şonuň üçin käbir meseleleri kesgitläp bilersiňiz, Mata uzakdaky enjamlaryňyz bilen täsirleşmek üçin ulanyp boljak funksiýalar toplumyny hödürleýär.

Köp funksiýa bar bolsa-da, iň köp ulanylýanlar:

  1. run - uzakdaky enjamda gabyk buýrugyny işleýän.
  2. ýerli - ýerli enjamda buýruk işleýän.
  3. sudo - kök aýratynlyklary bolan uzakdaky enjamda gabyk buýrugyny işleýän.
  4. Get - uzakdaky enjamdan bir ýa-da birnäçe faýl göçürip alýan.
  5. Goýuň - uzakdaky maşyna bir ýa-da birnäçe faýl ýükleýän.

Mysal 3: Birnäçe enjamda habary gaýtalamak üçin aşakdaky ýaly fabfile.py dörediň.

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

Wezipeleri ýerine ýetirmek üçin aşakdaky buýrugy işlediň:

# fab echo

Mysal 4: timeerli enjamda iş wagtynyň buýrugyny ýerine ýetirmek üçin ozal döreden fabfile.py kämilleşdirip bilersiňiz, şeýlelik bilen iş wagtynyň buýrugyny işledýär we df buýrugyny ulanyp diskiň ulanylyşyny barlaýar. maşynlar aşakdaky ýaly:

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

Faýly ýazdyryň we aşakdaky buýrugy işlediň:

# fab uptime
# fab disk_space

Mysal 4: Geliň, uzakdaky Linux serwerinde LAMP (Linux, Apache, MySQL/MariaDB we PHP) serwerini ýerleşdirmek üçin bir meselä seredeliň.

LAMP-yň kök aýratynlyklaryndan uzakdan gurulmagyna mümkinçilik berýän bir funksiýa ýazarys.

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

Faýly ýazdyryň we aşakdaky buýrugy işlediň:

# fab deploy_lamp

Bellik: Uly çykyş sebäpli bu mysal üçin skrincast (animasiýa gif) döretmek mümkin däl.

Indi Mata we onuň aýratynlyklaryny we ýokarda görkezilen mysallary ulanyp, Linux serwerini dolandyrmak meselelerini awtomatlaşdyryp bilersiňiz…

  1. Kömek maglumatlary we elýeterli buýruk setiriniň uzyn sanawyny görmek üçin fab –help işledip bilersiňiz.
  2. Möhüm wariant –fabfile=PATH, başga fabfile.py import etmek üçin başga bir piton modul faýlyny kesgitlemäge kömek edýär.
  3. Uzakdaky hostlara birikdirilende ulanjak ulanyjy adyny kesgitlemek üçin –user=USER opsiýasyny ulanyň.
  4. Hakyky tassyklamak we/ýa-da sudo üçin paroly ulanmak üçin –password=PASSWORD opsiýasyny ulanyň.
  5. NAME buýrugy barada jikme-jik maglumat çap etmek üçin –display=NAME opsiýasyny ulanyň.
  6. Formatlary görmek üçin –list opsiýasyny, saýlawlary ulanyň: gysga, adaty, ýerleşdirilen, –list-format=FORMAT opsiýasyny ulanyň.
  7. Mümkin bolan buýruklaryň sanawyny çap etmek we çykmak üçin –list opsiýasyny goşuň.
  8. –config=PATH opsiýasyny ulanyp, konfigurasiýa faýlyň ýerleşýän ýerini kesgitläp bilersiňiz.
  9. Reňkli ýalňyşlyk çykyşyny görkezmek üçin, “colorize-ýalňyşlary” ulanyň.
  10. Programmanyň wersiýa belgisini görmek we çykmak üçin “Öwürmek” opsiýasyny ulanyň.

Gysgaça mazmun

Mata güýçli gural bolup, gowy dokumentleşdirilen we täze doglan çagalar üçin aňsat ulanmagy üpjün edýär. Has giňişleýin düşünmek üçin resminamalary doly okap bilersiňiz. Gurmak we ulanmak wagtynda ýüze çykan ýalňyşlyklary goşmak ýa-da goşmak üçin maglumatyňyz bar bolsa, teswir ýazyp bilersiňiz, olary düzetmegiň usullaryny taparys.

Salgylanma: Mata resminamalary