ファブリック スクリプトにいくつかのタスクがあります。env.hosts または @hosts デコレーターの設定を特定のタスクに分離する方法を理解しようとしています。ホストのタプルとして解析できるファイルを他の人にフィードできる一方で、fab ファイルにいくつかのタスクを設定してホストをプリセットしたいと考えています。また、そのファイルを実行時に決定したいと思います。
私はこれを持っています:
def host_list():
host_file = raw_input("enter the file containing the list of hosts: ")
host_list = open(host_file, 'r')
host_list = host_list.read().strip('\n')
host_list = host_list.split(',')
return host_list
私には仕事があります:
@task
def hostname():
run('hostname')
host_list 関数をコマンドに分割すると、env.hosts を適切に設定できますが、env.hosts を設定するためのファブリック プロンプトを表示させたくない他のタスクがあります。タスク関数内にステップを追加しようとしましたが、繰り返しごとにプロンプトが表示されます。#hosts デコレーターに host_list 関数を入力しようとしましたが、関数オブジェクトが反復可能ではないというエラーが発生しました。host_list 関数を特定のタスクのみに分離する方法はありますか?