私は次のような環境を持っています:
env.roledefs = {
'cisco-collectors': ['hosta', 'hostb', 'hostc'],
'brocade-collectors': ['hosta', 'hostd']
}
特定の役割のホストに送信する必要がある特定のファイルがいくつかあります。
files = {
'cisco-collectors': ['/path/to/filea', '/path/to/fileb'],
'brocade-collectors': ['/path/to/filec', '/path/to/filed']
}
コマンドラインで役割が指定されたとき、または@roles()
デコレータを使用して適切なファイルリストを取得できるように、 sendFiles() 関数をどのように記述すればよいですか?
この質問は、ホストがロールに属しているかどうかを判断する方法を示していますが、現在実行されているロールを取得する必要があるため、どのファイル リストを送信するかがわかります。
理想的には、次のようになります。
@roles('cisco-collectors', 'brocade-collectors')
def sendFiles():
for file in files[env.current_role]:
put(file)