Χρήση προσθηκών αποθέματος από τις συλλογές περιεχομένου Ansible στο Ansible Tower

Τα περιβάλλοντα πληροφορικής γίνονται όλο και πιο περίπλοκα. Σε αυτές τις συνθήκες, είναι κρίσιμο για το σύστημα αυτοματισμού πληροφορικής να έχει ενημερωμένες πληροφορίες σχετικά με τους κόμβους που υπάρχουν στο δίκτυο και υπόκεινται σε επεξεργασία. Στην πλατφόρμα Red Hat Ansible Automation, αυτό το ζήτημα επιλύεται μέσω του λεγόμενου αποθέματος (απογραφή) – λίστες διαχειριζόμενων κόμβων.

Χρήση προσθηκών αποθέματος από τις συλλογές περιεχομένου Ansible στο Ansible Tower

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

Και εδώ γιατί:

  1. Πώς ενημερώνετε και διατηρείτε μια πλήρη λίστα με τους κόμβους που παρακολουθούνται όταν τα πράγματα αλλάζουν συνεχώς, όταν ο φόρτος εργασίας - και στη συνέχεια οι κόμβοι στους οποίους εκτελούνται - έρχονται και φεύγουν;
  2. Πώς να ταξινομήσετε τα στοιχεία της υποδομής πληροφορικής προκειμένου να επιλέξετε συγκεκριμένα κόμβους για την εφαρμογή ενός συγκεκριμένου αυτοματισμού;

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

Πρόσθετα αποθέματος δώστε στον χρήστη του Ansible τη δυνατότητα να έχει πρόσβαση σε εξωτερικές πλατφόρμες για δυναμική αναζήτηση κόμβων-στόχων και να χρησιμοποιεί αυτές τις πλατφόρμες ως πηγή αλήθειας κατά τη δημιουργία ενός αποθέματος. Η τυπική λίστα πηγών στο Ansible περιλαμβάνει πλατφόρμες cloud AWS EC2, Google GCP και Microsoft Azure, και υπάρχουν επίσης πολλές άλλες προσθήκες αποθέματος για το Ansible.

Το Ansible Tower έρχεται με μια σειρά από πρόσθετα αποθέματος, τα οποία λειτουργούν αμέσως και, εκτός από τις πλατφόρμες cloud που αναφέρονται παραπάνω, παρέχουν ενοποίηση με το VMware vCenter, το Red Hat OpenStack Platform και το Red Hat Satellite. Για αυτές τις προσθήκες, χρειάζεται απλώς να παρέχετε διαπιστευτήρια για να συνδεθείτε στην πλατφόρμα προορισμού, μετά την οποία μπορούν να χρησιμοποιηθούν ως πηγή δεδομένων αποθέματος στο Ansible Tower.

Εκτός από τα τυπικά πρόσθετα που περιλαμβάνονται στο Ansible Tower, υπάρχουν και άλλα πρόσθετα αποθέματος που υποστηρίζονται από την κοινότητα του Ansible. Με τη μετάβαση σε Συλλογές περιεχομένου Red Hat Ansible αυτά τα πρόσθετα άρχισαν να περιλαμβάνονται στις αντίστοιχες συλλογές.

Σε αυτήν την ανάρτηση, θα πάρουμε ένα παράδειγμα εργασίας με την προσθήκη αποθέματος για το ServiceNow, μια δημοφιλή πλατφόρμα διαχείρισης υπηρεσιών πληροφορικής στην οποία οι πελάτες συχνά αποθηκεύουν πληροφορίες για όλες τις συσκευές τους στο CMDB. Επιπλέον, το CMDB μπορεί να περιέχει περιβάλλον που είναι χρήσιμο για την αυτοματοποίηση, όπως πληροφορίες σχετικά με τους κατόχους διακομιστών, τα επίπεδα υπηρεσιών (παραγωγή/μη παραγωγή), τις εγκατεστημένες ενημερώσεις και τα παράθυρα συντήρησης. Η προσθήκη αποθέματος Ansible μπορεί να λειτουργήσει με το ServiceNow CMDB και αποτελεί μέρος της συλλογής service τώρα στην πύλη galaxy.ansible.com.

Αποθετήριο Git

Για να χρησιμοποιήσετε μια προσθήκη αποθέματος από μια συλλογή στο Ansible Tower, πρέπει να οριστεί ως η πηγή του έργου. Στο Ansible Tower, ένα έργο είναι μια ενοποίηση με κάποιο είδος συστήματος ελέγχου έκδοσης, όπως ένα αποθετήριο git, το οποίο μπορεί να χρησιμοποιηθεί για να συγχρονίσει όχι μόνο βιβλία αυτοματισμού, αλλά και μεταβλητές και λίστες αποθεμάτων.

Το αποθετήριο μας είναι στην πραγματικότητα πολύ απλό:

├── collections
│   └── requirements.yml
└── servicenow.yml

Το αρχείο servicenow.yml περιέχει λεπτομέρειες για το απόθεμα των προσθηκών. Στην περίπτωσή μας, απλώς καθορίζουμε τον πίνακα στο ServiceNow CMDB που θέλουμε να χρησιμοποιήσουμε. Ορίζουμε επίσης τα πεδία που θα προστεθούν ως μεταβλητές κόμβου, καθώς και ορισμένες πληροφορίες για τις ομάδες που θέλουμε να δημιουργήσουμε.

$ cat servicenow.yml
plugin: servicenow.servicenow.now
table: cmdb_ci_linux_server
fields: [ip_address,fqdn,host_name,sys_class_name,name,os]
keyed_groups:
  - key: sn_sys_class_name | lower
	prefix: ''
	separator: ''
  - key: sn_os | lower
	prefix: ''
	separator: ''

Λάβετε υπόψη ότι αυτό δεν προσδιορίζει την παρουσία ServiceNow στην οποία θα συνδεθούμε με οποιονδήποτε τρόπο και δεν καθορίζει διαπιστευτήρια για σύνδεση. Όλα αυτά θα τα διαμορφώσουμε αργότερα στο Ansible Tower.

Συλλογές αρχείων/requirements.yml απαιτείται έτσι ώστε το Ansible Tower να μπορεί να κατεβάσει την απαιτούμενη συλλογή και να αποκτήσει έτσι την απαιτούμενη προσθήκη αποθέματος. Διαφορετικά, θα έπρεπε να εγκαταστήσουμε και να διατηρήσουμε με μη αυτόματο τρόπο αυτήν τη συλλογή σε όλους τους κόμβους Ansible Tower.

$ cat collections/requirements.yml
---
collections:

- name: servicenow.servicenow

Αφού ωθήσουμε αυτήν τη διαμόρφωση στον έλεγχο έκδοσης, μπορούμε να δημιουργήσουμε ένα έργο στο Ansible Tower που αναφέρεται στο αντίστοιχο αποθετήριο. Το παρακάτω παράδειγμα συνδέει το Ansible Tower με το αποθετήριο github μας. Δώστε προσοχή στη διεύθυνση URL SCM: σας επιτρέπει να εγγράψετε έναν λογαριασμό για να συνδεθείτε σε ένα ιδιωτικό αποθετήριο, καθώς και να καθορίσετε ένα συγκεκριμένο κλάδο, μια ετικέτα ή να δεσμεύσετε να κάνετε check out.

Χρήση προσθηκών αποθέματος από τις συλλογές περιεχομένου Ansible στο Ansible Tower

Δημιουργία διαπιστευτηρίων για το ServiceNow

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

= username
    	The ServiceNow user account, it should have rights to read cmdb_ci_server (default), or table specified by SN_TABLE

    	set_via:
      	env:
      	- name: SN_USERNAME

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

Πρέπει επίσης να ορίσουμε τις μεταβλητές SN_INSTANCE και SN_PASSWORD.

Ωστόσο, δεν υπάρχουν διαπιστευτήρια αυτού του τύπου στο Ansible Tower όπου θα μπορούσατε να καθορίσετε αυτά τα δεδομένα για το ServiceNow. Αλλά το Ansible Tower μας επιτρέπει να ορίσουμε προσαρμοσμένους τύπους διαπιστευτηρίων, μπορείτε να διαβάσετε περισσότερα για αυτό στο άρθρο "Ansible Tower Feature Spotlight: Custom Credentials".

Στην περίπτωσή μας, η διαμόρφωση εισόδου για προσαρμοσμένα διαπιστευτήρια για το ServiceNow μοιάζει με αυτό:

fields:
  - id: SN_USERNAME
	type: string
	label: Username
  - id: SN_PASSWORD
	type: string
	label: Password
	secret: true
  - id: SN_INSTANCE
	type: string
	label: Snow Instance
required:
  - SN_USERNAME
  - SN_PASSWORD
  - SN_INSTANCE

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

env:
  SN_INSTANCE: '{{ SN_INSTANCE }}'
  SN_PASSWORD: '{{ SN_PASSWORD }}'
  SN_USERNAME: '{{ SN_USERNAME }}'

Έτσι, έχουμε ορίσει τον τύπο διαπιστευτηρίων που χρειαζόμαστε, τώρα μπορούμε να προσθέσουμε έναν λογαριασμό ServiceNow και να ορίσουμε την παρουσία, το όνομα χρήστη και τον κωδικό πρόσβασης, ως εξής:

Χρήση προσθηκών αποθέματος από τις συλλογές περιεχομένου Ansible στο Ansible Tower

Δημιουργούμε απόθεμα

Έτσι, τώρα είμαστε όλοι έτοιμοι να δημιουργήσουμε ένα απόθεμα στο Ansible Tower. Ας το ονομάσουμε ServiceNow:

Χρήση προσθηκών αποθέματος από τις συλλογές περιεχομένου Ansible στο Ansible Tower

Αφού δημιουργήσουμε το απόθεμα, μπορούμε να επισυνάψουμε μια πηγή δεδομένων σε αυτό. Εδώ καθορίζουμε το έργο που δημιουργήσαμε νωρίτερα και εισάγουμε τη διαδρομή προς το αρχείο αποθέματος YAML στο αποθετήριο ελέγχου προέλευσης, στην περίπτωσή μας είναι το servicenow.yml στη ρίζα του έργου. Επιπλέον, πρέπει να συνδέσετε τον λογαριασμό σας ServiceNow.

Χρήση προσθηκών αποθέματος από τις συλλογές περιεχομένου Ansible στο Ansible Tower

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

Χρήση προσθηκών αποθέματος από τις συλλογές περιεχομένου Ansible στο Ansible Tower

Σημειώστε ότι έχουν δημιουργηθεί και οι ομάδες που χρειαζόμαστε.

Συμπέρασμα

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

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

*Η Red Hat δεν εγγυάται ότι ο κωδικός που περιέχεται εδώ είναι σωστός. Όλα τα υλικά παρέχονται χωρίς έγκριση, εκτός εάν αναφέρεται ρητά διαφορετικά.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο