自分用に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とかでエラーが出る場合はここを参照
- pycryptoのubuntuへのインストール
http://stackoverflow.com/questions/11596839/install-pycrypto-on-ubuntu
Fabric インストール
Fabric is best installed via pip (highly recommended) or easy_install (older, but still works fine)
pipを利用したインストールの方が推奨されているらしい
] pip install fabric
これでOK
動かしてみる
試しに、ls
コマンドを実行してみる。
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.
特定のホストに対して操作
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
の実行結果を吐き出してくれるはず。