これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド ファブです。
プログラム:
NAME
fab - シンプルな Pythonic リモート デプロイメント ツール
SYNOPSIS
ファブ [コマンド ...]
DESCRIPTION
Fabric を利用する最も一般的な方法は、コマンドライン ツールを使用することです。 ファブ、その
Fabric のインストール時にシェルの実行可能パスに配置されている必要があります。 ファブ
標準スタイルのコマンドライン スイッチを使用して、良き Unix 市民になろうと努力します。
ヘルプ出力など。
USAGE
Basic つかいます
最も単純な形では、 ファブ オプションをまったく指定せずに呼び出すことも、XNUMX つ以上のオプションを指定して呼び出すこともできます。
引数はタスク名である必要があります。例:
$ fab タスク1 タスク2
これは実行されます タスク1 続い タスク2Fabric が fabfile を見つけることができたと仮定します。
近くにこれらの名前の Python 関数が含まれています。
ただし、次のようにすることで、この単純な使用法をより柔軟なものに拡張することができます。
提供されたオプションや個々のタスクに引数を渡すこと。
任意 リモート shell コマンド
バージョン 0.9.2 の新機能。
ファブリックは、あまり知られていないコマンド ライン規則を利用しており、次のように呼び出すことができます。
マナー:
$ fab [オプション] -- [シェルコマンド]
その後のすべてはどこにありますか -- 一時的なものに変わってしまいます ラン を呼び出しますが、解析されません
ファブ オプション。 モジュール レベルまたはコマンド ラインでホスト リストを定義した場合は、
この使用法は、XNUMX 行の匿名タスクのように機能します。
たとえば、多数のシステムのカーネル情報を取得したいとします。 あなた
これを行うことができます:
$ fab -H システム 1,システム 2,システム 3 -- uname -a
これは文字通り次の fabfile と同等になります。
Fabric.APIインポート実行から
def anonymous():
run("uname -a")
あたかも次のように実行されたかのように:
$ fab -H システム 1,システム 2,システム 3 匿名
ほとんどの場合、fabfile にタスクを書き出すだけで済みます (
一度使用すると、再度使用する可能性があります) ですが、この機能は、便利で迅速な方法を提供します。
fabfile の接続設定を活用しながら、SSH 経由のコマンドを素早く実行します。
コマンドライン オプション
考えられるすべてのコマンド ライン オプションの概要については、次のリンクを参照してください。 ファブ - 助けて。 場合
特定のオプションの詳細をお探しの場合は、以下で詳しく説明します。
注:
ファブ Python を使用します オプトパース ライブラリ。典型的な Linux または GNU スタイルを尊重することを意味します。
短いオプションと長いオプション、およびオプションと引数を自由に組み合わせることができます。 例えば ファブ タスク1
-H hostname タスク2 -i パス/への/キーファイル より単純なものと同じくらい有効です ファブ
-H hostname -i パス/への/キーファイル タスク1 タスク2.
-a、 --no_agent
セット env.no_agent 〜へ ◯、次の場合に SSH レイヤーが SSH エージェントと通信しないように強制します。
秘密鍵ファイルのロックを解除しようとしています。
バージョン 0.9.1 の新機能。
-NS、 --転送エージェント
セット env.forward_agent 〜へ ◯、エージェントの転送を有効にします。
バージョン 1.4 の新機能。
--プロンプトで中止
セット env.abort_on_prompts 〜へ ◯、プロンプトが表示されるたびにファブリックを強制的に中止します
入力用。
バージョン 1.1 の新機能。
-c RCFファイル、 --config=RCFILE
セット env.rcファイル 指定されたファイル パスへのパス。ファブリックは起動時にこのパスをロードしようとします。
環境変数を更新するために使用します。
-d 指図、 --display=コマンド
指定されたタスクの docstring 全体を出力します (存在する場合)。 現在はありません
タスクの関数シグネチャを出力するため、説明的な docstring を使用することをお勧めします。
(彼らは 常に もちろん、良いアイデアです -- ここではさらに詳しく説明します。)
--接続試行=M、 -n M
接続を試行する回数を設定します。 セット env.connection_attempts.
関連項目 ALSO:
env.connection_attempts, 環境タイムアウト
バージョン 1.4 の新機能。
-NS、 -- 既知のホストを無効にする
セット env.disable_known_hosts 〜へ ◯、ファブリックがユーザーの SSH をロードするのを防ぎます
既知のホスト ファイルにソフトウェアを指定する必要があります。
-f ファブファイル、 --fabfile=FABFILE
検索する fabfile 名のパターン (デフォルトは fabfile.py)、または代わりに
fabfile としてロードする明示的なファイル パス (例: /path/to/my/fabfile.py.)
関連項目 ALSO:
ファブファイル
-F リストフォーマット、 --list-format=LIST_FORMAT
の出力形式を制御できます。 - リスト. 短い に相当します
--候補リスト, 通常の これは、単にこのオプションを完全に省略することと同じです (つまり、
デフォルト)、および 入れ子になりました ネストされた名前空間ツリーを出力します。
バージョン 1.1 の新機能。
関連項目 ALSO:
--候補リスト, - リスト
-g ホスト、 --ゲートウェイ=ホスト
セット 環境ゲートウェイ 〜へ 主催者 ホスト文字列。
バージョン 1.5 の新機能。
-NS、 - 助けて
考えられるすべてのオプションと簡単な概要を含む標準のヘルプ メッセージを表示します。
彼らは何をして、そして終了します。
--hide=レベル
カンマ区切りのリスト 出力 レベル デフォルトで非表示にします。
-H ホスト、 --hosts=ホスト
セット 環境ホスト 指定されたホスト文字列のカンマ区切りリストに変換します。
-x ホスト、 --exclude-hosts=ホスト
セット env.exclude_hosts 指定されたホスト文字列のカンマ区切りリストに変換し、
最終的なホストリストには含めないでください。
バージョン 1.1 の新機能。
-i KEY_FILENAME
ファイル パスに設定すると、指定されたファイルが SSH ID ファイルとしてロードされます (通常は
秘密キー。) このオプションは複数回繰り返すことができます。 セット (または追加)
env.key_filename.
-私、 -- 初期パスワードプロンプト
セッションの開始時にパスワードプロンプトを強制します (fabfile のロードとオプションの後)
解析中ですが、タスクを実行する前に)事前に入力するため 環境パスワード.
これは、ファイアアンドフォーゲット実行 (特に並列セッション、
実行時入力はできません)経由でパスワードを設定する場合 - パスワード または
設定 環境パスワード fabfile 内にあるのは望ましくありません。
注:
このプロンプトに入力された値は、 上書きする 経由で提供されるもの
環境パスワード モジュールレベルで、または - パスワード.
関連項目 ALSO:
パスワード管理
-k セット env.no_keys 〜へ ◯、SSH 層が SSH 秘密キーを検索しないように強制します。
ホームディレクトリにあるファイル。
バージョン 0.9.1 の新機能。
--keepalive=キープアライブ
セット env.キープアライブ 指定された (整数) 値に、SSH キープアライブを指定します。
間隔。
バージョン 1.1 の新機能。
--行ごとに
出力をバイトごとではなく行ごとに強制的にバッファリングします。 役に立つことが多い、または
ために必要 パラレル 実行.
バージョン 1.3 の新機能。
-l、 - リスト
通常どおり fabfile をインポートしますが、検出されたすべてのタスクのリストを出力し、
出る。 各タスクの docstring がある場合は、その最初の行も出力します。
(必要に応じて切り捨てられます)
バージョン 0.9.1 で変更: 出力に docstring を追加しました。
関連項目 ALSO:
--候補リスト, --リスト形式
-p パスワード、 --password = PASSWORD
セット 環境パスワード 指定された文字列に; それはデフォルトのパスワードとして使用されます
SSH 接続を確立するとき、または sudo プログラム。
関連項目 ALSO:
-- 初期パスワードプロンプト
-NS、 - 平行
セット 環境並列 〜へ ◯、タスクが並行して実行されるようになります。
バージョン 1.3 の新機能。
関連項目 ALSO:
/使用法/並列
--no-pty
セット env.always_use_pty 〜へ ×、すべてを引き起こす ラン/sudo あたかも自分であるかのように振る舞うよう呼びかける
指定していた pty=偽.
バージョン 1.0 の新機能。
-NS、 --reject-unknown-hosts
セット env.reject_unknown_hosts 〜へ ◯に接続するときにファブリックが異常終了する原因となります。
ユーザーの SSH でホストが見つかりません 既知のホスト ファイルにソフトウェアを指定する必要があります。
-R 役割、 --roles=ロール
セット 環境の役割 指定されたロール名のカンマ区切りリストに追加します。
- 設定 キー=値、...
任意のファブリック環境変数のデフォルト値を設定できます。 このように設定された値
優先順位は低く、より具体的な環境変数はオーバーライドされません。
コマンドラインでも指定します。 例えば:
fab --set パスワード=foo --password=bar
結果になります 環境パスワード = 'バー'はなく、 「foo」
複数 KEY = VALUE ペアはカンマで区切ることができます。例: ファブ - 設定
var1=val1、var2=val2.
基本的な文字列値以外に、環境変数を省略して True に設定することもできます。
=値 (例えば ファブ - 設定 キー)、値を空の文字列に設定できます(したがって、
等号を保持し、省略することにより、偽の等価値) VALUE (例えば ファブ
- 設定 KEY =.)
バージョン 1.4 の新機能。
-s シェル、 --shell=シェル
セット 環境シェル 指定された文字列に変換し、使用されるデフォルトのシェルラッパーをオーバーライドします。
リモートコマンドを実行します。
--候補リスト
そして - リストただし、装飾はなく、タスク名が次のように区切られているだけです。
インデントやドキュメント文字列のない改行。
バージョン 0.9.2 の新機能。
関連項目 ALSO:
- リスト
--show=レベル
カンマ区切りのリスト 出力 レベル で示されているものに追加されます
デフォルト。
関連項目 ALSO:
ラン, sudo
--ssh-config-path
セット env.ssh_config_path.
バージョン 1.4 の新機能。
関連項目 ALSO:
ssh-config
--skip-bad-hosts
セット env.skip_bad_hostsこれにより、ファブリックは使用できないホストをスキップします。
バージョン 1.4 の新機能。
--不明なタスクをスキップ
セット env.skip_unknown_tasks、ファブリックが不明なタスクをスキップする原因となります。
関連項目 ALSO:
env.skip_unknown_tasks
--タイムアウト=N、 -t N
接続タイムアウトを秒単位で設定します。 セット 環境タイムアウト.
関連項目 ALSO:
環境タイムアウト, env.connection_attempts
バージョン 1.4 の新機能。
--コマンドタイムアウト=N、 -T N
リモートコマンドのタイムアウトを秒単位で設定します。 セット env.command_timeout.
関連項目 ALSO:
env.command_timeout,
バージョン 1.6 の新機能。
-u ユーザー、 --user = USER
セット 環境ユーザー 指定された文字列に; その後、デフォルトのユーザー名として使用されます
SSH接続を行うとき。
-V、 - バージョン
ファブリックのバージョン番号を表示して終了します。
-w、 --警告のみ
セット env.warn_only 〜へ ◯これにより、コマンドが実行されてもファブリックが実行を継続します。
エラー状態が発生します。
-z、 --プールサイズ
セット env.pool_size、実行中に同時に実行するプロセスの数を指定します。
並列実行。
バージョン 1.3 の新機能。
関連項目 ALSO:
/使用法/並列
タスクごと 引数
で与えられるオプションは、 コマンドラインオプション の呼び出しに適用する ファブ 全体として。 平
順序が前後しても、オプションは指定されたすべてのタスクに均等に適用されます。
さらに、タスクは単なる Python 関数であるため、多くの場合、タスクを渡すことが望ましいです。
実行時に引数を追加します。
これら両方のニーズに応えるのが、「タスクごとの引数」の概念です。
任意のタスク名の末尾に追加できる構文:
· コロン (:) タスク名をその引数から分離します。
· カンマ (,) 引数を互いに区切ります (
バックスラッシュ、つまり \,);
· 等号 (=) キーワード引数の場合は、位置引数の場合は省略します。 XNUMX月
バックスラッシュでエスケープすることもできます。
さらに、このプロセスには文字列の解析が含まれるため、すべての値は最終的に Python になります。
文字列があるため、それに応じて計画してください。 (将来のバージョンの Fabric ではこれを改善したいと考えています。
ただし、直感的な構文が見つかる場合に限ります。)
たとえば、「新しいユーザーの作成」タスクは次のように定義できます (ほとんどの部分を省略しています)。
簡潔にするために実際のロジックを示します):
def new_user(ユーザー名, admin='no', comment="コメントはありません"):
print("新しいユーザー (%s): %s" % (ユーザー名、コメント))
パス
ユーザー名だけを指定することもできます。
$ fab new_user:myusername
または、明示的なキーワード引数として扱います。
$ fab new_user:username=myusername
両方の引数が指定された場合は、それらを位置引数として再度指定できます。
$ fab new_user:myusername,はい
または、Python のように、組み合わせて使用することもできます。
$ fab new_user:myusername,admin=yes
当学校区の 印刷 上記の呼び出しは、次のようにエスケープされたカンマを示すのに役立ちます。
$ fab new_user:myusername,admin=no,comment='Gary\、新しい開発者 (月曜日から開始)'
注:
バックスラッシュでエスケープされたカンマを引用符で囲む必要があります。そうしないとシェルが発生します。
構文エラー。 引数に他のシェル関連が含まれる場合も引用符が必要です
スペースなどの文字。
上記はすべて、予想される Python 関数呼び出しに変換されます。 たとえば、
上記の最後の呼び出しは次のようになります。
>>> new_user('myusername', admin='yes', comment='Gary、新しい開発者 (月曜始まり)')
役割 ホスト
前述したように on タスク 実行、タスクごとのキーワードがいくつかあります
引数 (host, ホスト, 役割 役割) 実際にはタスク関数にマップされません。
それ自体ですが、タスクごとのホストやロールのリストを設定するために使用されます。
これらの特別なクワーグは、 削除 タスク関数自体に送信される args/kwargs から。
これは、タスクで kwargs が定義されていない場合に TypeErrors が発生しないようにするためです。
質問。 (また、もしあなたが do これらの名前で引数を定義すると、
この方法でそれらを指定できるのは残念ですが、必要な犠牲です。)
注:
これらの kwarg の複数形と単数形の両方が指定された場合、
複数形が優先され、単数形は破棄されます。
これらの引数の複数形を使用する場合は、セミコロン (;) カンマ以降
は、引数を互いに分離するためにすでに使用されています。 さらに、あなたの
シェルはセミコロンを特殊文字と見なす可能性が高いため、ホストを引用符で囲む必要があります。
シェルの解釈を防ぐリスト文字列。例:
$ fab new_user:myusername,hosts="host1;host2"
繰り返しますが、 ホスト kwarg は、に送信される引数リストから削除されます。 new_user タスク
関数の場合、実際の Python 呼び出しは次のようになります。 new_user('myusername')、および関数
のホストリスト上で実行されます。 ['ホスト1', 「ホスト2」].
設定 ファイル
Fabric は現在、単純なユーザー設定ファイルを受け入れます。または、 生地rc (と思う .bashrc しかし用
ファブ) XNUMX つ以上のキーと値のペアを XNUMX 行に XNUMX つずつ含める必要があります。 これらの行は次のようになります
に従う 文字列.split('=')したがって、現在は文字列を指定するためにのみ使用できます
設定。 このようなキーと値のペアは更新に使用されます。 env を特定いたします。 ファブ 実行され、ロードされます
fabfile をロードする前。
デフォルトでは、ファブリックは次のものを探します ~/.fabricrc、これは、 -c
フラグを立てる ファブ.
たとえば、一般的な SSH ログイン ユーザー名がワークステーションのユーザー名と異なる場合、
そしてあなたは変更したくない 環境ユーザー プロジェクトの fabfile 内 (おそらく期待しているため)
他の人も同様に使用します) 生地rc 次のようなファイル:
ユーザー = ssh_user_name
それから、走っているときに、 ファブ、fabfileは次のようにロードされます 環境ユーザー に設定 「ssh_ユーザー名」.
その fabfile の他のユーザーも同じことを行うことができ、fabfile 自体をクリーンな状態にすることができます。
デフォルトのユーザー名に関しては問いません。
onworks.net サービスを使用してオンラインでファブを使用する
