pythoneerの三大神器-fabric
3736 ワード
1.virtualenvは、プロジェクト固有のpython環境を仮想化するために使用されます.virtualenvを使用してきれいな環境を維持することは非常に役に立ちます.
2.pipはプロジェクト依存問題を解決するために使用される.プロジェクトに依存するサードパーティのすべてのライブラリをrequirementsに書きます.txtでpipで一括インストールします.一般的にvirtualenvと組み合わせて使用し、すべてのパッケージをvirtualenvの環境にインストールします.
3.fabricはリモート導入プロジェクトを自動化するために使用され、非常に便利です.必要に応じてローカル、リモートで一連のshellコマンド、プログラムなどを順次実行できます.たとえば、コード・ライブラリからコードを更新したり、データ移行スクリプトを実行したり、サービス・プロセスを再起動したりして、自動化された導入を完了します.
FabricはPythonの中で非常に強力なロット遠隔管理と配置ツールであり、多くの遠隔PC上でSSHタスクを一括実行するのによく使われる.
一般的な使い方は以下のようにまとめられています.
1,まず,一括して実行するタスクをfabfileに書き込む.pyで、
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
以上が簡単なfabfileです.py、定義関数はいずれもfabの実行可能なコマンドに対応する.
中には2つの小さな注意事項があります.
A,リモートマシンのrun.shで非システム的に一般的なツールを実行する場合は、絶対パスとして指定することが望ましい.nohupの方式を適宜用いることができる.
B.他のスクリプトやコマンドを実行する後にsleepを加えることで、FabricがリモートPCに接続するセッションを早期にシャットダウンし、タスクの実行に失敗することを防止することが望ましい.
2、実行プロセス:fabric実行は現在のディレクトリの下のfabfileをデフォルトで選択する.pyファイル、
fab clean
fab pull
fab robot:hosts="192.168.1.115",device=5560
指定するリモートPCにhostsパラメータを介してfabricに転送することができ、このhostsパラメータの優先度比env.hostsは高いです.
fabのコマンドにdeviceなどのパラメータを渡すこともできる.
また、fab-f otherFabFileを通過することもできる.py cleanは他のfabricファイルを指定します.
以上、単純な使い方ですが、より高度な使い方が必要な場合は、このプロジェクトのgithubホームページに注目してください.https://github.com/fabric/fabric.
2.pipはプロジェクト依存問題を解決するために使用される.プロジェクトに依存するサードパーティのすべてのライブラリをrequirementsに書きます.txtでpipで一括インストールします.一般的にvirtualenvと組み合わせて使用し、すべてのパッケージをvirtualenvの環境にインストールします.
3.fabricはリモート導入プロジェクトを自動化するために使用され、非常に便利です.必要に応じてローカル、リモートで一連のshellコマンド、プログラムなどを順次実行できます.たとえば、コード・ライブラリからコードを更新したり、データ移行スクリプトを実行したり、サービス・プロセスを再起動したりして、自動化された導入を完了します.
FabricはPythonの中で非常に強力なロット遠隔管理と配置ツールであり、多くの遠隔PC上でSSHタスクを一括実行するのによく使われる.
一般的な使い方は以下のようにまとめられています.
1,まず,一括して実行するタスクをfabfileに書き込む.pyで、
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# -*- coding:utf-
8
-*-
from fabric.api
import
run, local, roles, env, cd
env.hosts=[
'192.168.1.110'
,
'192.168.1.111'
,
'192.168.1.112'
]
env.user=
"username"
env.password=
"password"
env.port=
22
#env.parallel=True
#env.skip_bad_hosts=True
#env.timeout=
1
#env.warn_only=True
# local PC .
# run PC .
def ls():
with cd(
'/home/workspace/project'
):
local(
'touch 1.log'
)
with cd(
'/home/workspace/project2'
):
local(
'touch 2.log'
)
#
@parallel
,
#
@serial
def pull():
with cd(
'/home/workspace/project'
):
run(
'git pull'
)
def clean():
with cd(
'/home/workspace/project'
):
run(
'bash clean.sh'
)
@hosts
(
'192.168.1.113'
)
def robot(device):
with cd(
'/home/workspace/project'
):
run(
'bash run.sh %s robot && sleep 1'
% device)
以上が簡単なfabfileです.py、定義関数はいずれもfabの実行可能なコマンドに対応する.
中には2つの小さな注意事項があります.
A,リモートマシンのrun.shで非システム的に一般的なツールを実行する場合は、絶対パスとして指定することが望ましい.nohupの方式を適宜用いることができる.
B.他のスクリプトやコマンドを実行する後にsleepを加えることで、FabricがリモートPCに接続するセッションを早期にシャットダウンし、タスクの実行に失敗することを防止することが望ましい.
2、実行プロセス:fabric実行は現在のディレクトリの下のfabfileをデフォルトで選択する.pyファイル、
fab clean
fab pull
fab robot:hosts="192.168.1.115",device=5560
指定するリモートPCにhostsパラメータを介してfabricに転送することができ、このhostsパラメータの優先度比env.hostsは高いです.
fabのコマンドにdeviceなどのパラメータを渡すこともできる.
また、fab-f otherFabFileを通過することもできる.py cleanは他のfabricファイルを指定します.
以上、単純な使い方ですが、より高度な使い方が必要な場合は、このプロジェクトのgithubホームページに注目してください.https://github.com/fabric/fabric.