現在使用しているネットワークに応じて、異なるホスト セット (ロール) を使用するタスクを作成したいと考えています。サーバーと同じネットワークにいる場合、ゲートウェイを経由する必要はありません。
ここに私の fabfile.py からのスニペットがあります:
env.use_ssh_config = True
env.roledefs = {
'rack_machines': ['rack4', 'rack5', 'rack6', 'rack7'],
'external_rack_machines': ['erack4', 'erack5', 'erack6', 'erack7']
}
@roles('rack_machines')
def host_type():
run('uname -s')
したがって、私のタスクhost_type()
では、 、 などrack_machines
と同じネットワークにいる場合、その役割を にしたいと考えています。rack4
rack5
external_rack_machines
ssh config だけでこれを行う方法があるかもしれません。これも私のssh_config
ファイルのスニペットです:
Host erack4
HostName company-gw.foo.bar.com
Port 2261
User my_user
Host rack4
HostName 10.43.21.61
Port 22
User my_user