django fabric用密码定义多个主机

时间:2015-10-14 09:58:19

标签: django fabric

假设我有一份要提供的主机列表:

env.hosts = ['host1', 'host2', 'host3']
env.password = ['password1', 'password2', 'password3']

它对我不起作用..我不想只给主机并为每个主机提供密码。我想为每个主机设置密码,它应该获取密码并部署我的网站而不需要密码。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

您最好的选择是:

注意:密码密钥必须为user @ locationport,否则无法使用。

fabfile.py

from fabric.api import env, task, run

@task
def environments():
    env.hosts = ['user1@10.99.0.2', 'user2@10.99.0.2', 'user3@10.99.0.2']
    env.passwords = {'user1@10.99.0.2:22': 'pass1', 'user2@10.99.0.2:22': 'pass2', 'user3@10.99.0.2:22': 'pass3'}


@task
def echo():
    run('whoami')

然后测试:

$ fab environments echo
[user1@10.99.0.2] Executing task 'echo'
[user1@10.99.0.2] run: whoami
[user1@10.99.0.2] out: user1
[user1@10.99.0.2] out: 

[user2@10.99.0.2] Executing task 'echo'
[user2@10.99.0.2] run: whoami
[user2@10.99.0.2] out: user2
[user2@10.99.0.2] out: 

[user3@10.99.0.2] Executing task 'echo'
[user3@10.99.0.2] run: whoami
[user3@10.99.0.2] out: user3
[user3@10.99.0.2] out: 


Done.
Disconnecting from user2@10.99.0.2... done.
Disconnecting from user1@10.99.0.2... done.
Disconnecting from user3@10.99.0.2... done.