ansible tutorial installation
Hands-on Ansible Tutorial με εγκατάσταση, χρήση και διαμόρφωση Ansible με Ansible Modules:
Συζητήσαμε για AWS Elastic Beanstalk στο προηγούμενο σεμινάριό μας.
ΚΑΤΑΛΟΓΟΣ σεμιναρίων σε αυτήν την σειρά Ansible:
Εκμάθηση # 1: Είδη εγκατάστασης και μονάδες
Εκμάθηση # 2: Αβίαστα Playbooks και Vaults
Εκμάθηση # 3: Ανόητοι ρόλοι και ολοκλήρωση με τους Jenkins
Το Ansible είναι ένα εργαλείο ανοιχτού κώδικα που βοηθά στην αυτοματοποίηση εργασιών, την ανάπτυξη εφαρμογών, την παροχή cloud και τη διαχείριση διαμόρφωσης.
Διαβάστε επίσης => Λίστα εκπαιδευτικών εκπαιδευτικών DevOps
Μιλάμε λοιπόν για ενορχήστρωση πληροφορικής όπου οι εργασίες εκτελούνται διαδοχικά σε διάφορα μηχανήματα ή διακομιστές.
Το Ansible το κάνει αυτό συνδέοντας σε πολλά μηχανήματα μέσω SSH και εκτελεί τις εργασίες που έχουν διαμορφωθεί σε βιβλία αναπαραγωγής και χρησιμοποιεί μια απλή γλώσσα που ονομάζεται YAML (ακόμα μια γλώσσα σήμανσης) .
Τι θα μάθετε:
- Επισκόπηση του Ansible
- Διαδικασία εγκατάστασης της κατηγορίας
- Αβίαστη χρήση
- Υποκατάστατα Ενότητες
- Περίληψη
- Συνιστώμενη ανάγνωση
Επισκόπηση του Ansible
Το πιο σημαντικό, το Ansible δεν χρησιμοποιεί πράκτορα για την αυτοματοποίηση εργασιών σε διαφορετικά μηχανήματα.
Το Ansible διασφαλίζει τη διατήρηση ακριβών εκδόσεων και ενημερωμένων πληροφοριών στα πακέτα λογισμικού.
Για παράδειγμα , εάν θέλετε να εγκαταστήσετε το JDK 8 ή το Tomcat ή οποιοδήποτε άλλο πακέτο λογισμικού σε 10 ή 20 διαφορετικά μηχανήματα, δεν είναι πραγματικά εφικτό να μεταβείτε σε όλα τα μηχανήματα και να τα εγκαταστήσετε, αντί να χρησιμοποιήσετε το Ansible για να αυτοματοποιήσετε την εγκατάσταση ή ακόμα και την ανάπτυξη λογισμικού χρησιμοποιώντας Playbooks και Inventory γραμμένο σε μια πολύ απλή γλώσσα.
Έτσι το Ansible είναι:
- Δωρεάν και ανοιχτού κώδικα
- Συντηρείται από τον Redhat
- Ουσιαστικά μια διαμόρφωση διακομιστή
- Διαχείριση διαμόρφωσης
Σε αυτήν τη σειρά 3 μερών Ansible Tutorial, θα συζητήσουμε την πρακτική προσέγγιση στα ακόλουθα θέματα:
- Διαδικασία εγκατάστασης και διαμόρφωσης
- Καταγραφή εμπορευμάτων
- Υποκατάστατα Ενότητες
- Εντολές ad-hoc,
- Αυτοματοποίηση εργασιών χρησιμοποιώντας playbook
- Αβλαβείς ρόλοι
- Αβίαστος θησαυρός
- Αβίαστος και AWS
Διαδικασία εγκατάστασης της κατηγορίας
Το Ansible μπορεί να εγκατασταθεί και να εκτελεστεί από οποιοδήποτε μηχάνημα.
Συνήθως θα χρειαστείτε ένα Μηχανή ελέγχου για εγκατάσταση που πρέπει να είναι Linux. Το Windows Machine δεν υποστηρίζει ότι είναι μηχανή ελέγχου. Το μηχάνημα ελέγχου θα διαχειρίζεται τα άλλα απομακρυσμένα μηχανήματα. Όπως αναφέρθηκε προηγουμένως, η Ansible χρησιμοποιεί SSH για τη διαχείριση απομακρυσμένων μηχανών.
Σε όλο αυτό το σεμινάριο, θα χρησιμοποιώ παρουσίες AWS EC2 για να δείξω τα παραδείγματα. Έχω χρησιμοποιήσει 2 παρουσίες (μία μηχανή ελέγχου και άλλη ως στόχο για την αυτοματοποίηση εργασιών) και το Redhat Linux 7.5.
Είτε πρόκειται για εγκαταστάσεις είτε για cloud, θα πρέπει να ανοίξετε θύρες κατάλληλα με βάση τις εργασίες που αυτοματοποιούνται. Έχω ανοίξει τις ακόλουθες θύρες ως μέρος της ομάδας ασφαλείας για τις περιπτώσεις EC2 για να δείξω τα παραδείγματα που αναφέρονται στο σεμινάριο.
δωρεάν εφαρμογή λήψης mp3 για τηλέφωνο Android
Στην παραπάνω οθόνη, ανέφερα το άνοιγμα της θύρας 8080, όπως θα δείξω για την αυτοματοποίηση του αυτοματισμού ανάπτυξης λογισμικού χρησιμοποιώντας το Tomcat, το οποίο θα είναι χρήσιμο από την άποψη του DevOps, ειδικά κατά τη διαδικασία συνεχούς παράδοσης.
Εγκατάσταση του Ansible χρησιμοποιώντας το YUM
Όπως αναφέρθηκε προηγουμένως, θα χρησιμοποιήσω ένα μηχάνημα ελέγχου και μια μηχανή στόχου. Για να ξεκινήσετε με την εγκατάσταση, εκτελέστε τα βήματα όπως φαίνεται παρακάτω και στα δύο μηχανήματα.
προς την) Δημιουργήστε ένα κοινό αναγνωριστικό και στα δύο μηχανήματα, για Παράδειγμα , αβίαστο με προνόμια SUDO. Αυτό το αναγνωριστικό θα χρησιμοποιηθεί για επικοινωνία σε όλα τα μηχανήματα που εμπλέκονται για αυτοματοποίηση εργασιών.
# useradd ansible # passwd ansible
σι) Επεξεργαστείτε το / etc / ssh / sshd_config αρχείο στο μηχανή ελέγχου και απογοητεύστε τις γραμμές για PasswordAuthentication και PermitRootLogin
Εκτελέστε τα παραπάνω βήματα και στα δύο μηχανήματα. Μόλις ολοκληρωθεί, κάντε επανεκκίνηση του sshd σέρβις και στα δύο μηχανήματα.
# systemctl restart sshd
ντο) Για πλήρη αυτοματοποίηση εργασιών, θα χρειαζόμαστε έλεγχο ταυτότητας SSH χωρίς κωδικό πρόσβασης, διαφορετικά η όλη διαδικασία δεν θα χρησιμοποιηθεί εάν πρέπει να πληκτρολογείτε τον κωδικό πρόσβασης κάθε φορά.
Γι 'αυτό δημοσιεύστε τις αλλαγές που έγιναν παραπάνω αν εκτελέσουμε την εντολή ssh και ssh θα πρέπει να πληκτρολογούμε τον κωδικό πρόσβασης κάθε φορά που δεν είναι η σωστή διαδικασία για την εκτέλεση καθηκόντων Ansible.
ρε) Για να ενεργοποιήσετε τον έλεγχο ταυτότητας χωρίς κωδικό πρόσβασης για να εκτελέσετε τα παρακάτω βήματα. Πρώτα προσθέστε τον χρήστη αβίαστο στο / etc / sudoers αρχείο και στα δύο μηχανήματα που θα επιτρέψουν στο χρήστη αβίαστο για να εκτελέσετε οποιαδήποτε εντολή που απαιτεί δικαιώματα root.
Αποθηκεύστε και βγείτε από το αρχείο μετά την προσθήκη του χρήστη.
είναι) Προχωρώντας θα χρησιμοποιήσουμε τον χρήστη αβίαστο για να εκτελέσετε όλα τα βήματα. Μεταβείτε λοιπόν στον χρήστη αβίαστο.
Μηχανή ελέγχου κατάλληλο - ΚΑΙ Μηχανή στόχου su - ευπαθή
Μηχανή ελέγχου ssh-keygen
Μηχανή στόχου ssh-keygen
Αντιγράψτε το κλειδί ssh στο μηχάνημα προορισμού και αντίστροφα.
Μηχανή ελέγχου ssh-copy-id
Μηχανή στόχου ssh-copy-id
oracle sql συνεντεύξεις ερωτήσεις και απαντήσεις
Τώρα μπορούμε να συνδεθούμε χωρίς να εισάγουμε τον κωδικό πρόσβασης. Μετά τον έλεγχο της σύνδεσης ssh και στα δύο μηχανήματα και συνδεθείτε ως ανίκανος χρήστης.
Μηχανή ελέγχου: ssh ansible @
Μηχανή στόχου: ssh ansible @
φά) Εγκαταστήστε το wget εάν δεν είναι εγκατεστημένο και στα δύο μηχανήματα.
$ sudo yum install wget -y
σολ) Μπορούμε τώρα να εγκαταστήσουμε αβίαστο μόνο στο μηχάνημα ελέγχου ενεργοποιώντας το repo EPEL από το fedora που παρέχει πρόσθετα πακέτα λογισμικού. Εκτελέστε τα παρακάτω βήματα για εγκατάσταση ΔΥΝΑΤΟΤΗΤΑ.
$ wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm $ sudo rpm -ivh epel-release-latest-7.noarch.rpm $ sudo yum install ansible -y $ ansible --version
Η χρησιμοποιούμενη βρώσιμη έκδοση είναι 2.5.3
η) Επεξεργαστείτε το ansible.cfg αρχείο και ενεργοποιήστε την παράμετρο αρχείου απογραφής στον υπολογιστή ελέγχου.
$ sudo vi /etc/ansible/ansible.cfg
Εγώ) Η Ansible χρησιμοποιεί την έννοια του Inventory για τη διαχείριση και την παρακολούθηση των μηχανών-στόχων. Από προεπιλογή, αυτό το αρχείο βρίσκεται στο / etc / ansible / host και μπορεί να αλλάξει επίσης. Ένα αρχείο κεντρικού υπολογιστή αποτελείται από ομάδες για καλύτερη ταξινόμηση και πολλαπλούς υπολογιστές της ομάδας. Όλα τα απαιτούμενα μηχανήματα μπορούν να προστεθούν σε αυτές τις ομάδες.
Κάθε ομάδα συμβολίζεται με ένα αγκύλη και ένα όνομα ομάδας εντός. Ένας διακομιστής μπορεί πραγματικά να υπάρχει σε πολλές ομάδες.
Επεξεργαστείτε το αρχείο αποθέματος / etc / ansible / host και προσθέστε όλους τους διακομιστές που πρέπει να διαχειριστούν.
ι) Για να ελέγξετε τη συνδεσιμότητα των διακομιστών στην ομάδα του διακομιστή ιστού, εκτελέστε το αβλαβές ping εντολή όπως φαίνεται. Εδώ πινγκ είναι μια ενότητα που εκτελεί μια συγκεκριμένη λειτουργία για να ελέγξει εάν οι κεντρικοί υπολογιστές μπορούν να συνδεθούν όπως ορίζεται στο αρχείο αποθέματος ή όχι. Στην επόμενη ενότητα θα δούμε περισσότερα για διάφορες ενότητες και παραδείγματα.
$ ansible webservers –m ping
Για να απαριθμήσετε τους κεντρικούς υπολογιστές στο αρχείο αποθέματος, μπορείτε να εκτελέσετε την παρακάτω εντολή
$ ansible webservers --list-hosts
Αβίαστη χρήση
Το Ansible αποτελείται από 3 κύρια συστατικά
- Μηχανή ελέγχου
- Καταγραφή εμπορευμάτων
- Βιβλίο
Το μηχάνημα ελέγχου διαχειρίζεται την εκτέλεση του Playbook. Μπορεί να εγκατασταθεί σε φορητό υπολογιστή ή σε οποιοδήποτε μηχάνημα στο Διαδίκτυο.
Το αρχείο αποθέματος παρέχει μια πλήρη λίστα όλων των μηχανών-στόχων στις οποίες εκτελούνται διάφορες ενότητες κάνοντας μια σύνδεση ssh και εγκαταστήστε τα απαραίτητα λογισμικά.
Το βιβλίο αναπαραγωγής αποτελείται από βήματα που θα εκτελέσει ο μηχανισμός ελέγχου στους διακομιστές που ορίζονται στο αρχείο αποθέματος.
Πολύ σημαντικό να καταλάβουμε εδώ είναι ότι το Ansible αλληλεπιδρά με όλους τους διακομιστές που ορίζονται στο απόθεμα μέσω του πρωτοκόλλου SSH, που είναι μια ασφαλής μέθοδος απομακρυσμένης σύνδεσης. Κάθε εργασία γίνεται και η μεταφορά αρχείων είναι κρυπτογραφημένη.
Έτσι, όπως θα είδατε στην προηγούμενη ενότητα, το Ansible δεν χρησιμοποιεί κανένα είδος βάσης δεδομένων για εγκατάσταση και είναι πολύ εύκολο στην εγκατάσταση, θα προχωρήσουμε τώρα με την πραγματική χρήση του Ansible ξεκινώντας από Modules που είναι το κύριο δομικό στοιχείο.
Υποκατάστατα Ενότητες
Οι ενότητες είναι τα κύρια δομικά στοιχεία του Ansible και είναι βασικά επαναχρησιμοποιήσιμα σενάρια που χρησιμοποιούνται από βιβλία παιχνιδιού Ansible. Το Ansible συνοδεύεται από μια σειρά επαναχρησιμοποιήσιμων ενοτήτων. Αυτές περιλαμβάνουν λειτουργικότητα για τον έλεγχο υπηρεσιών, εγκατάσταση πακέτων λογισμικού, εργασία με αρχεία και καταλόγους κ.λπ.
Η σύνταξη έχει ως εξής κατά την εκτέλεση των εντολών ad-hoc που βοηθούν στην εκτέλεση μεμονωμένων ή απλών εργασιών μόνο μία φορά και οι οποίες δεν χρειάζεται να εκτελεστούν αργότερα. Για Π.χ. απλά εγκαθιστώντας το Tomcat σε όλους τους διακομιστές.
ansible hostORgroup -m module_name -a 'arguments' -u username --become
Ας ρίξουμε μια ματιά σε μερικές από τις πιο δημοφιλείς ενότητες Ansible και τη χρήση τους μέσω των ad-hoc εντολών και αργότερα στο playbook.
# 1) Μονάδα εγκατάστασης
Για να λάβετε πληροφορίες σχετικά με το δίκτυο ή το υλικό ή την έκδοση του λειτουργικού συστήματος ή πληροφορίες σχετικά με τη μνήμη, η ενότητα εγκατάστασης θα σας βοηθήσει να συγκεντρώσετε το ίδιο για τα μηχανήματα προορισμού. Στο χειριστήριο, το μηχάνημα εκτελεί την παρακάτω εντολή.
$ ansible webservers –m setup
# 2) Ενότητα εντολών
Η ενότητα εντολών εκτελεί απλά μια συγκεκριμένη εντολή στο μηχάνημα προορισμού και δίνει την έξοδο.
Μερικά από τα Παραδείγματα δίνονται παρακάτω
$ ansible webservers –m command - an ‘uptime’ $ ansible webservers –m command –a ‘hostname’
# 3) Μονάδα Shell
Για να εκτελέσετε οποιαδήποτε εντολή στο κέλυφος της επιλογής σας μπορείτε να χρησιμοποιήσετε τη μονάδα Shell. Οι εντολές της μονάδας κελύφους εκτελούνται σε κέλυφος / bin / sh και μπορείτε να χρησιμοποιήσετε τους χειριστές όπως '>' ή '|' (σύμβολο σωλήνα ή ακόμα και μεταβλητές περιβάλλοντος.
Επομένως, πρωτίστως η διαφορά μεταξύ της μονάδας Shell και Command είναι ότι εάν πραγματικά δεν χρειάζεται να χρησιμοποιήσετε τους τελεστές όπως αυτοί που αναφέρονται τότε θα μπορούσατε να χρησιμοποιήσετε τη λειτουργική μονάδα εντολών.
$ ansible webservers -m shell -a 'ls -l > temp.txt'
Στα μηχανήματα κάτω από την ομάδα διακομιστών ιστού, ελέγξτε για το αρχείο που δημιουργήθηκε και εκτελέστε την εντολή για να προβάλετε το αρχείο κειμένου.
$ ansible webservers –m command -a ‘cat temp.txt’
# 4) Ενότητα χρήστη
Χρησιμοποιώντας αυτήν την ενότητα μπορεί κανείς να δημιουργήσει ή να διαγράψει χρήστες.
Για να προσθέσετε χρήστη
$ ansible webservers -m user -a 'name=user1 password=user1' --become
Για διαγραφή χρήστη
$ ansible webservers -m user -a 'name=user1 state=absent' --become
Επιλογές:
- γίνομαι - Προνόμιο στον υπερχρήστη να εκτελέσει την εντολή
- κατάσταση = απουσία για να διαγράψετε τον χρήστη
# 5) Ενότητα αρχείων
Αυτή η ενότητα χρησιμοποιείται για τη δημιουργία αρχείων, καταλόγων, ορισμού ή αλλαγής δικαιωμάτων και ιδιοκτησίας αρχείων κ.λπ.
Παράδειγμα 1: Δημιουργήστε ένα αρχείο
$ ansible webservers -m file -a 'dest=/home/ansible/niranjan.txt state=touch mode=600 owner=ansible group=ansible'
Παράδειγμα 2: Δημιουργήστε έναν κατάλογο
Για να δημιουργήσετε έναν κατάλογο χρησιμοποιώντας την ενότητα αρχείων, πρέπει να ορίσετε δύο παραμέτρους.
- Διαδρομή (ψευδώνυμο - όνομα, προορισμός) - Αυτή είναι η απόλυτη διαδρομή του καταλόγου που θα δημιουργηθεί.
- Κατάσταση - Πρέπει να εισαγάγετε την τιμή ως «κατάλογος». Από προεπιλογή, η τιμή είναι «αρχείο».
$ ansible webservers -m file -a 'dest=/home/ansible/vndir state=directory mode=755'
Παράδειγμα 3: Διαγράψτε ένα αρχείο
$ ansible webservers -m file -a 'dest=/home/ansible/niranjan.txt state=absent'
Παράδειγμα 4: Διαγραφή καταλόγου
Μπορείτε να διαγράψετε έναν κατάλογο ορίζοντας την τιμή της παραμέτρου κατάστασης σε απών . Ο κατάλογος και όλα τα περιεχόμενά του θα διαγραφούν.
$ ansible webservers -m file -a 'dest=/home/ansible/vndir state=absent'
προγράμματα που χρησιμοποιούν c ++
# 6) Ενότητα αντιγραφής
Χρησιμοποιείται για την αντιγραφή αρχείων σε πολλαπλές συσκευές προορισμού.
$ ansible webservers -m copy -a 'src=sample.txt dest=/home/ansible/sample.txt'
# 7) Διαχείριση πακέτων λογισμικού
Εάν πρέπει να εγκαταστήσετε πακέτα λογισμικού μέσω του 'yum' ή του 'apt' μπορείτε να χρησιμοποιήσετε τις παρακάτω εντολές.
Παράδειγμα 1: Εγκαταστήστε το GIT
$ ansible webservers –m yum -a “name=git state=present” --become
Στο δεξιό παράθυρο, μπορείτε να δείτε αν το git δεν είναι εγκατεστημένο, θα δώσει εντολή που δεν βρέθηκε και μόλις εγκατασταθεί θα εμφανιστεί η έξοδος.
Σε αυτήν την εντολή, κατάσταση = παρόν θα ελέγξει εάν το πακέτο είναι εγκατεστημένο ή όχι και αν δεν εγκατασταθεί θα εγκαταστήσει την τελευταία έκδοση.
Παράδειγμα 2: Ελέγξτε εάν το πακέτο είναι εγκατεστημένο και ενημερώστε το στην πιο πρόσφατη έκδοση.
$ ansible webservers -m yum -a “name=git state=latest”
Στην παραπάνω εντολή, κατάσταση = τελευταία θα ενημερώσει το πακέτο μόνο στην πιο πρόσφατη έκδοση.
Παράδειγμα 3: Εγκαταστήστε το Apache Webserver
$ ansible webservers -m yum -a 'name=httpd state=present' –become
Παράδειγμα 4: Ελέγξτε εάν το Maven είναι εγκατεστημένο ή όχι.
$ ansible webservers -m yum -a 'name=maven state=absent' –become
# 8) Διαχειριστική ενότητα υπηρεσιών
Για να διαχειριστούμε τις υπηρεσίες με το ansible, χρησιμοποιούμε μια ενότητα 'υπηρεσία'.
Έναρξη υπηρεσίας
$ ansible webservers -m service -a “name=httpd state=started” --become
Διακοπή υπηρεσίας
$ ansible webservers -m service -a “name=httpd state=stopped” --become
Επανεκκίνηση μιας υπηρεσίας
$ ansible webservers -m service -a “name=httpd state=restarted --become
Κάντε κλικ εδώ για να λάβετε τη λίστα Πλήρης ενότητα.
Περίληψη
Σε αυτό το σεμινάριο, σας παρουσίασα τις βασικές έννοιες και τα συστατικά του Ansible και έχουμε επίσης δει περισσότερα για την εγκατάσταση, τη διαμόρφωση και τη χρήση του Ansible με τη βοήθεια των ενοτήτων Ansible που είναι το κύριο συστατικό στην εκτέλεση του Ansible.
Στο επερχόμενο σεμινάριό μας, θα επικεντρωθούμε στην πολύ σημαντική πτυχή της σύνταξης βιβλίων για αυτοματοποίηση εργασιών και θυρίδων Ansible για τη διατήρηση ευαίσθητων δεδομένων σε κρυπτογραφημένα αρχεία.
Εκπαιδευτικό πρόγραμμα PREV | ΕΠΟΜΕΝΟ Φροντιστήριο
Συνιστώμενη ανάγνωση
- Εκμάθηση έκλειψης σε βάθος για αρχάριους
- Ansible Roles, Integration with Jenkins in DevOps και EC2 Modules
- Αυτοματοποίηση εργασιών χρησιμοποιώντας βιβλία Playable Ansible και υποκαταστήματα Ansible με παραδείγματα
- Βήμα προς βήμα εγκατάσταση και εγκατάσταση του Appium Studio
- Εισαγωγή στη γλώσσα προγραμματισμού Java - Video Tutorial
- WebDriver Ολόκληρη εγκατάσταση και εγκατάσταση με Eclipse - Selenium Tutorial # 9
- Λήψη και εγκατάσταση του Jira με τη ρύθμιση άδειας Jira
- Διαδικασία εισαγωγής και εγκατάστασης Python