Kangas - Suorita Shell-komentoja etänä SSH:n kautta Linuxissa


Jatkuvasti muuttuvassa ohjelmistokehityksen maailmassa tehokas etäpalvelinhallinta on ratkaisevan tärkeää. Oletpa sitten järjestelmänvalvoja, ohjelmistosuunnittelija tai ohjelmistokehittäjä, Linux-komentojen suorittaminen etäpalvelimilla on yleinen tehtävä.

Tässä Fabric, korkean tason Python-kirjasto, joka on suunniteltu suorittamaan Linux-komentoja etänä SSH:n kautta, tekee siitä korvaamattoman työkalun kaikille, jotka tarvitsevat etäjärjestelmien hallintaa. Pythonin tehon hyödyntäminen.

Mikä on Kangas?

Fabric on monipuolinen Python-kirjasto, joka yksinkertaistaa komentotulkkikomentojen suorittamista etäpalvelimissa SSH-yhteyksien kautta. Sen kehitti alun perin Jeff Forcier, ja myöhemmin siitä tuli avoimen lähdekoodin projekti.

Se tarjoaa korkean tason Pythonic-käyttöliittymän etäjärjestelmien kanssa työskentelyyn, jonka avulla voit automatisoida tehtäviä, ottaa käyttöön koodia ja hallita määrityksiä useissa palvelimissa vaivattomasti.

Miksi käyttää kangasta?

On useita pakottavia syitä valita Kangas etäkomentojen suorittamiseen:

  • Pythonic Approach – Kangas noudattaa Pythonin filosofiaa, joten kehittäjien ja järjestelmänvalvojien on helppoa kirjoittaa skriptejä kielellä, jonka he jo tuntevat.
  • SSH ja Paramiko – Fabric käyttää Paramiko-kirjastoa SSH-yhteyksien käsittelyssä, mikä tarjoaa turvallisen ja luotettavan tavan suorittaa komentoja etänä.
  • Tehtäväpohjainen työnkulku – Fabric kannustaa tehtävälähtöiseen lähestymistapaan komentojen etäsuorittamiseen. Sinä määrittelet tehtävät, jotka ovat olennaisesti Python-funktioita, ja Fabric huolehtii niiden suorittamisesta etäpalvelimilla.
  • Käyttötapaukset – Fabric on monipuolinen työkalu, joka sopii monenlaisiin käyttötapauksiin, mukaan lukien sovellusten käyttöönotto, palvelinkokoonpanojen hallinta ja järjestelmän ylläpitotehtävien suorittaminen.

Tässä oppaassa käydään läpi vaiheet Fabricin käyttöönoton ja käytön aloittamiseksi palvelinryhmien palvelinhallinnan tehostamiseksi.

Kangasautomaatiotyökalun asentaminen Linuxiin

Tärkeä kankaan ominaisuus on, että etäkoneissa, joita sinun on hallittava, tarvitsee vain olla asennettuna tavallinen OpenSSH-palvelin.

Sinun on asennettava vain tietyt vaatimukset palvelimelle, josta hallinnoit etäpalvelimia, ennen kuin voit aloittaa.

Vaatimukset:

  • Python 2.5+ kehitysotsikoineen
  • Python-setuptools ja pip (valinnainen, mutta suositeltava) gcc

Fabric on helppo asentaa pip-paketinhallinnan avulla, mutta voit myös valita oletuspaketinhallinnan yum, dnf tai apt/apt-get asentaaksesi kangas-paketin. , jota yleensä kutsutaan nimellä kangas tai python-kangas.

Asenna kangas RHEL Systemsiin

RHEL-pohjaisissa jakeluissa, kuten CentOS Stream, Rocky Linux, ja AlmaLinux, EPEL-arkisto on oltava asennettuna ja otettu käyttöön järjestelmään. asenna kangas-paketti.

sudo dnf install epel-release
sudo dnf install fabric

Asenna Fabric Debian Systemsiin

Debian-pohjaisissa jakeluissa, kuten Ubuntu ja Linux Mint, käyttäjät voivat yksinkertaisesti asentaa fabric-paketin tekemällä apt näytetään:

sudo apt install fabric

Asenna kangas PiP:n avulla

Jos kangasta ei ole saatavilla järjestelmäsi arkistoista, voit asentaa sen pip-komennolla kuvan osoittamalla tavalla.

sudo yum install python3-pip       [On RedHat based systems] 
sudo dnf install python3-pip       [On Fedora 22+ versions]
sudo apt install python3-pip       [On Debian based systems]

Kun pip on asennettu onnistuneesti, voit käyttää pip-komentoa saadaksesi uusimman version kankaasta kuvan osoittamalla tavalla:

pip3 install fabric

Kankaan käyttäminen Linuxin hallintatehtävien automatisoimiseen

Aloitetaan kankaan käyttäminen. Osana asennusprosessia Python-komentosarja nimeltä 'fab' on lisätty järjestelmäsi PATH-hakemistoon. 'fab'-komentosarja käsittelee kaikki tehtävät käytettäessä Fabricia.

Suorita Linux-komennot paikallisesti

Tavallisesti sinun on aloitettava luomalla Python-tiedosto nimeltä fabfile.py suosikkitekstieditorillasi. Muista, että voit antaa tälle tiedostolle eri nimen, mutta sinun on määritettävä tiedostopolku seuraavasti:

fab --fabfile /path/to/the/file.py

Fabric käyttää 'fabfile.py' tehtävien suorittamiseen, 'fabfile' -tiedoston tulee sijaita samassa hakemistossa, jossa suoritat Kangastyökalu.

Esimerkki 1: Luodaan ensin perus Hello World.

vi fabfile.py

Lisää nämä koodirivit tiedostoon.

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

Tallenna tiedosto ja suorita alla oleva komento.

fab hello

Tarkastellaan nyt esimerkkiä fabfile.py-tiedostosta uptime-komennon suorittamiseksi paikallisessa koneessa.

Esimerkki 2: Avaa uusi fabfile.py-tiedosto seuraavasti:

vi fabfile.py

Ja liitä seuraavat koodirivit tiedostoon.

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

Tallenna sitten tiedosto ja suorita seuraava komento:

fab uptime

Suorita Linux-komennot etänä SSH:n kautta

Fabric-sovellusliittymä käyttää määrityssanakirjaa, joka on Pythonin vastine assosiatiiviselle taulukolle, joka tunnetaan nimellä env ja joka tallentaa arvoja, jotka ohjaavat Fabricin toimintaa.

env.hosts on luettelo palvelimista, joilla haluat suorittaa Fabric-tehtäviä. Jos verkkosi on 192.168.0.0 ja haluat hallita isäntiä 192.168.0.2 ja 192.168.0.6 fab-tiedostollasi , voit määrittää env.hosts:n seuraavasti:

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

Yllä oleva koodirivi määrittää vain isännät, joilla suoritat Fabric-tehtäviä, mutta et tee mitään. Siksi voit määrittää joitain tehtäviä. Fabric tarjoaa joukon toimintoja, joita voit käyttää vuorovaikutuksessa etäkoneidesi kanssa.

Vaikka toimintoja on monia, yleisimmin käytetyt ovat:

  • run – joka suorittaa komentotulkkikomennon etäkoneessa.
  • paikallinen – joka suorittaa komennon paikallisessa koneessa.
  • sudo – joka suorittaa komentotulkkikomennon etäkoneella pääkäyttäjän oikeuksin.
  • Hanki – joka lataa yhden tai useamman tiedoston etäkoneelta.
  • Laita – joka lähettää yhden tai useamman tiedoston etäkoneeseen.

Esimerkki 3: Jos haluat toistaa viestin useilla koneilla, luo fabfile.py, kuten alla oleva.

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

Suorita tehtävät suorittamalla seuraava komento:

fab echo

Esimerkki 4: Voit parantaa aiemmin luomaasi fabfile.py-tiedostoa suorittamaan uptime-komennon paikallisessa koneessa niin, että se suorittaa uptime-komennon ja tarkistaa myös levyn käytön käyttämällä df-komentoa useissa koneissa seuraavasti:

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

Tallenna tiedosto ja suorita seuraava komento:

fab uptime
fab disk_space

Asenna LAMP Stack automaattisesti Linux-etäpalvelimeen

Esimerkki 4: Katsotaanpa esimerkkiä LAMP-palvelimen (Linux, Apache, MySQL/MariaDB ja PHP) käyttöönotosta Linux-etäpalvelin.

Kirjoitamme toiminnon, joka sallii LAMP:n etäasennuksen pääkäyttäjän oikeuksilla.

RHEL/CentOS:lle ja Fedoralle
#!/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")
Debian/Ubuntu ja Linux Mint
#!/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-php php-mysql")

Tallenna tiedosto ja suorita seuraava komento:

fab deploy_lamp

Huomaa: suuren tulosteen vuoksi emme voi luoda näyttölähetystä (animoitua gifiä) tälle esimerkille.

Nyt voit automatisoida Linux-palvelimen hallintatehtävät Fabricilla ja sen ominaisuuksilla sekä yllä olevilla esimerkeillä…

Kangas hyödyllisiä vaihtoehtoja

  • Voit suorittaa fab --help nähdäksesi hyödyllisiä tietoja ja pitkän luettelon käytettävissä olevista komentorivivaihtoehdoista.
  • Tärkeä vaihtoehto --fabfile=PATH, jonka avulla voit määrittää tuotavaksi muun Python-moduulitiedoston kuin fabfile.py.
  • Voit määrittää käyttäjänimen, jota käytetään yhteyden muodostamisessa etäisäntään, käyttämällä vaihtoehtoa --user=USER.
  • Jos haluat käyttää salasanaa todentamiseen ja/tai sudo-, käytä --password=PASSWORD-vaihtoehtoa.
  • Tulosta yksityiskohtaiset tiedot komennosta NAME käyttämällä vaihtoehtoa --display=NAME.
  • Voit tarkastella muotoja käyttämällä vaihtoehtoa --list, vaihtoehdot: lyhyt, normaali, sisäkkäinen, käytä --list-format=FORMAT-vaihtoehtoa.
  • Jos haluat tulostaa luettelon mahdollisista komennoista ja poistua, sisällytä vaihtoehto --list.
  • Voit määrittää käytettävän konfigurointitiedoston sijainnin --config=PATH-vaihtoehdolla.
  • Jos haluat näyttää värillisen virhetulosteen, käytä --colorize-errors-komentoa.
  • Voit tarkastella ohjelman versionumeroa ja poistua käyttämällä --version-vaihtoehtoa.
Yhteenveto

Fabric on tehokas Python-kirjasto, joka virtaviivaistaa etäkomentojen suorittamista SSH:n kautta ja tarjoaa käyttäjäystävällisen Pythonic-lähestymistavan. Sen kyky yksinkertaistaa monimutkaisia tehtäviä ja automatisoida järjestelmän hallinta tekee siitä arvokkaan työkalun järjestelmänvalvojille, kehittäjille ja DevOps-ammattilaisille.

Hallitsetpa yhtä palvelinta tai järjestätpä laajamittaista käyttöönottoa, Fabric voi auttaa sinua suorittamaan työsi tehokkaasti.