Fabric

From ICO wiki
Jump to navigationJump to search

Autor

Rain Kärner AK31

rain.karner@itcollege.ee

2015 kevad

Sissejuhatus

Fabric on vabavaraline tarkvara, mis võimaldab läbi SSH ühenduse käivitada Pythoni(2.5-2.7) programeeerimiskeele käske.

Selle käsurea tööriistaga saab käivitada nii lihtsamaid kui ka keerulisemad käske kas siis ühe või mitme masina peal.[1]

Eeldused

Ubuntu server 14.04 [192.168.56.200]

Ubuntu desktop 14.04 [192.168.56.101]

Python 2.7.5

SSH seadistatud kliendi ja serveri vahel

Paigaldamine

NB! Kõik käsureategevused on läbi viidud juurkasutaja õigustes!

Järgnev juhend on tehtud Linux Ubuntu server 14.04 peal.

Enne installeerimist tasub uuendada tarkvara nimekirja:

apt-get update

Paki paigaldamine:

apt-get install fabric

Teenuse seadistamine [2]

Teeme kõigepealt lihtsama skripti testimaks kas fabric sai korralikult paigaldatud ja ka töötab.


Selleks loome faili fabfile.py ja avame selle endale sobiva tekstiredaktoriga.

nano fabile.py

Sisestame järgneva koodi ja salvestame.

def hello():

print "Hello World!"

Kontrollime kas fab käsk lisati

fab --list

Pilt 1: Näitab, et saame kasutada käsku hello.


Kui selline tagastus on olemas saame käivitada skripti käsuga

fab hello

See käsk tagastab meile Hello World! mis näitab, et fabric töötab.

Pilt 2: Tagastab Hello World!


Kliendi arvutisse htopi paigaldamine

Avame uuesti faili fabfile.py.

nano fabile.py


Lisame kliendi arvuti andmed, paki paigaldamise käsud ja salvestame.

from fabric.api import *

env.hosts = ["192.168.56.101"]
env.user = "root"

def update():
        run("apt-get update")

def install_htop():
        run("apt-get install -y htop")

def update_install():
       update()
    
       install_htop()

Kontrollime kas kõik sai korrektselt.

fab --list

Kui tagastatakse käsud saame käivitada htopi paigaldamise kliendi arvutisse.

fab update_install

Kokkuvõtteks

Kokkuvõtteks saab öelda, et fabric käsureatööriist võib saada administraatori parimaks sõbraks, sest võimaldab lihtsalt hallata oma arvutiparki, kus piiriks on ainult Pythoni keele tundmine.

Lingid