25
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

Organization

Fabricインストール

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

document

python バージョン確認

] python -V

小文字の-vオプションだとverboseになる。
versionオプションは大文字で-V

setuptoolsインストール

] 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インストール

$ 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

エラー出る場合

# 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の実行結果を吐き出してくれるはず。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
25
Help us understand the problem. What are the problem?