Edited at

Fabricインストール

More than 5 years have passed since last update.

自分用にc⌒っ゚д゚)っφ メモメモ...


document


python バージョン確認

] python -V

小文字の-vオプションだとverboseになる。

versionオプションは大文字で-V


setuptoolsインストール

https://pypi.python.org/pypi/setuptools#cygwin-mac-os-x-linux-other

] wget https://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg#md5=fe1f997bc722265116870bc7919059ea

] sudo sh setuptools-0.6c11-py2.7.egg


pipインストール

http://www.pip-installer.org/en/latest/installing.html#python-os-support

$ wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py

$ ] python get-pip.py


fabric インストール


In order for Fabric’s installation to succeed, you will need four primary pieces of software:


  • the Python programming language;

  • the setuptools packaging/installation library;

  • the Python paramiko SSH2 library;

  • and paramiko‘s dependency, the PyCrypto cryptography library.

and, if using the parallel execution mode:


  • the multiprocessing library.

Please read on for important details on each dependency – there are a few gotchas.


Fabricのインストールのために、4つのsoftwareが必要で、ついでに平行処理を行おうと思ったら 1つ平行処理ライブラリが必要らしい。

なので、順番に取得して行く。

まぁ、python自体はさすがにもう持ってるから要らんけどさ。

あと、setuptoolsもさっきインストールしたな。


PyCrypto インストール

ここまでの流れで必要なSSH2のクライアント自体は入ってるっぽいんだけど、SSH2クライアントが利用する暗号ライブラリのPyCryptoが入ってないので、インストールする。

pip install pycrypto

https://www.dlitz.net/software/pycrypto/

エラー出る場合

# ubuntu 

sudo apt-get install python-dev
# cent
yum install python-devel

gccとかでエラーが出る場合はここを参照


Fabric インストール


Fabric is best installed via pip (highly recommended) or easy_install (older, but still works fine)


pipを利用したインストールの方が推奨されているらしい

] pip install fabric

これでOK


動かしてみる

試しに、lsコマンドを実行してみる。


fabfile.py

from fabric.api import local

def local_ls():
local('ls /sbin')


] fab local_ls

[localhost] local: ls /sbin
acpi_available dumpe2fs fstab-decode iptables lvmconf mkfs.ext3 mount.ntfs-3g pvck rpc.statd swapon vgconvert
agetty e2fsck fstrim iptables-restore lvmdiskscan mkfs.ext4 mount.vboxsf pvcreate rtacct switch_root vgcreate
apm_available e2image getty iptables-save lvmdump mkfs.ext4dev nameif pvdisplay rtmon sysctl vgdisplay

Done.


特定のホストに対して操作


fabfile.py


from fabric.api import env,run

# ホスト設定 リスト型
env.hosts = [testhost]
# パスワード設定 ディクショナリ型で指定 {host : pass}
env.passwords = {'localhost': '{YOUR_PASSWORD}'}

def run_ls():
run('ls /sbin')


] fab run_ls

[localhost] Executing task 'run_ls'
[localhost] run: ls /sbin
[localhost] out: acpi_available dumpe2fs fstab-decode iptables lvmconf mkfs.ext3 mount.ntfs-3g pvck rpc.statd swapon vgconvert
[localhost] out: agetty e2fsck fstrim iptables-restore lvmdiskscan mkfs.ext4 mount.vboxsf pvcreate rtacct switch_root vgcreate
[localhost] out: apm_available e2image getty iptables-save lvmdump mkfs.ext4dev nameif pvdisplay rtmon sysctl vgdisplay

Done.
Disconnecting from localhost... done.

こんな感じで、ls /sbinの実行結果を吐き出してくれるはず。