bash on WindowsからRaspberryPiに同時デプロイするためにfabricを導入しました。
動作確認まで行いましたので、記載していきます。
bash on Windowsにfabricをインストール
easy_installをインストール
$ sudo apt-get install python-setuptools
Python のヘッダファイルのインストール
これをやらずに進むとエラーがでる
pythonのversionが2.X.Xの場合
$ sudo apt-get install python-dev
pythonのversionが3.X.Xの場合(多分)
$ sudo apt-get install python3-dev
fabricをインストール
$ sudo easy_install fabric
バージョン確認
$ fab -V
動作確認
2台のRaspberryPiからenv.hostを取得し色を分けて表示とファイル送信をやってみました。
fabfile.pyを作成する
$ vim fabfile.py
fabfile.py
#coding:utf-8
from fabric.api import env, run, cd, lcd, put
from fabric.colors import green, magenta
from fabric.decorators import parallel
# SSHのIDとPW
env.user = "ID"
env.password = "PW"
# env用関数
def all():
env.hosts = ["192.168.11.10","192.168.11.11"]
def green01():
env.hosts = ["192.168.11.10"]
def blue01():
env.hosts = ["192.168.11.11"]
# 並列実行
# env.hostが192.168.11.10の時緑でそれ以外はマゼンタで表示
@parallel(pool_size=2)
def getEnvHost():
if env.host == '192.168.11.10':
print green(env.host)
else:
print magenta(env.host)
# 同じPATHに保存
def copySamePath(path):
put(path, path)
実行
2台からenv.hostを取得する
$ fab all -f fabfile.py getEnvHost
1台(192.168.11.10)に作ったfabfile.pyを送信してみる
$ fab green01 -f fabfile.py copySamePath:'/home/pi/fabfile.py'
env.hostsも実行時に動的にかえられるのでめっちゃ便利だ。。