28 Ερωτήσεις και απαντήσεις για συνέντευξη σε πραγματικό χρόνο Terraform

Ακολουθούν 28 ερωτήσεις και απαντήσεις για συνέντευξη σε πραγματικό χρόνο Terraform με μια λίστα και επεξήγηση σημαντικών εντολών που τίθενται συχνά σε συνεντεύξεις.

Η αύξηση της χρήσης των τεχνολογιών Cloud έχει ανοίξει πολλές ευκαιρίες στον κόσμο των DevOps. Στο μέλλον, οι τεχνολογίες cloud θα είναι ένα κοινό θέμα για ερωτήσεις συνεντεύξεων και η βασική γνώση του cloud και της υποδομής ως κώδικα, τα εργαλεία IAC θα είναι απαραίτητα για τους ρόλους του DevOps.

Πίνακας περιεχομένων

Τι είναι το Terraform;

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

  Πώς να χρησιμοποιήσετε τη φωνητική συνομιλία στο H1Z1 PS4

Σε περίπτωση που αναρωτιέστε ποιες τεχνολογίες υποστηρίζει η terraform, εδώ είναι μια μικρή λίστα:

Για να προχωρήσετε στην καριέρα σας ως Μηχανικοί DevOps, Αρχιτέκτονες Cloud, Προγραμματιστές ή Διαχειριστές, θα πρέπει να αντιμετωπίσετε ερωτήσεις συνέντευξης Terraform. Συγκεντρώσαμε μια λίστα με τις κορυφαίες ερωτήσεις συνέντευξης στο Terraform που θα σας βοηθήσουν να βελτιώσετε τις γνώσεις σας για το Terraform.

Γενικές ερωτήσεις και απαντήσεις συνέντευξης Terraform

#1. Τι καταλαβαίνετε από το Terraform;

Το Terraform είναι ένα εργαλείο IAC ανοιχτού κώδικα που δημιουργήθηκε από HashiCorp. Χρησιμοποιείται για τη δημιουργία, ενημέρωση, διαγραφή και έκδοση της υποδομής σας σε πολλαπλές πλατφόρμες cloud.

#2. Ποιοι είναι οι λόγοι για να επιλέξετε το Terraform για DevOps;

Η χρήση του Terraform για την παροχή υποδομής δεν αφήνει περιθώρια για ανθρώπινα λάθη, βελτιώνοντας έτσι την ποιότητα, τη συνέπεια και την αποτελεσματικότητα της υποδομής Cloud και της on-prem υποδομής. Η Terraform χρησιμοποιεί τη γλώσσα HCL, η οποία είναι αρκετά παρόμοια με την JSON και είναι εύκολη στην εκμάθηση και στη χρήση. Σε αντίθεση με τα άλλα εργαλεία IAC που προσφέρονται από παρόχους cloud όπως το Cloudformation για AWS, μπορούμε να χρησιμοποιήσουμε το Terraform με πολλές πλατφόρμες cloud ταυτόχρονα. Αυτό αποφεύγει την ανάγκη εκμάθησης πολλαπλών εργαλείων IAC και βελτιώνει το εύρος της συνεργασίας.

#3. Πώς λειτουργεί το Terraform;

Η Terraform χρησιμοποιεί προσθήκες που ονομάζονται πάροχοι Terraform για να αλληλεπιδρά με API σε πλατφόρμες Cloud και να παρέχει τους πόρους μας. Ως τελικός χρήστης, η ροή εργασίας terraform έχει τρία βήματα.

Γράψτε: Δημιουργήστε την υποδομή ως κώδικα.

Σχέδιο: Κάντε προεπισκόπηση των αλλαγών που θα κάνει η Terraform πριν από την αίτηση.

Εφαρμογή: Παροχή της υποδομής και εφαρμογή των αλλαγών.

#4. Τι εννοείς με το Terraform cloud;

Το Terraform Cloud είναι ένα απομακρυσμένο περιβάλλον που έχει βελτιστοποιηθεί για τη ροή εργασίας Terraform. Παρέχει λειτουργίες όπως χώρους εργασίας και κλείδωμα κατάστασης, που επιτρέπει σε άτομα σε μεγάλες ομάδες να συνεργάζονται.

#5. Τι καταλαβαίνετε από το κράτος στο Terraform;

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

#6. Ποιο είναι το όφελος του Terraform State;

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

#7. Τι καταλαβαίνετε από το Terraform Backend;

Το Terraform Backend είναι η πλατφόρμα όπου αποθηκεύονται τα στιγμιότυπα κατάστασης Terraform. Από προεπιλογή, το Terraform χρησιμοποιεί ένα backend που ονομάζεται local για να αποθηκεύσει την κατάσταση ως τοπικό αρχείο στο δίσκο σας. Όλα τα άλλα υποστηριζόμενα backend είναι κάποιο είδος υπηρεσίας απομακρυσμένης αποθήκευσης.

  Δημιουργήστε ισχυρά γραφήματα, οπτικοποιήστε δεδομένα και δημιουργήστε ταμπλό εντός των εφαρμογών σας με τα FusionCharts

#8. Τι είναι ένας πάροχος στο Terraform;

Οι πάροχοι στο Terraform είναι προσθήκες που επιτρέπουν στην Terraform να αλληλεπιδρά με παρόχους cloud, παρόχους SaaS και άλλα API. Για παράδειγμα, εάν σκοπεύουμε να χρησιμοποιήσουμε το Terraform για την παροχή υποδομής στο AWS, θα χρειαστεί να δηλώσουμε έναν πάροχο AWS στα αρχεία διαμόρφωσής μας.

#9. Ποιος διατηρεί Terraform Providers;

Οι πάροχοι διανέμονται χωριστά από την ίδια την Terraform. Ως χρήστης Terraform, ο καθένας μπορεί να αναπτύξει τους δικούς του παρόχους. Υπάρχουν ορισμένοι τυπικοί πάροχοι που διατηρούνται ρητά από τη Hashicorp.

#10. Τι είναι το Sentinel;

Φρουρός είναι μια πολιτική ως εργαλείο κώδικα που χρησιμοποιείται για την επιβολή τυπικών διαμορφώσεων για πόρους που αναπτύσσονται από την Terraform. Μπορεί να χρησιμοποιηθεί από οργανισμούς για σκοπούς συμμόρφωσης και διακυβέρνησης.

#11. Τι καταλαβαίνετε από τις ενότητες στο Terraform;

Μια λειτουργική μονάδα Terraform είναι ένα τυπικό κοντέινερ για πολλούς πόρους που χρησιμοποιούνται μαζί για την παροχή και τη διαμόρφωση πόρων. Για παράδειγμα, μπορείτε να δημιουργήσετε μια “μονάδα VPC” για τον οργανισμό σας που παρέχει ένα τυπικό VPC και άλλους πόρους όπως Υποδίκτυα και Πύλες Διαδικτύου. Οι ενότητες μπορούν να κοινοποιηθούν δημόσια μέσω του μητρώου Δημόσιας ενότητας και ιδιωτικά μέσω του μητρώου της Ιδιωτικής μονάδας.

#12. Ποιο είναι το όφελος από τη χρήση μονάδων σε εδαφική μορφή;

Οι μονάδες Terraform μας επιτρέπουν να δημιουργήσουμε λογική αφαίρεση στην κορυφή ενός συνόλου πόρων. Η χρήση μονάδων μας επιτρέπει να διατηρήσουμε και να επαναχρησιμοποιήσουμε μια τυπική διαμόρφωση για πόρους. Μπορούν να εκδοθούν και να μοιραστούν με τα μέλη των ομάδων σας για την παροχή πόρων με τυπικό τρόπο.

#13. Τι είναι το Μητρώο Private Module;

Μια δυνατότητα Private Module Registry Terraform Cloud μας επιτρέπει να μοιραζόμαστε τις ενότητες Terraform στον οργανισμό μας.

Ερωτήσεις και απαντήσεις για προχωρημένους Terraform

#14. Πώς μπορούμε να εξάγουμε δεδομένα από το ένα module στο άλλο;

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

#13. Πώς μπορείτε να ορίσετε τις εξαρτήσεις στο Terraform;

Το Terraform έχει ενσωματωμένη διαχείριση εξαρτήσεων. Το Terraform έχει δύο είδη εξαρτήσεων μεταξύ των πόρων – άρρητες και ρητές εξαρτήσεις.

Οι σιωπηρές εξαρτήσεις, όπως υποδηλώνει το όνομα, εντοπίζονται αυτόματα από την Terraform. Αυτό συμβαίνει όταν η έξοδος ενός «πόρου Α» χρησιμοποιείται στον «πόρο Β». Το Terraform εντοπίζει αυτόματα ότι ο “πόρος Β” πρέπει να δημιουργηθεί μόνο μετά τον “πόρο Α”

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

#14. Τι είναι οι Προμηθευτές στο Terraform;

Οι προμηθευτές είναι πόροι Terraform που χρησιμοποιούνται για την εκτέλεση σεναρίων ως μέρος της δημιουργίας ή της καταστροφής πόρων. Υπάρχουν δύο τύποι Προμηθευτών στο Terraform:

  • local-exec: Καλεί ένα σενάριο στο μηχάνημα που εκτελεί το Terraform.
  • remote-exec: Καλεί ένα σενάριο σε έναν απομακρυσμένο πόρο μετά τη δημιουργία του.
  Samsung Galaxy S20: Πώς να απενεργοποιήσετε πλήρως το Bixby

Οι προμηθευτές προορίζονται να χρησιμοποιούνται μόνο ως έσχατη λύση στο Terraform.

#15. Τι είναι το εξωτερικό μπλοκ δεδομένων στο Terraform;

Ακριβώς όπως ο παροχέας τοπικού-exec, το εξωτερικό bock δεδομένων μπορεί να χρησιμοποιηθεί για την εκτέλεση σεναρίων σε μηχανήματα που εκτελούν Terraform. Η διαφορά μεταξύ ενός παρόχου και του μπλοκ εξωτερικών δεδομένων είναι ότι τα σενάρια στο μπλοκ εξωτερικών δεδομένων μπορούν να επιστρέψουν δεδομένα σε μορφή JSON, ενώ οι προμηθευτές δεν μπορούν να επιστρέψουν καμία έξοδο. Είναι σημαντικό να σημειωθεί ότι τα εξωτερικά μπλοκ δεδομένων προορίζονται επίσης ως έσχατη λύση και δεν πρέπει να χρησιμοποιούνται εάν υπάρχει καλύτερη εναλλακτική λύση.

#16. Πώς μπορούν δύο άτομα που χρησιμοποιούν το Terraform cloud να δημιουργήσουν δύο διαφορετικά σύνολα υποδομής χρησιμοποιώντας τον ίδιο κατάλογο εργασίας;

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

#17. Τι συμβαίνει όταν πολλοί μηχανικοί αρχίζουν να αναπτύσσουν υποδομή χρησιμοποιώντας το ίδιο αρχείο κατάστασης;

Το Terraform έχει ένα πολύ σημαντικό χαρακτηριστικό που ονομάζεται «κλείδωμα κατάστασης». Αυτή η δυνατότητα διασφαλίζει ότι δεν γίνονται αλλαγές στο αρχείο κατάστασης κατά τη διάρκεια μιας εκτέλεσης και αποτρέπει την καταστροφή του αρχείου κατάστασης. Είναι σημαντικό να σημειωθεί ότι δεν υποστηρίζουν όλα τα Terraform Backend τη δυνατότητα κλειδώματος κατάστασης. Θα πρέπει να επιλέξετε το σωστό backend εάν αυτή η δυνατότητα είναι απαίτηση.

#18. Τι είναι ένας μηδενικός πόρος στο Terraform;

Ένας μηδενικός πόρος terraform είναι μια διαμόρφωση που εκτελείται όπως ένα τυπικό μπλοκ πόρων terraform αλλά δεν δημιουργεί πόρους. Αυτό μπορεί να ακούγεται σαν ένας περίεργος και άχρηστος πόρος, αλλά μπορεί να είναι χρήσιμος σε διάφορες καταστάσεις η αντιμετώπιση των περιορισμών στο Terraform.

#19. Πώς μπορείτε να χρησιμοποιήσετε τον ίδιο πάροχο στο Terraform με διαφορετικές διαμορφώσεις;

Χρησιμοποιώντας το όρισμα ψευδωνύμου στο μπλοκ παρόχου.

#20. Έχετε ένα αρχείο διαμόρφωσης Terraform χωρίς πόρους. Τι συμβαίνει όταν εκτελείτε την εντολή terraform App;

Το Terraform θα καταστρέψει όλους τους πόρους. Η έναρξη μιας κενή εκτέλεσης με την εντολή εφαρμογής terraform είναι ακριβώς η ίδια με την έναρξη της εκτέλεσης καταστροφής του terraform.

#21. Τι συμβαίνει εάν ένας πόρος δημιουργήθηκε με επιτυχία σε εδαφική μορφή αλλά απέτυχε κατά την παροχή;

Αυτό είναι ένα απίθανο σενάριο, αλλά όταν συμβεί αυτό, ο πόρος επισημαίνεται ως μολυσμένος και μπορεί να δημιουργηθεί εκ νέου με επανεκκίνηση της εκτέλεσης terraform.

#22. Ποια τιμή της μεταβλητής TF_LOG παρέχει την ΠΙΟ αναλυτική καταγραφή;

Το TRACE είναι η πιο αναλυτική και η προεπιλεγμένη τιμή της μεταβλητής TF_LOG.

#23. Πώς μπορείτε να εισάγετε υπάρχοντες πόρους στο Terraform Management;

Χρησιμοποιώντας την εντολή εισαγωγής terraform.

#24. Ποια εντολή μπορεί να χρησιμοποιηθεί για την προεπισκόπηση του σχεδίου εκτέλεσης εδάφους;

Η εντολή terraform plan δημιουργεί το σχέδιο εκτέλεσης των αλλαγών που θα κάνει η Terraform στην υποδομή.

#25. Ποια εντολή μπορεί να χρησιμοποιηθεί για τη συμφιλίωση της κατάστασης Terraform με την πραγματική υποδομή του πραγματικού κόσμου;

Η εντολή terraform Apply -refresh-only χρησιμοποιείται για την εναρμόνιση της κατάστασης Terraform με την πραγματική υποδομή του πραγματικού κόσμου. Είναι η νέα εναλλακτική λύση στην εντολή ανανέωσης terraform, η οποία έχει πλέον καταργηθεί.

#26. Ποια εντολή μπορεί να χρησιμοποιηθεί για εναλλαγή μεταξύ χώρων εργασίας κατά τη χρήση του Terraform Cloud;

Η εντολή Terraform workspace select <όνομα χώρου εργασίας> χρησιμοποιείται για την επιλογή διαφορετικού χώρου εργασίας.

#27. Ποια εντολή χρησιμοποιείται για την επικύρωση σύνταξης σε αρχεία διαμόρφωσης terraform;

Η εντολή terraform validate χρησιμοποιείται για να επαληθεύσει εάν μια διαμόρφωση είναι συντακτικά έγκυρη και εσωτερικά συνεπής.

#28. Ποια εντολή χρησιμοποιείται για τη δημιουργία νέων χώρων εργασίας στο Terraform cloud;

Η εντολή terraform workspace new χρησιμοποιείται για τη δημιουργία νέου χώρου εργασίας.

Μερικές άλλες σημαντικές εντολές εδάφους για τεχνικές συνεντεύξεις.

  • terraform init: Αρχικοποιεί απομακρυσμένα backend. κατεβάζει παρόχους και απομακρυσμένες μονάδες που ορίζονται στη διαμόρφωσή σας.
  • terraform init -upgrade: χρησιμοποιείται για την αναβάθμιση των υπαρχόντων ληφθέντων παρόχων.
  • terraform plan: δημιουργεί το σχέδιο εκτέλεσης για τη δημιουργία ή την ενημέρωση της υποδομής.
  • terraform apply: δημιουργεί ή ενημερώνει την υποδομή αφού ζητήσει επιβεβαίωση από τον χρήστη.
  • terraform application –auto-approve: δημιουργεί ή ενημερώνει την υποδομή. Το στάδιο έγκρισης χρήστη παραλείπεται.
  • terraform καταστρέφει: διαγράφει την υποδομή αφού ζητήσει επιβεβαίωση από τον χρήστη.
  • terraform καταστρέφει –αυτόματη έγκριση: διαγράφει την υποδομή. Το στάδιο έγκρισης χρήστη παραλείπεται.
  • terraform fmt: σαρώνει τον τρέχοντα κατάλογο για αρχεία διαμόρφωσης και τα μορφοποιεί σύμφωνα με το κανονικό στυλ και τη μορφή HCP.
  • terraform fmt –recursive: σαρώνει τον τρέχοντα κατάλογο καθώς και τους υποκαταλόγους για αρχεία διαμόρφωσης και τους μορφοποιεί σύμφωνα με το κανονικό στυλ και μορφή HCP.
  • terraform show: παρέχει μια αναγνώσιμη από τον άνθρωπο έξοδο από ένα αρχείο κατάστασης ή σχεδίου.

Ελπίζω οι παραπάνω πληροφορίες να σας βοηθήσουν να βρείτε μια δουλειά Terraform.