Ansible中的Async、Forks、Serial三个参数都用于控制任务的并发执行,但有些不同点。以下是它们的解释和用法:
Async: Async用于控制异步任务的执行方式。异步任务是指不需要等待结果返回就能直接返回的任务,例如后台服务启动或停止服务,因为这个操作不需要等到服务启动或停止后才可以继续后续操作,可以直接返回。异步任务通常有一个timeout参数,以便在任务执行过程中能够超时返回。以下是Async的代码示例:
上例中,异步任务在30秒后超时,每10秒轮询一次异步任务是否已经完成。
Forks: Forks用于控制ansible使用多少个并行进程/线程执行任务。通常将默认值5更改为另一个较大的数字以加快任务的执行速度。如果设置最大值,则它将在所有主机上运行该最大值,并在 ansible.cfg 中设置。
以下是Forks的代码示例:
Serial: Serial用于控制playbook中任务的执行顺序,例如“串行”(即在每台主机上执行一个任务)或“并行”(即在所有主机上同时执行任务)。通过更改serial值,可以控制Ansible在多台主机上执行任务的速度和数量。
以下是Serial的代码示例: