面料密码

每次结构运行时,都会要求inputroot密码,它是否可以自动发送。

fab staging test 

fab -h会告诉你所有的选项,你也可以在这里阅读。

特别是,我引用,

-p密码, – 密码=密码

将env.password设置为给定的string; 它将作为SSH连接或调用sudo程序时的默认密码。

我知道你已经询问了密码,但是configuration系统不是最好的吗?

为此,在本地机器上做:

  1. ssh-keygen并同意所有的默认值(如果你没有其他理由)
  2. cat ~/.ssh/id_rsa.pub并复制该密钥

在远程机器上:

  1. mkdir ~/.ssh && chmod 700 ~/.ssh
  2. touch ~/.ssh/authorized_keys2 && chmod 600 ~/.ssh/authorized_keys2
  3. 将复制的密钥粘贴到authorized_keys2

从现在起,您的远程机器“信任”您的本地机器,并允许无需密码login。 便利。

您也可以根据主机设置密码。 这对我来说并不明显,所以在这里,任何人都在寻找这个:

 from fabric import env env.hosts = ['user1@host1:port1', 'user2@host2.port2'] env.passwords = {'user1@host1:port1': 'password1', 'user2@host2.port2': 'password2'} 

Fabriccaching在env.passwords字典中使用密码。 它使用完整主机string作为该字典的密钥并将密码设置为值来设置此caching。 如果您在执行任何任务之前自行设置此字典,则Fabric将根本不请求它们。

只要添加任何人在search结束,你可以指定-I选项,当运行晶圆厂为它提示你一个默认的密码使用。 这样它就不会在您的命令历史中可见

例:

 $ fab -I my_task Initial value for env.password: 

一种不把密码放在进程列表中的方法(命令显示在ps aux中)就是把它放在fabfile.py中,如下所示:

 from fabric.context_managers import env env.password = 'PASSWORD' 

把它放在远程系统的任何东西之前,它不会再要求input密码了。