我正在运行nodes.Suppose部署的行动手册,因为一些问题,如断电或其他一些异常,执行失败后执行一些tasks.So,我试图从它失败的地方恢复执行,当我下次运行行动手册时。
从start.Is运行所有任务的攻略很耗时有可能实现解决方案吗?
发布于 2019-01-10 16:39:45
您可以使用function --start-at- task ="task name“,这将从特定的任务名称运行整个剧本,并从那里继续。但请注意,如果您之前在任务中注册了任何变量,并在之后使用它们,则从该任务开始将不会注册它们,因此游戏将不会使用它们。在这种情况下,您可以为注册变量的任务提供"always“标记
发布于 2019-01-10 18:24:40
失败的ansible-playbook运行的输出实际上告诉您如何做到这一点(假设您在配置中将'retry_files_enabled‘设置为真,这是默认设置):
要重试,请使用:--limit @/some/path/ to /a/ retry /file
在失败的情况下,Ansible将创建一个针对您请求的特定用途的重试文件。因此,只需将'--limit‘语句附加到您用来运行剧本的命令后,并再次启动它。
编辑:公平地说,您在控制机器上出现电源故障的特定情况不在此范围内,但Ansible处理的任何故障(即大多数故障)都将使用此方法。
发布于 2019-01-10 18:25:37
像这样执行:
ansible-playbook --forks=10 myscript.yml --start-at-task='install java'具有limit:ansible-playbook --forks=10 myscript.yml --limit limit1 --start-at-task='install java'
https://stackoverflow.com/questions/54123605
复制相似问题