検索
ホームページバックエンド開発Python チュートリアルFabric を使用してタスクを自動化する方法

Fabric を使用してタスクを自動化する方法

Dec 05, 2016 pm 01:27 PM
fabricpythonオートメーション自動展開

まず例を見てみましょう。 *NIX では、uname コマンドはシステムのリリース バージョンを表示するものであることがわかっています。

次のように Fabric スクリプトを書くことができます:

リーリー

上記のスクリプトを fabfile.py として保存すると、fab コマンドを使用して複数のホストで host_type スクリプトを実行できます。

リーリー
実行中にシステムパスワードの入力を求められる場合があります。

インストール

これを見た場合は、ファブリックに興味があることを意味します。ただし、ファブリックがインストールされていないため、サイトでは上記の操作を実行できません。 Fabric のインストールは非常に簡単です。

を使用するか、オリジナルのコードをダウンロードしてインストールできます。 pip或者easy_install

タスク機能

とても良いですね、ファブリックのインストールは難しくありません。おそらく、前のタスクは正常に実行できたので、もう少し詳しく見てみましょう。

Fabric のタスクは Python 関数です。これを「タスク関数」と呼びます。 Python 関数であるため、関数の使用法の一部はタスク関数にも当てはまります。たとえば、パラメータの受け渡し、相互の呼び出し、値の返しなどです。

まずパラメータを渡す例を見てください:

リーリー
タスクを実行するとき、

コマンドラインパラメータを通じてタスク関数にパラメータを渡すことができます: fab

リーリー

組み合わせたタスクの例は次のとおりです:

リーリー

Fabric によって提供されるコマンド

fabric.api モジュールの

関数については前に説明しましたが、その機能はリモート ホスト上でコマンドを実行することです。ローカル (ファブリックが配置されているホスト) コマンドを実行するためのローカル関数も、fabric.api で提供されます。 run

は次のとおりです:

リーリー
リモート コマンドとローカル コマンドと同様に、ファブリックもリモート ディレクトリとローカル ディレクトリを区別します。 Fabric がリモート ディレクトリとローカル ディレクトリで提供する操作は、それぞれ cd と lcd です。コマンドライン FTP を使用したことがある場合、これは簡単に理解できます。

例を見てみましょう:

リーリー
上記のコードの機能は、リモートの /opt/xxx ディレクトリに入り、README ファイルを作成することです。

Fabric は、ファイル操作などの多くのコマンドも提供します。

サーバー接続を管理する

前の例では、fab コマンド ライン パラメーターでサーバーを指定する必要があります。多数のサーバーを管理する必要がある場合、面倒です。 Fabric は、接続する必要があるサーバーを定義できるホスト ディクショナリ項目を含む環境変数のディクショナリ env を提供します。

は次のとおりです:

リーリー

ホストリストを指定して、タスクごとに個別にタスクを実行することもできます:

リーリー
この方法で fab set_hosts mytask を実行すると、set_hosts で指定された 2 つの <code>host に対して mytask タスクを実行できます。コード> 。関数を書くのが面倒な場合は、

コマンドラインで関数を指定することも同じです: fab set_hosts mytask时,就可以为set_hosts中指定的两个host执行mytask任务了。如果你懒得写函数,在fab

リーリー
バッチタスクをより便利にするために、Role も Fabric で定義されています。興味がある場合は、その公式ドキュメントを読むことができます。

SSH パスワード、ユーザー、ポートを管理

SSH 公開キー認証を使用することをお勧めしますが、ファブリックは依然としてパスワードを管理するためのメカニズムを提供します。 Fabric は 2 層のパスワードを提供します。


サーバーが同じパスワードを持っている場合は、

で (ホスト、パスワード) のペアを設定して、サーバーごとに個別の ssh パスワードを設定できます。 env.password中设置默认的密码;如果server密码不同,还可以在env.passwords

上記のホスト文字列は、ユーザー名@ホスト名:ポートの形式です。したがって、ssh パスワードを指定する場合は、ssh ユーザーも指定されます。パスワードと同様に、env.user でデフォルトのユーザーを指定することもできます。どちらも指定されていない場合は、

コマンドを実行するときにパスワードの入力を求められます。 env.user中指定一个默认的用户。如果都没有指定,执行fab

ファブリックを使用すると、一連のホストの SSH 接続 (ホスト名、ユーザー、パスワードを含む) を管理し、一連のタスク機能を定義して、どのホストでどのタスクを実行するかを柔軟に指定できます。これは、運用とメンテナンス、プライベート クラウド管理、自動アプリケーション展開など、多数のホストを管理する必要があるシナリオで非常に役立ちます。


概要

この記事は単なる紹介文書であり、Fabric の威力を反映するものではありません。実際、Fabric には、ロール定義、リモート操作と例外処理、同時実行、ファイル操作などの多数の機能も含まれており、アプリケーション内で Fabric を呼び出すことができるのはコマンド ライン メソッドに限定されません。


以上がこの記事の全内容です。この記事の内容が皆さんの Fabric への興味を呼び起こし、実際のアプリケーションでの問題を解決できることを願っています。ご質問がある場合は、メッセージを残して連絡してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Python:ゲーム、GUIなどPython:ゲーム、GUIなどApr 13, 2025 am 12:14 AM

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

Python vs. C:比較されたアプリケーションとユースケースPython vs. C:比較されたアプリケーションとユースケースApr 12, 2025 am 12:01 AM

Pythonは、データサイエンス、Web開発、自動化タスクに適していますが、Cはシステムプログラミング、ゲーム開発、組み込みシステムに適しています。 Pythonは、そのシンプルさと強力なエコシステムで知られていますが、Cは高性能および基礎となる制御機能で知られています。

2時間のPython計画:現実的なアプローチ2時間のPython計画:現実的なアプローチApr 11, 2025 am 12:04 AM

2時間以内にPythonの基本的なプログラミングの概念とスキルを学ぶことができます。 1.変数とデータ型、2。マスターコントロールフロー(条件付きステートメントとループ)、3。機能の定義と使用を理解する4。

Python:主要なアプリケーションの調査Python:主要なアプリケーションの調査Apr 10, 2025 am 09:41 AM

Pythonは、Web開発、データサイエンス、機械学習、自動化、スクリプトの分野で広く使用されています。 1)Web開発では、DjangoおよびFlask Frameworksが開発プロセスを簡素化します。 2)データサイエンスと機械学習の分野では、Numpy、Pandas、Scikit-Learn、Tensorflowライブラリが強力なサポートを提供します。 3)自動化とスクリプトの観点から、Pythonは自動テストやシステム管理などのタスクに適しています。

2時間でどのくらいのPythonを学ぶことができますか?2時間でどのくらいのPythonを学ぶことができますか?Apr 09, 2025 pm 04:33 PM

2時間以内にPythonの基本を学ぶことができます。 1。変数とデータ型を学習します。2。ステートメントやループの場合などのマスター制御構造、3。関数の定義と使用を理解します。これらは、簡単なPythonプログラムの作成を開始するのに役立ちます。

プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は?プロジェクトの基本と問題駆動型の方法で10時間以内にコンピューター初心者プログラミングの基本を教える方法は?Apr 02, 2025 am 07:18 AM

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか?中間の読書にどこでもfiddlerを使用するときにブラウザによって検出されないようにするにはどうすればよいですか?Apr 02, 2025 am 07:15 AM

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

Python 3.6にピクルスファイルをロードするときに「__Builtin__」モジュールが見つからない場合はどうすればよいですか?Python 3.6にピクルスファイルをロードするときに「__Builtin__」モジュールが見つからない場合はどうすればよいですか?Apr 02, 2025 am 07:12 AM

Python 3.6のピクルスファイルのロードレポートエラー:modulenotFounderror:nomodulenamed ...

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター