Terraform Providers

Terraform Providers



Ένα από τα δημοφιλή και ανοιχτού κώδικα Infrastructure as a Code εργαλεία είναι το Terraform. Επιτρέπει στους προγραμματιστές να ορίσουν και να διαχειριστούν την υποδομή σας δηλωτικά. Τους δίνει τη δυνατότητα να δημιουργούν, να διαχειρίζονται και να τροποποιούν τους πόρους της υποδομής χρησιμοποιώντας μια απλή και συνεπή σύνταξη, ανεξάρτητα από την υποκείμενη πλατφόρμα cloud ή τον πάροχο υπηρεσιών.

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

Εισαγωγή στους παρόχους Terraform

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







Τύποι παρόχων στο Terraform

Στο Μητρώο Terraform , μπορούμε να δούμε τρεις τύπους παρόχων:



Επίσημοι Πάροχοι

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



Οι πάροχοι AWS, Microsoft Azure και Google Cloud Platform μπορούν να είναι παραδείγματα επίσημων παρόχων στο Terraform.





Συνεργάτες πάροχοι

Τρίτοι οργανισμοί διατηρούν αυτούς τους παρόχους και έχουν συνεργαστεί με τη HashiCorp για να παρέχουν επίσημη υποστήριξη για τις υπηρεσίες τους.

Οι πάροχοι GitLab, MongoDB και CloudFlare είναι ορισμένοι πάροχοι συνεργατών που είναι διαθέσιμοι για τους χρήστες.



Πάροχοι Κοινότητας

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

Μερικά παραδείγματα παρόχων κοινότητας φαίνονται στην παρακάτω εικόνα:

Πώς να χρησιμοποιήσετε έναν παροχέα Terraform

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

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

Ας δημιουργήσουμε ένα απλό αρχείο διαμόρφωσης Terraform που δημιουργεί μια παρουσία EC2 στην πλατφόρμα cloud AWS.

προμηθευτής 'ααα' {

έκδοση = '~> 3.0'

περιοχή = 'us-east-2'

}

πόρος 'aws_instance' 'myEC2' {

που = 'ami-0a561b65214a47cac'

instance_type = 't3. μικρό'

ετικέτες = {

Όνομα = 'νέο παράδειγμα'

}

}

Αρχικά, ορίζουμε το μπλοκ παρόχου, προσδιορίζοντας τον πάροχο AWS και την περιοχή όπου δημιουργούνται οι πόροι. Στη συνέχεια, ορίζουμε το μπλοκ πόρων μας ως αποτελούμενο από aws_instance ως τύπο πόρου, 'myEC2' ως όνομα πόρου και 'ami', 'instance_type' και 'tags' ως χαρακτηριστικά. Ο τύπος του πόρου μπορεί να χωριστεί σε δύο μέρη: Πάροχος και Πόρων. Σε αυτήν την περίπτωση, το 'aws' είναι ο πάροχος και το 'instance' είναι ο πόρος. Επίσης, εάν κάποιος χρειάζεται να παρέχει δέκα περιπτώσεις EC2, το χαρακτηριστικό «count» μπορεί να χρησιμοποιηθεί με δέκα ως τιμή.

Τώρα, μπορούμε να εκτελέσουμε τη ροή Terraform που περιλαμβάνει την εκτέλεση των εντολών terraform init, terraform plan και terraform application για τη δημιουργία του πόρου που ορίσαμε.

Χρησιμοποιώντας τον πάροχο Terraform AWS, μπορούμε να αποκτήσουμε πρόσβαση στην πλατφόρμα cloud AWS και να αλληλεπιδράσουμε αποτελεσματικά με τις υπηρεσίες του χωρίς να χρησιμοποιήσουμε την Κονσόλα διαχείρισης AWS.

Χρήση πολλών παρόχων στο Terraform

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

Για να καταλάβετε, ας έχουμε ένα παράδειγμα όπου αναπτύσσουμε μια μηχανή υπολογιστών στην πλατφόρμα Google Cloud, ένα αποθετήριο στο GitHub και έναν κάδο S3 στην πλατφόρμα cloud AWS.

προμηθευτής 'google' {

έργο = 'πρώτο έργο'

περιοχή = 'us-west1'

}

προμηθευτής 'github' {

μάρκα = 'YOUR_GITHUB_TOKEN'

}

προμηθευτής 'ααα' {

έκδοση = '~> 3.0'

περιοχή = 'us-west-2'

}

πόρος 'google_compute_instance' 'gcpInstance' {

όνομα = 'νέο παράδειγμα'

μηχανή_τύπος = 'n1-standard-1'

ζώνη = 'us-west1-a'

boot_disk {

startize_params {

εικόνα = 'debian-cloud/debian-10'

}

}

}

πόρος 'github_repository' 'gitRepo' {

όνομα = 'new-repo'

περιγραφή = 'Αυτό είναι το νέο μου αποθετήριο'

}

πόρος 'aws_s3_bucket' 'awsBucket' {

κουβάς = 'νέος κάδος'

acl = 'ιδιωτικός'

}

Ως πρώτο βήμα, ορίζουμε τα μπλοκ παρόχων μας για να καθορίσουμε τους παρόχους (Google, GitHub και AWS) και τις απαραίτητες πληροφορίες όπως περιοχή, όνομα έργου κ.λπ. Στη συνέχεια, δηλώνουμε τους πόρους μας χρησιμοποιώντας τρία μπλοκ πόρων: 'gcpInstance', ' gitRepo' και 'awsBucket'.

Αρχικά, δημιουργούμε μια μηχανή υπολογιστών στην πλατφόρμα Google Cloud με το όνομα 'new-instance', τον τύπο του μηχανήματος 'n1-standard-1' και τη ζώνη διαθεσιμότητας 'us-west1-a'. Χρησιμοποιεί το Debian ως κεντρικό λειτουργικό σύστημα. Στη συνέχεια, δημιουργούμε ένα αποθετήριο GitHub με το όνομα 'new-repo' και μια κατάλληλη περιγραφή. Τέλος, κατασκευάζεται ένας κάδος S3 με το 'new-bucket' ως όνομα και το 'private' ως τιμή ACL (Access Control List).

Με αυτούς τους τρεις παρόχους Terraform, μπορούμε εύκολα να αλληλεπιδράσουμε με τις πλατφόρμες cloud και τις υπηρεσίες τους.

Βέλτιστες πρακτικές για την εργασία με παρόχους Terraform

Έκδοση παρόχου

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

Έλεγχος ταυτότητας παρόχου

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

Τεκμηρίωση παρόχου

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

Ενημερώσεις παρόχου

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

Κοινοτική υποστήριξη

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

Διαχείριση σφαλμάτων και αντιμετώπιση προβλημάτων

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

συμπέρασμα

Κάναμε μια σύντομη εισαγωγή στους παρόχους Terraform. Συζητήσαμε πώς να τα χρησιμοποιήσουμε και να τα διαμορφώσουμε ώστε να αλληλεπιδρούν με διάφορες πλατφόρμες και υπηρεσίες cloud και πώς να χρησιμοποιήσουμε πολλούς παρόχους για τη διαχείριση των πόρων σε διαφορετικές πλατφόρμες και υπηρεσίες cloud μέσω ευνόητων παραδειγμάτων.