在部署到生产环境时,我想在每台服务器之后暂停,以检查在Fabric继续到下一台服务器之前,部署是否按计划在THAT ONE SERVER上进行。
这是我定义角色的方式:
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吗?
答案 0 :(得分:1)
def deploy_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()