ユーザ用ツール

サイト用ツール


サイドバー

Top

検索タグ

変更履歴

メニュー


python:fabric

Fabric - シンプルな Pythonic リモート実行とデプロイメント

The fabric is an image that is not Febreze.
"ファブリーズする男性" by duvsbefilmoc is licensed under CC BY 2.0
ファブリック(fabric) はファブリーズ(febreze) ではないイメージです🤤
爽やかなお兄さんがファブ(fab)っていますけど…😅💦💦💦

本家: Welcome to Fabric! — Fabric documentation
ソースコード: fabric/fabric: Simple, Pythonic remote execution and deployment.

Linux

$ pip3 install fabric

Windows

> pip install fabric
Collecting fabric
  Downloading fabric-2.6.0-py2.py3-none-any.whl (53 kB)
     |████████████████████████████████| 53 kB 339 kB/s
Collecting pathlib2
  Downloading pathlib2-2.3.5-py2.py3-none-any.whl (18 kB)
Collecting invoke<2.0,>=1.3
  Downloading invoke-1.5.0-py3-none-any.whl (211 kB)
     |████████████████████████████████| 211 kB 656 kB/s
Collecting paramiko>=2.4
  Downloading paramiko-2.7.2-py2.py3-none-any.whl (206 kB)
     |████████████████████████████████| 206 kB 726 kB/s
Collecting pynacl>=1.0.1
  Downloading PyNaCl-1.4.0-cp35-abi3-win_amd64.whl (206 kB)
     |████████████████████████████████| 206 kB 930 kB/s
Collecting bcrypt>=3.1.3
  Downloading bcrypt-3.2.0-cp36-abi3-win_amd64.whl (28 kB)
Collecting cryptography>=2.5
  Downloading cryptography-3.4.7-cp36-abi3-win_amd64.whl (1.6 MB)
     |████████████████████████████████| 1.6 MB 504 kB/s
Collecting six>=1.4.1
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting cffi>=1.1
  Downloading cffi-1.14.5-cp39-cp39-win_amd64.whl (179 kB)
     |████████████████████████████████| 179 kB 409 kB/s
Collecting pycparser
  Using cached pycparser-2.20-py2.py3-none-any.whl (112 kB)
Installing collected packages: pycparser, six, cffi, pynacl, cryptography, bcrypt, pathlib2, paramiko, invoke, fabric
Successfully installed bcrypt-3.2.0 cffi-1.14.5 cryptography-3.4.7 fabric-2.6.0 invoke-1.5.0 paramiko-2.7.2 pathlib2-2.3.5 pycparser-2.20 pynacl-1.4.0 six-1.16.0

いつも混乱するかもしれない Fabric のバージョン

fabric❓ fabric2❓ Fabric3❓❓ Version 1.x 2.x …🤯 😅💦💦💦w

fabric - Search results · PyPI
fabric - Search results · PyPI

Fabric 1.x から 2.x へ再実装された経緯

Welcome to Fabric! — Fabric documentation より抜粋

fabric and fabric2 vs fabric3
fabric と fabric2 vs Fabric3

Unfortunately, the fabric3 entry on PyPI is an unauthorized fork of Fabric 1.x which we do not control.
残念ながら、PyPI の fabric3 エントリは Fabric 1.x の不正なフォークであり、私たちは管理していません。
Once modern Fabric gets up to 3.x, 4.x etc, we’ll likely continue distributing it via both fabric and fabric2 for convenience; there will never be any official fabric3, fabric4 etc.
モダンなファブリックが 3.x、4.x などになったら、私たちは便宜上 fabric と fabric2 の両方を介して配布を続けるでしょう。公式の fabric3、fabric4などは決してありません。

In other words, fabric2 is purely there to help users of 1.x cross the 2.0 “major rewrite” barrier; future major versions will not be large rewrites and will only have small sets of backward incompatibilities.
言い換えると、fabric2 は、1.x のユーザーが 2.0 の “主要な書き換え” の壁を越えるのを助けるためだけに存在します。将来のメジャー バージョンは大規模な書き換えではなく、下位互換性のない小さなセットのみが含まれます。

本家 Installing — Fabric documentation より
Upgrading from 1.x
1.x からのアップグレード

Modern Fabric (2+) represents a near-total reimplementation & reorganization of the software. It's been broken in two, cleaned up, made more explicit, and so forth.
Modern Fabric (2+) は、ソフトウェアのほぼ完全な再実装と再編成を表しています。それは 2 つに分割され、クリーンアップされ、より明確化されました。

Upgrading from 1.x — Fabric documentation より

Welcome to Invoke! — Invoke documentation より抜粋

Why was Invoke split off from the Fabric project?
Invoke が Fabric プロジェクトから分離されたのはなぜですか?

Fabric (1.x and earlier) was a hybrid project implementing two feature sets: task execution (organization of task functions, execution of them via CLI, and local shell commands) and high level SSH actions (organization of servers/hosts, remote shell commands, and file transfer).
Fabric (1.x 以前) は、次の 2 つの機能セットを実装するハイブリッド プロジェクトでした。 タスクの実行 (タスク関数の編成、CLI によるそれらの実行、およびローカル シェル コマンド) そして 高レベルの SSH アクション (サーバー/ホストの編成、リモート シェル コマンド、およびファイル転送)。

However, over time it became clear many users only needed one or the other, with local-only users resenting heavy SSH/crypto install requirements, and remote-focused users struggling with API limitations caused by the hybrid codebase.
しかし、時間が経つにつれて、多くのユーザーがどちらか一方だけを必要とすることが明らかになりました。ローカルのみのユーザーが重い SSH/crypto インストール要件に不満を持っている場合、そして、ハイブリッド コードベースによって引き起こされる API の制限に苦しんでいるリモート フォーカスのユーザー。

When planning Fabric 2.x, having the “local” feature set as a standalone library made sense, and it seemed plausible to design the SSH component as a separate layer above. Thus, Invoke was created to focus exclusively on local and abstract concerns, leaving Fabric 2.x concerned only with servers and network commands.
Fabric 2.x を計画する場合、「ローカル」機能をスタンドアロン ライブラリとして設定することは理にかなっています。 そして、SSH コンポーネントを上の別のレイヤーとして設計するのがもっともらしく思えました。したがって、Invoke は、ローカルで抽象的な問題にのみ焦点を当てるように作成され、Fabric 2.x はサーバーとネットワーク コマンドのみを考慮しました。

Frequently asked questions — Invoke documentation より

参考文献

python/fabric.txt · 最終更新: 2021/06/10 16:43 by ともやん