fabric2 検証
Python3 + fabric2を試すために環境構築した際の備忘録。
インストール
Pythonのバージョンは3.7.0を使用。
Users who are migrating from Fabric 1 to Fabric 2+ may find it useful to have both versions installed side-by-side. The easiest way to do this is to use the handyfabric2PyPI entry:
$ pip install fabric2
とのことなので、fabric1系と2系を共存させるために fabric2
をインストールする。
$ python --version 3.7.0 $ pip install fabric2 $ pip freeze | grep fabric fabric2==2.4.0
バージョン確認してみたが1系を実行している模様。。
$ fab -V Fabric 1.14.1 Paramiko 2.4.2 $ which fab /usr/bin/fab
なんとなく which fab2
とかしてみたら見つかった。
$ which fab2 ~/.pyenv/shims/fab2 $ fab2 -V Fabric 2.4.0 Paramiko 2.4.2 Invoke 1.2.0
タスクの作成
タスクを定義する際は @task
アノテーションを使用する (ここら辺はv1と同じ)。
@task
は fabric2
に含まれているので from fabric2 import task
で読み込む。
from fabric2 import task @task def hostname(c): """ホスト名を出力します""" c.run('hostname')
タスク一覧の表示
これに関してはv1と同様のコマンドでOK。
$ fab2 -l Available tasks: hostname ホスト名を出力します。
タスクの実行
これもv1と同じでOK。
$ fab2 -H kazono01.sample.co.jp hostname kazono01.sample.co.jp
コマンドの実行結果を出力しない
今までは quiet
だったが、fabric v2からは hide
を使う。
@task def hostname(c): """ホスト名を出力します""" c.run('hostname', hide=True)