gpt4 book ai didi

python - Fabric:如何提示用户在 env.roledefs 中定义的主机之间进行输入?

转载 作者:太空宇宙 更新时间:2023-11-03 18:37:30 27 4
gpt4 key购买 nike

当部署到生产环境时,我想在每台服务器之后暂停,以检查部署是否按计划在该服务器上进行,然后 Fabric 继续到下一台服务器。

这就是我定义角色的方式:

 def dev():
"""Development Environment
"""
env.environment='dev'
env.roledefs = {
'backend': ['dev_back1', 'dev_back2'],
'fronts': ['dev_front1','dev_front2','dev_front3']
}

def stage():
"""Stage Environment
"""
env.environment='stage'
env.roledefs = {
'backend': ['stage_back1', 'stage_back2'],
'fronts': ['stage_front1','stage_front2','stage_front3']
}


def prod():
"""Production Environment
"""
env.environment='prod'
env.roledefs = {
'backend': ['prod_back1', 'prod_back2'],
'fronts': ['prod_front1','prod_front2','prod_front3']
}

就像它在所有服务器上执行一样,但是在生产环境中我确实希望管理员和 Fabric 之间进行交互。

像这样:

prod_front1 已完成,您想继续 prod_front2 吗?

完成后:

prod_front2 已完成,您想继续 prod_front3 吗?

最佳答案

这可行,但肯定不是最好的:

def 部署_this_server()

    do_deployment_stuff()

answer = query_user_function("Server done. Continue to next server?")

if answer == "no":
sys.exit()

front_machines = env.roledefs['fronts']

对于 front_machines 中的 front_machine:

    env.host_string = front_machine

deploy_this_server()

关于python - Fabric:如何提示用户在 env.roledefs 中定义的主机之间进行输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21259413/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com