Επιστροφή στο blog

Εγκατάσταση και παραμετροποίηση του LAMP σε Ubuntu 20.04 με το Ansible

Εγκατάσταση και παραμετροποίηση του LAMP σε Ubuntu 20.04 με το Ansible

Η αυτοματοποίηση διακομιστών είναι μια ασφαλής και αξιόπιστη διαδικασία διαχείρισης και παρακολούθησης διακομιστών με αποτελεσματικό και τεχνολογικά προηγμένο τρόπο. Σε αντίθεση με τον παραδοσιακό τρόπο διαχείρισης διακομιστών σε κέντρα δεδομένων που ελέγχονται από μια αποκλειστική ομάδα ειδικών, όλοι οι διακομιστές διαχειρίζονται με τη χρήση αυτοματοποίησης. Ως αποτέλεσμα, τα ανθρώπινα σφάλματα ελαχιστοποιούνται.

Εργαλεία διαχείρισης ρυθμίσεων όπως τα Ansible, Puppet, Terraform, για να αναφέρουμε μερικά, χρησιμοποιούνται συνήθως για την αυτοματοποίηση διακομιστών. Αυτά τα εργαλεία ρυθμίζουν διακομιστές χρησιμοποιώντας αυτοματοποίηση, καθιερώνοντας τυπικές διαδικασίες για νέους διακομιστές, ενώ παράλληλα εξαλείφουν πιθανά σφάλματα που προκύπτουν κατά τη χειροκίνητη εκτέλεση.

Ansible είναι ένα ισχυρό έργο ανοικτού κώδικα. Είναι ευέλικτο, εύκολο στη χρήση και διαθέτει την πιο απλοποιημένη αρχιτεκτονική. Δεν απαιτείται υπόβαθρο προγραμματισμού για τη χρήση των Ansible playbooks και δεν απαιτεί την εγκατάσταση λογισμικού στους κόμβους. Πάνω απ' όλα, είναι εξοπλισμένο με εξαιρετικές δυνατότητες που του επιτρέπουν να γράφει σενάρια κώδικα (scripts) και να απλοποιεί την αυτοματοποίηση.

Σε αυτόν τον οδηγό, θα σας καθοδηγήσουμε στα βήματα εγκατάστασης και ρύθμισης του LAMP σε Ubuntu 20.04 με το Ansible.

Προαπαιτούμενα

Για να παρακολουθήσετε αυτό το σεμινάριο, θα χρειαστείτε:

Ποιος είναι ο σκοπός του Ansible Playbook;

Αυτό το Ansible playbook είναι ένας εναλλακτικός τρόπος για να εκτελέσετε τη διαδικασία που περιγράφεται στον οδηγό μας LAMP Stack Setup Linux Apache MySQL PHP.

Η εκτέλεση του Ansible playbook θα έχει ως αποτέλεσμα τις ακόλουθες ενέργειες στους κεντρικούς υπολογιστές Ansible:

  • Εγκατάσταση του aptitude, μιας εναλλακτικής λύσης για τον διαχειριστή πακέτων apt όπως προτιμάται από το Ansible.

  • Εγκατάσταση όλων των απαραίτητων πακέτων LAMP.

  • Δημιουργία ενός νέου Apache VirtualHost και ρύθμιση ενός αποκλειστικού ριζικού καταλόγου εγγράφων (document root).

  • Ενεργοποιήστε (στο ON) το νέο VirtualHost.

  • Απενεργοποιήστε (στο OFF) τον προεπιλεγμένο ιστότοπο Apache, δηλαδή ορίστε τη μεταβλητή disable_default σε true.

  • Επιλέξτε έναν κωδικό πρόσβασης για τον root χρήστη της MySQL.

  • Κατάργηση ανώνυμων λογαριασμών MySQL και της δοκιμαστικής βάσης δεδομένων.

  • Ρυθμίστε το UFW ώστε να επιτρέπει την κίνηση HTTP στη διαμορφωμένη θύρα, όπου η προεπιλογή είναι 80.

  • Ρύθμιση ενός δοκιμαστικού σεναρίου PHP.

Αφού ολοκληρωθεί η εκτέλεση του Ansible playbook, θα δείτε ένα διαδικτυακό περιβάλλον PHP να εκτελείται πάνω από τον Apache σύμφωνα με τις ρυθμίσεις που έχουμε ορίσει.

Χρήση του Ansible Playbook

Αρχικά, λάβετε το LAMP playbook και τις εξαρτήσεις του από το αποθετήριο do-community/ansible-playbooks. Στη συνέχεια, κλωνοποιήστε το αποθετήριο με το LAMP playbook σε έναν τοπικό φάκελο μέσα στον Κόμβο Ελέγχου Ansible.

Εκτελέστε την εντολή git pull για να βεβαιωθείτε ότι έχετε πρόσβαση στο σωστό περιεχόμενο που πρόκειται να χρησιμοποιήσουμε σε αυτό το σεμινάριο:

Εάν χρησιμοποιείτε το αποθετήριο do-community/ansible-playbooks για πρώτη φορά, σκεφτείτε να κλωνοποιήσετε το αποθετήριο στον αρχικό σας φάκελο:

Μεταβείτε στον φάκελο lamp_ubuntu2004 και θα δείτε τη δομή:

Ακολουθεί μια επισκόπηση της σημασίας αυτών των αρχείων:

  • files/info.php.j2: Αυτό είναι ένα αρχείο προτύπου όπου μπορείτε να ρυθμίσετε μια δοκιμαστική σελίδα PHP στη ρίζα του διακομιστή ιστού.

  • files/apache.conf.j2: Ένα άλλο αρχείο προτύπου που χρησιμοποιείται για τη ρύθμιση του Apache VirtualHost.

  • vars/default.yml: Είναι ένα αρχείο μεταβλητών για την προσαρμογή των ρυθμίσεων του playbook.

  • playbook.yml: Αυτό το αρχείο περιέχει όλα τα περιεχόμενα των εργασιών που πρόκειται να εκτελεστούν στον/στους απομακρυσμένο/ους διακομιστή/ές.

  • readme.md: Ένα αρχείο ανάγνωσης που περιέχει τις πληροφορίες σχετικά με αυτό το playbook.

Ας προσαρμόσουμε τις ρυθμίσεις των MySQL και Apache κάνοντας αλλαγές στο αρχείο μεταβλητών του playbook. Μεταβείτε στον κατάλογο lamp_ubuntu2004 και ανοίξτε το αρχείο vars/default.yml χρησιμοποιώντας τον επεξεργαστή nano:

Ανοίγοντας το αρχείο vars/default.yml, θα υπάρχει μια λίστα μεταβλητών που πρέπει να τροποποιηθεί:

Ας κατανοήσουμε κάθε μία από τις μεταβλητές λεπτομερώς:

  • mysql_root_password: Αποθηκεύει τον κωδικό πρόσβασης για τον λογαριασμό root MySQL.

  • app_user: Είναι ένας απομακρυσμένος χρήστης μη-root στον κεντρικό υπολογιστή Ansible που λειτουργεί ως ιδιοκτήτης των αρχείων της εφαρμογής.

  • http_host: Εμφανίζει το όνομα τομέα σας.

  • http_conf: Εμφανίζει το όνομα του αρχείου ρυθμίσεων που δημιουργήθηκε μέσα στο Apache.

  • http_port: Είναι η θύρα HTTP για αυτόν τον εικονικό κεντρικό υπολογιστή, και 80 είναι η προεπιλογή.

  • disable_default: Χρησιμοποιείται για την αναίρεση των προεπιλεγμένων επιλογών που συνοδεύουν το Apache.

Στη συνέχεια, αποθηκεύστε και κλείστε το αρχείο vars/default.yml.

Μόλις ολοκληρωθεί όλη η εγκατάσταση, είμαστε έτοιμοι να εκτελέσουμε αυτό το playbook στους διακομιστές. Από προεπιλογή, οι περισσότεροι διακομιστές στα playbooks είναι ρυθμισμένοι να εκτελούνται σε κάθε διακομιστή στα inventories. Ας χρησιμοποιήσουμε τη σημαία -l για να επηρεάσουμε μόνο έναν συγκεκριμένο διακομιστή ή ένα επιλεγμένο υποσύνολο ομάδας που επηρεάζεται από το playbook. Εναλλακτικά, μπορούμε να χρησιμοποιήσουμε τη σημαία -u για να έχουμε μια λεπτομερή προβολή του ποιος απομακρυσμένος διακομιστής συνδέεται και εκτελείται στους απομακρυσμένους κεντρικούς υπολογιστές.

Ας εκτελέσουμε το playbook σε έναν διακομιστή server1 και ας τον συνδέσουμε με έναν χρήστη ως justin:

Θα λάβετε ένα αποτέλεσμα παρόμοιο με αυτό:

Μόλις δείτε ότι το playbook ολοκλήρωσε την εκτέλεσή του, μεταβείτε στο πρόγραμμα περιήγησης ιστού και αποκτήστε πρόσβαση στον κεντρικό υπολογιστή του διακομιστή. Μην ξεχάσετε να επισυνάψετε το /info.php στο τέλος της IP:

Κάνοντας κλικ σε αυτή τη διεύθυνση URL, θα δείτε μια σελίδα σαν αυτή:

Προειδοποίηση: Η σελίδα που εμφανίζεται περιέχει ευαίσθητες πληροφορίες σχετικά με το περιβάλλον PHP σας. Επομένως, συνιστάται να αφαιρέσετε τις προσωπικές σας πληροφορίες από τον διακομιστή χρησιμοποιώντας την ακόλουθη εντολή:

rm -f /var/www/info.php

Τι περιέχει το Playbook;

Στη συνέχεια, ας κατανοήσουμε τη σημασία και τη σπουδαιότητα των αρχείων που χρησιμοποιούνται στο ansible-playbook περιεχόμενο:

  • vars/default.yml

Το default.yml αρχείο μεταβλητών περιέχει το όνομα τομέα και τον κωδικό πρόσβασης του MySQL root λογαριασμού. Αυτές είναι οι προεπιλεγμένες τιμές που χρησιμοποιούνται στις εργασίες του ansible-playbook εργασίες:

  • files/apache.conf.j2

Το apache.conf.j2 αρχείο είναι ένα Jinja 2 αρχείο προτύπου που χρησιμοποιείται για τη διαμόρφωση ενός νέου Apache VirtualHost. Οι μεταβλητές που χρησιμοποιούνται σε αυτό το πρότυπο πρέπει να οριστούν στο vars/default.yml αρχείο μεταβλητών:

  • files/info.php.j2

Παρόμοια με το files/apache.conf.j2, το info.php.j2 αρχείο είναι επίσης ένα πρότυπο Jinja. Χρησιμοποιούμε αυτό το αρχείο για να ρυθμίσουμε ένα δοκιμαστικό σενάριο PHP στον ριζικό κατάλογο εγγράφων ενός πρόσφατα διαμορφωμένου διακομιστή LAMP:

  • playbook.yml

Το playbook.yml αρχείο είναι το μέρος όπου ορίζονται όλες οι εργασίες από αυτήν τη ρύθμιση. Σε αυτό το αρχείο, διαμορφώνονται όλες οι στοίβες LAMP. Ξεκινά με τον ορισμό της ομάδας των διακομιστών-στόχων και έχει οριστεί σε all. Επίσης, λαμβάνει την τιμή become ως true ( become: true), και ορίζει όλες τις εργασίες που πρέπει να εκτελεστούν. Στη συνέχεια, το yaml αρχείο περιέχει το προεπιλεγμένο αρχείο, το οποίο είναι το vars/default.yml αρχείο μεταβλητών, για τη φόρτωση των επιλογών διαμόρφωσης:

Μπορείτε να τροποποιήσετε αυτά τα αρχεία με βάση τις ανάγκες και τις απαιτήσεις του έργου σας.

Συμπέρασμα

Σε αυτόν τον οδηγό, εξετάσαμε τα βήματα εγκατάστασης και ρύθμισης του LAMP σε έναν απομακρυσμένο διακομιστή με το Ansible. Υπάρχουν πολλές άλλες επιλογές προσαρμογής με τις οποίες μπορείτε να πειραματιστείτε. Για παράδειγμα, η χρήση της επίσημης τεκμηρίωσης του Ansible και η χρήση των περιπτώσεων του mysql_user από το πρόσθετο (module) του Ansible είναι ένας εξαιρετικός τρόπος για να αναβαθμίσετε τις γνώσεις σας. Επίσης, ακολουθήστε τα βήματα που περιγράφονται σε αυτόν τον οδηγό για να εξασκηθείτε στην αυτοματοποίηση χρησιμοποιώντας άλλα εργαλεία διαχείρισης ρυθμίσεων και λειτουργικά συστήματα για να αυξήσετε το επίπεδο δυσκολίας.

Είστε νέος στο LAMP stack και θέλετε να εμβαθύνετε σε αυτό το θέμα; Εξερευνήστε τους παρακάτω οδηγούς στο ιστολόγιό μας:

Καλή υπολογιστική!

author

Hark Labs

Συγγραφέας · CloudSigma

Ο Preslav Dobrev είναι Δημιουργικός Σχεδιαστής στην CloudSigma, με εστίαση στη συνεπή επιχειρηματική ταυτότητα μέσω παραδοσιακών και καινοτόμων καναλιών μάρκετινγκ. Διαθέτει την ικανότητα να συνδυάζει το καλλιτεχνικό όραμα με το στρατηγικό μάρκετινγκ για τη δημιουργία εντυπωσιακών αφηγήσεων επωνυμίας.

Σχόλια

Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.