Ansible के साथ एकाधिक प्लेबुक कैसे चलाएं?


16

मैं एक नई सर्वर आवृत्ति को स्पिन करने के लिए कई ऐंसीबल प्लेबुक पर काम कर रहा हूं। लगभग 15 अलग-अलग प्लेबुक हैं जिन्हें मुझे एक सर्वर को सफलतापूर्वक स्पिन करने के लिए एक विशिष्ट क्रम में चलाने की आवश्यकता है।

मेरा प्रारंभिक विचार एक शेल स्क्रिप्ट लिखना था, जो ansible-playbook playbook_name.ymlमुझे चलाने के लिए आवश्यक प्रत्येक प्लेबुक के लिए एक प्रविष्टि को निष्पादित और डुप्लिकेट करता है ।

क्या मास्टर प्लेबुक का उपयोग करने का कोई बेहतर / बेहतर तरीका है और यदि ऐसा है तो यह कैसा लगेगा (उदाहरण की सराहना की जाती है)।

मैं एक मोनोलिथिक प्लेबुक लिख सकता था जो यह सब करता है लेकिन कुछ नाटक हैं जो पहले रूट के रूप में और फिर बाद में एक sudo उपयोगकर्ता के रूप में चलते हैं।


2
अपने मुख्य प्लेबुक में उपयोग करें शामिल करें docs.ansible.com/ansible/playbooks_roles.html
c4f4t0r

1
मूल के रूप में फिर एक sudo उपयोगकर्ता के रूप में चलने के मामले को संभालने के लिए, आप ब्लॉक सुविधा का उपयोग कर सकते हैं - become:प्रत्येक ब्लॉक के अंत में भाग डालें। आपको कनेक्शन उपयोगकर्ता को रूट से sudo उपयोगकर्ता पर स्विच करने के लिए एक नया नाटक बनाने की आवश्यकता हो सकती है ।
रिचवेल

जवाबों:


15

कई उप-प्लेबुक बनाएं और उन्हें स्टेटमेंट के माध्यम से एकत्रित करें।

- include: playbook-one.yml
- include: playbook-two.yml

यदि आपकी प्लेबुक आवश्यक रूप से चल रही है और यदि वे सभी अनिवार्य हैं, तो मुख्य प्लेबुक बनाएं और कार्यों के साथ फाइल शामिल करें। एक प्लेबुक हमेशा एक बंद प्रक्रिया होनी चाहिए।


2
क्या आप अपने उत्तर के अंतिम भाग के बारे में विस्तार से बता सकते हैं? "ए प्लेबुक हमेशा एक बंद प्रक्रिया होनी चाहिए।" ?
माइक

1
क्या नियमित अभिव्यक्ति का उपयोग करके सभी प्लेबुक निर्दिष्ट करने का कोई तरीका है? उदाहरण के लिए:- include : books/*.yml
ब्लूसकिन

8
लगता है जैसे includeपदावनत कर दिया गया है। docs.ansible.com/ansible/latest/playbooks_reuse.html मुझे लगता import_playbook: fooहै कि जाने का सही तरीका है, लेकिन मैं सुपर अनुभवी हूं।
एंड्रयू

11

Ansilbe के नए संस्करणों के लिए, आप कई उप-प्लेबुक बना सकते हैं और उन्हें आयात_प्लेबुक विवरणों के माध्यम से एकत्र कर सकते हैं:

---
- import_playbook: A-systemd-networkd.yml
- import_playbook: B-fail2ban-ssh.yml
- import_playbook: C-enable-watchdog.yml
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.