Fabric 2 で接続周りをシンプルにしたい

Fabric 2 で env を fabric みたいに何も考えずに設定して接続というのをやろうとしてたんだけど下記のように出来なさそう。
global は、バッドノウハウな匂いしかしないんだけど、他にやる方法ないのかな。
おとなしく .ssh/config を設定してそれを読み込ませるようにするのがベターなのかしら?


# -- coding:utf-8 --
from fabric import Connection
from invoke import task

env = {}
conn = None

@task
def env_vagrant(c):
global conn
env['host'] = 'localhost'
env['user'] = 'vagrant'
env['kwargs'] = {
'key_filename': '/home/vagrant/.ssh/id_rsa',
}
conn = Connection(
env['host'],
user=env['user'],
connect_kwargs=env['kwargs'])

@task
def info(c):
conn.run('pwd')
conn.run('python --version')
conn.run('pipenv --version')
conn.local('ls')

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です