如何迭代开发fabfile?

时间:2015-10-21 21:56:03

标签: python fabric

我正在阅读fabric并针对测试虚拟机运行我的脚本但在修复错误之后我无法再运行它,因为它已经成功创建了一个addgroup的小组。我的问题是

撰写fabfile的良好发展策略是什么?

是否存在可以使fabfiles重新运行或更强大的最佳实践,以便您可以在编写它时多次运行它,或者让人们对其VM进行快照并在每次运行后回滚?

1 个答案:

答案 0 :(得分:2)

就个人而言(我已经写了大约2年的fabfiles)我倾向于这样做,以便在启动代码之前检查它是否存在。例如:

@task
def provision():
    sudo('apt-get update')
    sudo('apt-get install -y {}'.format(' '.join(SERVER_PACKAGES)))

    # always do this so it never crashes
    sudo('mkdir -p {}'.format(ROOT_PATH)) 

    if files.exists(os.path.join(path, 'nginx')):
        print 'NGINX {} installed. Skipping.'.format(version)
        return

    do_instalation_here()

当你运行它时,没有任何东西会崩溃并且让你退出。