我想在多台主机上测试各种软件包安装。不同的主机有不同的密码/ ssh-key。
我不想在我的fab文件中硬编码主机名及其ssh-key。如何通过终端命令行传递多个主机及其ssh-key。
我的fab文件中的代码看起来像 -
from fabric.api import settings, run, env
def test_installation(cmd):
run("dpkg -s %s" %cmd)
我称之为 -
fab test_installation:tomcat7 --hosts "user1@host1:port","vuser2@host2:port" -i "ssh-file-path for host1","ssh-file-path for host2"
请建议我正确的方法。任何帮助都是最受欢迎的。
答案 0 :(得分:1)
您不提供主机的ssh密钥,但只提供您的ssh密钥,用于在主机上的authorized_keys中注册。并且您只提供它的路径(通常是~/.ssh/id_rsa
)。
此外,您可以配置fabric以使用ssh配置,因此您根本不需要对任何路径进行硬编码。它可以使用相同的键,就像在shell中键入ssh my_host
时使用的那样。
如何在面料教程中找到:
http://docs.fabfile.org/en/1.8/usage/execution.html#leveraging-native-ssh-config-files
http://docs.fabfile.org/en/1.8/usage/env.html#full-list-of-env-vars
您还可以将〜/ .ssh / config设置为针对不同主机使用不同的密钥。 如果您不熟悉ssh并进行配置,请参阅: