非常に単純なシナリオ:
env.use_ssh_config = True
@hosts(['example'])
def test():
run('uname')
次のSSH構成を使用します。
Host example
HostName example.com
私はこれを取得しています:
$ fab test
[example] Executing task 'test'
[example] run: uname
Fatal error: Name lookup failed for example.com
Underlying exception:
nodename nor servname provided, or not known
Aborting.
# BUT!
$ ssh example uname
Linux
何が起こっているのか分かりますか?
SSH構成にHostName example.com_
(アンダースコアは誤って末尾の空白文字です)が含まれていることがわかりました。
もう一度#305のように見えますか?
入力(ホスト"example"
を要求するFabric)とssh構成キーの実際のマッチング(ストリッピング( "example ")
)が必要なもの)があるため、これはssh
側で行う必要があると思います。 "example ")
はSSHConfig.lookup
で実行されます。そこで参照します。
ssh#23を参照してください
ありがとう@ yuvadm-余分なスペースも私を手に入れました
余分な空白のバグにも噛まれました。将来の検索者のためにこれをここに投稿してください。
私が得ていたエラーはFatal error: Name lookup failed for hosts
-辞書ベースのenv.roledefs
定義を使用していたためです。
最も参考になるコメント
余分な空白のバグにも噛まれました。将来の検索者のためにこれをここに投稿してください。
私が得ていたエラーは
Fatal error: Name lookup failed for hosts
-辞書ベースのenv.roledefs
定義を使用していたためです。