# Revision: Cheat Sheet और Self-Check — Ansible: Playbooks से Servers का Automation

Source: https://www.geekswithgeeks.com/hi/ansible/wrap-revision

> पूरे कोर्स के commands, अवधारणाओं और production आदतों की दोहराई करें।

## Cheat sheet

**मूल**: SSH पर agentless; control node; inventory + groups; playbook → plays → tasks → modules; idempotent। **Commands**: `ansible -m ping`, `ansible-inventory --graph`, `--check --diff`, `--syntax-check`, `--tags`, `--limit`, `-e`, `-v` के साथ `ansible-playbook`; `ansible-doc`, `ansible-galaxy`, `ansible-vault`। **डेटा**: variables (precedence, `-e` जीतता है), `setup` से facts, filters सहित Jinja2 templates, `group_vars`/`host_vars`। **तर्क**: `loop`, `when`, `register`, `handlers` (बदलाव पर notify), tags, `block/rescue`। **पुनः उपयोग**: roles, collections, `requirements.yml`, import बनाम include। **सुरक्षा**: Vault, `no_log`, least privilege `become`। **Production**: lint + Molecule, dynamic inventory, `serial`, canary, controller (AWX/AAP)।

## इंटरव्यू में पूछे जाने वाले सवाल

इन्हें समझाने को तैयार रहें: idempotency क्या है और `command` उसे कैसे तोड़ता है, handlers कैसे काम करते हैं, variable precedence, roles और collections में अंतर, secrets सुरक्षित कैसे रखेंगे, और 200 servers पर जोखिम भरा बदलाव कैसे rollout करेंगे।

**Quiz:** `shell: apt install nginx` वाला task हर run पर changed दिखाता है। सबसे अच्छा सुधार क्या है?

- [x] state: present के साथ apt module उपयोग करें
- [ ] और shell commands जोड़ें
- [ ] Output अनदेखा करें
- [ ] इसे दो बार चलाएँ

*Answer:* state: present के साथ apt module उपयोग करें. बना-बनाया module idempotent है और तभी changed बताता है जब कुछ install करता है।

**Quiz:** कौन-सा command बिना लागू किए file बदलाव का पूर्वावलोकन देता है?

- [ ] ansible-doc copy
- [ ] ansible-vault encrypt
- [ ] ansible-galaxy role init
- [x] ansible-playbook site.yml --check --diff

*Answer:* ansible-playbook site.yml --check --diff. Check mode अनुकरण करता है और diff दिखाता है कि क्या बदलेगा।

**Quiz:** आपको 200 web servers न्यूनतम जोखिम से update करने हैं। सबसे अच्छा तरीक़ा क्या है?

- [ ] सभी 200 एक साथ update करें
- [x] पहले एक canary host, फिर health checks और विफलता सीमा के साथ serial batches
- [ ] Testing छोड़ दें
- [ ] SSH पर हाथ से करें

*Answer:* पहले एक canary host, फिर health checks और विफलता सीमा के साथ serial batches. क्रमिक rollout ख़राब बदलाव का असर सीमित करता है और उसे पहचानने व रोकने का समय देता है।
