我正在阅读fabric并针对测试虚拟机运行我的脚本但在修复错误之后我无法再运行它,因为它已经成功创建了一个addgroup
的小组。我的问题是
撰写fabfile的良好发展策略是什么?
是否存在可以使fabfiles重新运行或更强大的最佳实践,以便您可以在编写它时多次运行它,或者让人们对其VM进行快照并在每次运行后回滚?
答案 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()
当你运行它时,没有任何东西会崩溃并且让你退出。