iT邦幫忙

0

Python, Ansible實現執行鎖

各位大大好!

小弟現在有一情景數個不相干ansible playbook因為某種緣故(有個服務的service_account的token只有一個,同時跑會導致前面token失效最後搶成一團),所以只能一個一個執行ansible playbook,目前想到辦法是用Python呼叫Ansible之前先檢查某個文件裡是否有ansible_excute_lock=True字串,如果有就先等待沒有就呼叫ansible playbook。

不知道各位大大有沒有Production實務上的做法? 或者這設計本身就有缺陷,感恩!

froce iT邦大師 1 級 ‧ 2021-04-26 15:47:51 檢舉
設定role dependencies?
https://docs.ansible.com/ansible/latest/user_guide/playbooks_reuse_roles.html#using-role-dependencies
r76021061 iT邦新手 4 級 ‧ 2021-04-26 20:30:31 檢舉
感謝force大大我研究看看

2 個回答

0
japhenchen
iT邦大師 1 級 ‧ 2021-04-26 15:34:01

Because Ansible relies on forking processes, this API is not thread safe.

https://docs.ansible.com/ansible/latest/dev_guide/developing_api.html

(點錯題目了)

看更多先前的回應...收起先前的回應...

.......自刪

froce iT邦大師 1 級 ‧ 2021-04-26 15:46:22 檢舉

他不是要多執行序,他是要確認某一程序(playbook)先執行完才能執行下一程序。

自刪..(能自刪回應嗎?)

r76021061 iT邦新手 4 級 ‧ 2021-04-26 20:27:21 檢舉

force說的沒錯!言簡意賅

0
harutsuki
iT邦新手 5 級 ‧ 2021-04-26 19:03:39

聽起來你的需求很像是 mutex

r76021061 iT邦新手 4 級 ‧ 2021-04-26 22:04:11 檢舉

應該比較類似多程序但還是感謝您的回答

harutsuki iT邦新手 5 級 ‧ 2021-04-27 18:56:02 檢舉

多執行緒執行時,如果有共用資源但是不可同時寫入時也是利用 mutex 來鎖住資源無法被其他程序使用

我要發表回答

立即登入回答