ホームページ  >  記事  >  バックエンド開発  >  Fabric を使用してタスクを自動化する方法

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

WBOY
WBOYオリジナル
2016-12-05 13:27:12986ブラウズ

まず例を見てみましょう。 *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 までご連絡ください。