Βήμα 1: Δημιουργία αρχείου YAML (.yml).
Βήμα 2: Κατανόηση των βιβλίων: εργασίες και χειριστές
Βήμα 3: Εκτέλεση βιβλίων
Τα Playbook στο Ansible είναι αυτό που κάνει το Ansible τόσο εύχρηστο. Τα Playbook επιτρέπουν την εκτέλεση εργασιών ρουτίνας με πολλές ενότητες. Πότε πρέπει να χρησιμοποιούμε playbooks;
Ας ρίξουμε μια ματιά σε μια εργασία ρουτίνας συντήρησης: την ενημέρωση των διακομιστών σας. Δεν θα χρειαστεί να χρησιμοποιήσουμε ένα playbook για αυτό, δεδομένου ότι είναι μόνο μία εντολή: apt-get update. Θα μπορούσαμε να χρησιμοποιήσουμε μόνο μία εντολή για να ενημερώσουμε το λογισμικό σε όλους τους διακομιστές μας. Ωστόσο, για την ανάπτυξη κάτι σαν διακομιστή ιστού ή βάσης δεδομένων, χρειάζεται περισσότερη δουλειά: όχι μόνο μία εντολή. Τα Playbooks είναι η αρχή για αυτήν την περίπτωση. Σας επιτρέπουν να χρησιμοποιείτε πολλαπλές λειτουργικές μονάδες, οι οποίες είναι εντολές που μπορούν να εκτελεστούν σε έναν διακομιστή. Για παράδειγμα, υπάρχουν λειτουργικές μονάδες για την αντιγραφή αρχείων και την εκτέλεση εντολών φλοιού μέσω SSH.
Πώς χρησιμοποιούμε λοιπόν τα playbooks; Ας αρχίσουμε!
Βήμα 1: Δημιουργία .ymlαρχείου YAML ( ).
Τα Ansible playbook γράφονται ως .ymlαρχεία. Το Ansible δεν μπορεί να ερμηνεύσει άλλες μορφές. Ένα παράδειγμα βιβλίου παιχνιδιού Ansible μοιάζει με αυτό:
---
- hosts: webservers
vars:
http_port: 80
max_clients: 200
remote_user: root
tasks:
- name: ensure apache is at the latest version
yum: pkg=httpd state=latest
- name: write the apache config file
template: src=/srv/httpd.j2 dest=/etc/httpd.conf
notify:
- restart apache
- name: ensure apache is running (and enable it at boot)
service: name=httpd state=started enabled=yes
handlers:
- name: restart apache
service: name=httpd state=restarted
(Λήψη από την τεκμηρίωση της Ansible)
Βήμα 2: Κατανόηση των βιβλίων: εργασίες και χειριστές
Όπως μπορείτε να δείτε, υπάρχουν πολλές ενότητες σε αυτό το βιβλίο. Πρώτα θα δείτε τη hosts:γραμμή. Αυτό καθορίζει σε ποιους κεντρικούς υπολογιστές θα πρέπει να εκτελεστεί το playbook. Μπορείτε επίσης να δείτε ότι έχουμε ορίσει μερικές μεταβλητές που μπορούν να προσπελαστούν και να χρησιμοποιηθούν σε όλο το βιβλίο παιχνιδιού. Στη συνέχεια, θα δείτε μια σειρά από εργασίες. Αυτές οι εργασίες θα μπορούσαν να ονομαστούν κάτι σαν "Εγκατάσταση Apache", για παράδειγμα. Η δεύτερη εργασία στο παράδειγμα εγγράφει στη διαμόρφωση του Apache. Στη συνέχεια θα δείτε τα εξής:
notify:
- restart apache
Αυτό λέει μια εργασία για την εκτέλεση ενός συγκεκριμένου χειριστή. Σε αυτήν την περίπτωση, αναφέρεται στον χειριστή restart apache, ο οποίος βρίσκεται στο κάτω μέρος του βιβλίου παιχνιδιού:
handlers:
- name: restart apache
service: name=httpd state=restarted
Οι χειριστές είναι βολικοί επειδή, λαμβάνοντας το παράδειγμα, μπορεί να θέλετε να επανεκκινήσετε το Apache πολλές φορές. Σε αυτήν την περίπτωση, δεν χρειάζεται να επαναλαμβάνετε τη δημιουργία μιας εργασίας για κάθε φορά που χρειάζεται να κάνετε επανεκκίνηση του Apache, αλλά μπορείτε απλώς να ανατρέχετε στον ίδιο χειριστή κάθε φορά.
Βήμα 3: Εκτέλεση βιβλίων
Ας υποθέσουμε ότι θέλετε να αναπτύξετε έναν διακομιστή Apache. Λοιπόν, όπως μπορείτε να δείτε, μόλις δημιουργήσαμε ένα βιβλίο παιχνιδιού για αυτό. Η εκτέλεση βιβλίων αναπαραγωγής μπορεί να γίνει χρησιμοποιώντας την ansible-playbookεντολή. Για παράδειγμα, εάν επρόκειτο να εκτελέσουμε αυτό το βιβλίο αναπαραγωγής σε όλους τους διακομιστές της webserversκατηγορίας (θα χρειαστεί να έχετε αυτήν την κατηγορία στο /etc/ansible/hostsαρχείο σας ), θα εκτελούσατε την ακόλουθη εντολή δεδομένου ότι το όνομα του αρχείου του βιβλίου αναπαραγωγής σας είναι apache.yml:
ansible-playbook -i webservers apache.yml
Συγχαρητήρια! Τώρα έχετε εκτελέσει ένα playbook σε όλους τους διακομιστές της webserversκατηγορίας σας . Τώρα θα πρέπει απλώς να περιμένετε να ολοκληρωθεί η ανάπτυξη και θα δείτε ότι το Apache έχει εγκατασταθεί και διαμορφωθεί με επιτυχία σε αυτούς τους διακομιστές.