我有一个构建服务器,在每次提交给定的剧本存储库后,都会运行合理的剧本。主机数据来自动态库存。我现在遇到的问题是,当我推送多个提交时,构建服务器会为相同的主机运行ansible-playbook
,并在主机服务器上创建争用条件。我如何才能让正在运行的剧本完成,然后在主机上运行剧本时启动或完全不运行? (我只需要在主机上运行一个实例)制作剧本只为给定主机运行剧本
0
A
回答
1
在启动剧本运行之前,您可以检查远程服务器的安全pid。你使用的是什么操作系统/发行版? 嗯..取决于你测试的是什么,你可以启动一个容器(docker或lxd)来测试每个提交的环境。考虑到如果您创建/修改网络接口或创建设备文件,它不会满足您的需求。 我使用这种方法来测试我的剧本角色只有一个服务器有几个单元测试每个角色参数。
相关问题
- 1. 将剧本集成到主剧本中
- 2. 与主机组运行ansible剧本 - 无需主机匹配
- 3. 运行在主机上的剧本与特定的参数
- 4. 使用可执行剧本选择特定主机/主机组
- 5. ansible - 平行运行剧本
- 6. 在多个主机组上一次运行一个剧本
- 7. Ansible剧本需要从主机
- 8. 期望脚本运行Ansible剧本
- 9. 执行ansible剧本
- 10. 限制只在我的剧本
- 11. 处理剧本中的剧本
- 12. 为什么有一个Ansible“主剧本”?
- 13. Ansible剧本不运行从角色
- 14. 运行带剧情的R脚本
- 15. 对剧本
- 16. Vars_prompt在剧本
- 17. 剧本图库
- 18. 剧本掉毛
- 19. 两部剧有两个不同的主机在同一剧本与依赖
- 20. ansible-剧本:ERROR:提供主机列表为空
- 21. ansible剧本运行任务,只有一次
- 22. 在Ansible中,剧本可以将标签传递给其他剧本吗?
- 23. Ansible不靠剧本
- 24. iPhone,日文剧本
- 25. 剧本太火了?
- 26. “好天”的剧本
- 27. 无法解析剧本错误在剧本中
- 28. 只为整个剧本运行一次Ansible处理程序一次
- 29. 如何在剧本作业(从srun开始)完成之前保留剧本?
- 30. ansible-剧本--limit不重叠的主机别名
你如何触发构建服务器来运行可靠的剧本? – kfreezy
@kfreezy我使用[Phabricator](https://secure.phabricator.com/book/phabricator/article/harbormaster/#triggering-builds),你可以在提交时触发构建。问题是当你同时推送多个提交时。有没有办法确保只有一个实例正在运行? – Pouyan
你可以为ansible-playbook编写包装shell脚本,或者修改ansible-playbook python文件来检查其他进程,但这看起来像是一个糟糕的解决方案。你最好在你的CD服务器上设置一些构建队列。 –