पाठ 17 / 26

Collections और Ansible Galaxy

साझा सामग्री install करें और requirements फ़ाइल से versions pin करें।

दोबारा न गढ़ें

आधुनिक Ansible सामग्री collections के रूप में बाँटी जाती है: modules, plugins और roles के बंडल, जिनके नाम namespace.collection होते हैं (जैसे community.general या amazon.aws)। Ansible Galaxy और Red Hat का Automation Hub उन्हें होस्ट करते हैं। अपने project की ज़रूरतें versions के साथ requirements.yml में लिखें और ansible-galaxy collection install -r requirements.yml से install करें, ताकि हर developer और CI job एक-सी सामग्री उपयोग करे। तृतीय-पक्ष roles उपयोग से पहले review करें, क्योंकि वे आपके अधिकारों से चलते हैं।

requirements.yml

Versions pin करने से runs दोहराने योग्य होते हैं। यहाँ के version संख्याएँ उदाहरण हैं।

---
collections:
  - name: community.general
    version: ">=9.0.0,<10.0.0"
  - name: ansible.posix
roles:
  - name: geerlingguy.nginx
    version: "3.2.0"

Module docs स्थानीय रूप से देखें

ansible-doc ansible.builtin.copy आपके install किए सटीक module version का दस्तावेज़, उदाहरणों समेत, बिना internet दिखाता है।

त्वरित जाँच: requirements.yml में collection versions pin क्यों करें?

  • वरना collections install नहीं हो सकते
  • Pin करने से modules तेज़ होते हैं
  • ताकि हर run एक-सी, दोहराने योग्य सामग्री उपयोग करे
  • यह कोड छिपाता है
Answer

ताकि हर run एक-सी, दोहराने योग्य सामग्री उपयोग करे — बिना pin के updates runs के बीच अनपेक्षित रूप से व्यवहार बदल सकते हैं।