पाठ 8 / 26

Check Mode और Diff

Playbook लागू करने से पहले देखें कि वह क्या बदलेगा।

कूदने से पहले देखें

--check (dry run) बताता है कि कौन-से tasks कुछ बदलते, बिना बदले, और --diff files व templates का ठीक पहले/बाद दिखाता है। production छूने से पहले दोनों चलाएँ। हर module check mode समर्थित नहीं करता और कुछ tasks पहले के बदलावों पर निर्भर होते हैं, इसलिए इसे मज़बूत पूर्वावलोकन मानें, पूर्ण गारंटी नहीं।

Drift पकड़ना, चलाकर

मैंने web1.conf में हाथ से अनचाही पंक्ति port=1 जोड़ी, फिर --check --diff से चलाया। Ansible दिखाता है कि वह वह पंक्ति हटाएगा (-port=1) और web1 को changed=1 बताता है जबकि web2 अपरिवर्तित है।

ansible-playbook -i inventory.ini site.yml --check --diff

Output:

--- before: .../out/web1.conf
+++ after: .../app.conf.j2
-port=1
web1                       : ok=3    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
web2                       : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0

Syntax जाँच

इसे CI में सबसे पहले चलाएँ। यह किसी host से संपर्क किए बिना playbook parse करता है।

ansible-playbook -i inventory.ini site.yml --syntax-check

Output:

playbook: site.yml

त्वरित जाँच: `--check --diff` क्या करता है?

  • Playbook encrypt करता है
  • Target files हटाता है
  • बिना बदले दिखाता है कि क्या बदलेगा
  • Logs server पर upload करता है
Answer

बिना बदले दिखाता है कि क्या बदलेगा — Check mode run का अनुकरण करता है और diff अंतर दिखाता है।