20 Package Service Baseline
Package και Service Facts χωρίς εγκατάσταση.
1. Έλεγχος
cd examples/20-package-service-baseline
ansible-inventory --graph
ansible-playbook playbooks/site.yml --syntax-check
ansible-playbook playbooks/site.yml --check --diff
ansible-playbook playbooks/site.yml
ansible-playbook playbooks/site.yml
2. Σημεία μάθησης
- Ελέγχετε το Inventory και το Scope πριν από την εκτέλεση.
- Το Playbook είναι αρκετά μικρό ώστε να μπορεί να αξιολογηθεί κατά την εκπαίδευση.
- Χρησιμοποιείτε Check Mode και Diff Mode όταν το αντίστοιχο module τα υποστηρίζει.
- Η δεύτερη εκτέλεση τεκμηριώνει το Idempotence.
3. Στόχος
Το παράδειγμα παρουσιάζει μια συγκεκριμένη εφαρμογή του Ansible, η οποία μπορεί να ελεγχθεί τοπικά. Χρησιμοποιεί localhost, τοπικά αρχεία με dummy δεδομένα ή στοιχεία τεκμηρίωσης και αποφεύγει αλλαγές σε production συστήματα.
4. Προαπαιτούμενα
- Lab περιβάλλον με βάση το Ubuntu.
- Εγκατεστημένο Ansible.
- Διαθέσιμα τοπικά αρχεία του workshop.
- Χρήση αποκλειστικά dummy τιμών, χωρίς πραγματικά Secrets ή production δεδομένα.
5. Αρχεία
- Το
ansible.cfgορίζει το Inventory και τις τοπικές διαδρομές των roles. - Ο κατάλογος
inventory/περιέχει τους στόχους του lab. - Το
playbooks/site.ymlπεριγράφει τη ροή που θα εκτελεστεί. - Πρόσθετοι κατάλογοι, όπως
templates/,tasks/,roles/ήcollections/, συμπληρώνουν το εκάστοτε θέμα.
6. Εκτέλεση
- Διαβάστε το README και την αντίστοιχη γλωσσική τεκμηρίωση.
- Ελέγξτε το Inventory και τους hosts στόχους.
- Εκτελέστε τον Syntax Check.
- Εκτελέστε το Check Mode και το Diff Mode.
- Εκτελέστε το Playbook.
- Εκτελέστε το ξανά και αξιολογήστε το Idempotence.
7. Αναμενόμενο αποτέλεσμα
Το παράδειγμα παράγει μια ελέγξιμη έξοδο, ένα marker file στο /tmp ή αποκλειστικά έξοδο debug και validation. Δεν πρέπει να αποκαλύπτει πραγματικά Secrets ούτε να μεταβάλλει production συστήματα.
8. Επεξήγηση
Η υλοποίηση παρουσιάζει ένα συνηθισμένο πρακτικό δομικό στοιχείο. Σημασία έχουν η επαναληψιμότητα, η αναγνωσιμότητα, οι ασφαλείς dummy τιμές, το περιορισμένο Scope και η εύκολη επαναφορά της αρχικής κατάστασης.
9. Συνηθισμένα λάθη
- Το παράδειγμα εκτελείται από λανθασμένο κατάλογο εργασίας.
- Το Inventory δεν φορτώνεται.
- Το Check Mode εκλαμβάνεται λανθασμένα ως πλήρης προσομοίωση.
- Τα marker files στο
/tmpσυγχέονται με την κατάσταση ενός production συστήματος. - Χρησιμοποιείται pattern όπως το
allχωρίς προηγούμενο έλεγχο με--list-hosts.
10. Δυνατότητες επέκτασης
- Προσθέστε δεύτερο περιβάλλον στο παράδειγμα.
- Αυτοματοποιήστε το validation.
- Συμπληρώστε σημειώσεις για Security και Troubleshooting.
- Μετατρέψτε το σε άσκηση του workshop ή σε ερώτηση Assessment.