面料密码
每次结构运行时,都会要求inputroot密码,它是否可以自动发送。
fab staging test
fab -h
会告诉你所有的选项,你也可以在这里阅读。
特别是,我引用,
-p密码, – 密码=密码
将env.password设置为给定的string; 它将作为SSH连接或调用sudo程序时的默认密码。
我知道你已经询问了密码,但是configuration系统不是最好的吗?
为此,在本地机器上做:
-
ssh-keygen
并同意所有的默认值(如果你没有其他理由) -
cat ~/.ssh/id_rsa.pub
并复制该密钥
在远程机器上:
-
mkdir ~/.ssh && chmod 700 ~/.ssh
-
touch ~/.ssh/authorized_keys2 && chmod 600 ~/.ssh/authorized_keys2
- 将复制的密钥粘贴到
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密码了。