我有一個構建服務器,在每次提交給定的劇本存儲庫後,都會運行合理的劇本。主機數據來自動態庫存。我現在遇到的問題是,當我推送多個提交時,構建服務器會爲相同的主機運行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服務器上設置一些構建隊列。 –