Διαχείριση προσθηκών Morpheus μέσω REST API – Hybrid Cloud Management and Automation

Διαχείριση προσθηκών Morpheus μέσω REST API – Hybrid Cloud Management and Automation

Februar 28, 2023 0 Von admin

Η πλατφόρμα Morpheus υποστηρίζει τη δυνατότητα επέκτασης της εγγενούς λειτουργικότητας της πλατφόρμας χρησιμοποιώντας πρόσθετα. Οι προσθήκες αναπτύσσονται σε Groovy ή Java και χρησιμοποιούνται για τη δημιουργία προσαρμοσμένων αναφορών, ενσωματώσεων IPAM, προσαρμογών διεπαφής χρήστη και πολλά άλλα. Κατά τη διαδικασία ανάπτυξης, οι προγραμματιστές προσθηκών πρέπει να δοκιμάσουν τη λειτουργικότητα της προσθήκης σε μια εγκατάσταση Morpheus. Η έκδοση 5.4.12 του Morpheus πρόσθεσε μια δυνατότητα που επιτρέπει στους προγραμματιστές προσθηκών να αυτοματοποιούν τη διαχείριση του κύκλου ζωής των προσθηκών μέσω του REST API. Αυτό ξεκλειδώνει τη δυνατότητα αυτοματοποίησης της μεταφόρτωσης νέων εκδόσεων προσθηκών χωρίς μη αυτόματη μεταφόρτωσή τους μέσω της διεπαφής χρήστη ή μη αυτόματης διαμόρφωσης των ρυθμίσεων της προσθήκης. Αυτό επιτρέπει την πλήρως αυτοματοποιημένη δοκιμή αποδοχής των προσθηκών κατά την τοπική ανάπτυξη ή ως μέρος ενός αγωγού CI/CD.

Σε αυτήν την ανάρτηση ιστολογίου θα μάθετε πώς να χρησιμοποιείτε το Morpheus REST API για τη διαχείριση των προσθηκών Morpheus.

Μεταφόρτωση προσθήκης

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

Τα ακόλουθα παραδείγματα χρησιμοποιούν την προσθήκη από αυτό το αποθετήριο: https://github.com/martezr/morpheus-hashicorp-consul-plugin

Παράδειγμα Μεταφόρτωση σεναρίου Python

Το παρακάτω σενάριο είναι για λόγους αναφοράς.

import requests
import urllib3

morpheus_hostname    = "devmorpheus.morpheus.local"
verify_ssl           = False
access_token         = "8fa0b259-4cdf-7228-3b1e-cfc22b54fdc8"
plugin_name          = "morpheus-hashicorp-consul-plugin"
plugin_version       = "1.0.0"
plugin_file_name     = plugin_name + "-" + plugin_version + ".jar"
plugin_file_path     = "build/libs/"
plugin_relative_path = plugin_file_path + plugin_file_name

# If ssl verification is disabled then suppress SSL warnings
if not verify_ssl:
    urllib3.disable_warnings()


url = "https://" + morpheus_hostname + "/api/plugins/upload"

headers = {
    "accept": "application/json",
    "authorization": "Bearer " + access_token
}

files = {"file": (plugin_file_name, open(plugin_relative_path, "rb"), "application/java-archive")}

response = requests.post(url, files=files, headers=headers, verify=verify_ssl)

print(response.text)

Το πρόσθετο πρέπει να είναι ορατό κάτω από το Διαχείριση > Ενσωματώσεις > Προσθήκες τμήμα του Morpheus UI παρόμοιο με το στιγμιότυπο οθόνης που εμφανίζεται παρακάτω.

λίστα προσθηκών morpheus

Αναφορά API: https://apidocs.morpheusdata.com/v5.4.12/reference/uploadplugin

Ενημέρωση ρυθμίσεων προσθήκης

Μόλις εγκατασταθεί ένα πρόσθετο, υπάρχουν συχνά ρυθμίσεις για τη διαμόρφωση της συμπεριφοράς του πρόσθετου. Το τελικό σημείο API για την ενημέρωση μιας υπάρχουσας προσθήκης απαιτεί το αναγνωριστικό της καταχώρισης προσθήκης. Σε αυτήν την περίπτωση, το παράδειγμα δέσμης ενεργειών θα χρησιμοποιήσει την κλήση των προσθηκών λίστας API σε μια διαδικασία δύο βημάτων για να βρει το αναγνωριστικό της επιθυμητής προσθήκης με το όνομα. Η προσθήκη που χρησιμοποιείται σε αυτό το παράδειγμα έχει μια ρύθμιση διαμόρφωσης για τον ορισμό της διεύθυνσης URL για το σημείο πρόσβασης στον διακομιστή HashiCorp Consul.

Όνομα προσθήκης

Η κλήση API αναμένει το εμφανιζόμενο όνομα της προσθήκης που είναι το όνομα που εμφανίζεται στη διεπαφή χρήστη Morpheus και ορίζεται στην ενότητα προετοιμασίας του κώδικα προσθήκης.

Ρυθμίσεις Plugin

Οι ρυθμίσεις της προσθήκης ορίζονται χρησιμοποιώντας την τιμή του χαρακτηριστικού fieldName για τους τύπους επιλογών της προσθήκης.

Παράδειγμα Ενημέρωση σεναρίου Python

Το παρακάτω σενάριο είναι για λόγους αναφοράς.

import requests
import urllib3
import json

morpheus_hostname    = "devmorpheus.morpheus.local"
verify_ssl           = False
access_token         = "8fa0b259-4cdf-7228-3b1e-cfc22b54fdc8"
plugin_name          = "morpheus-hashicorp-consul-plugin"
plugin_version       = "1.0.0"
plugin_file_name     = plugin_name + "-" + plugin_version + ".jar"
plugin_file_path     = "build/libs/"
plugin_relative_path = plugin_file_path + plugin_file_name
plugin_display_name  = "Consul Integration Plugin"
consul_server_url    = "http://consul.morpheus.local:8500"


# If ssl verification is disabled then suppress SSL warnings
if not verify_ssl:
    urllib3.disable_warnings()

# Find the ID of the existing plugin by name
listUrl = "https://" + morpheus_hostname + "/api/plugins?max=25&offset=0&sort=name&direction=asc&name=" + plugin_display_name

headers = {
    "accept": "application/json",
    "authorization": "Bearer " + access_token
}

response = requests.get(listUrl, headers=headers, verify=verify_ssl)
jsonPayload = json.loads(response.text)
pluginId = jsonPayload["plugins"][0]["id"]

# Update the existing plugin settings
updateUrl = "https://" + morpheus_hostname + "/api/plugins/" + str(pluginId)

headers = {
    "accept": "application/json",
    "authorization": "Bearer " + access_token
}

configPayload = {}
configPayload["plugin"] = {}
configPayload["plugin"]["config"] = {}
configPayload["plugin"]["config"]["consulServerUrl"] = consul_server_url

response = requests.put(updateUrl, headers=headers, data=json.dumps(configPayload), verify=verify_ssl)

print(response.text)

ο URL SERVER Η ρύθμιση προσθήκης ορίζεται χρησιμοποιώντας την κλήση REST API.

Αναφορά API: https://apidocs.morpheusdata.com/v5.4.12/reference/updateplugin

Διαγραφή ενός πρόσθετου

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

Παράδειγμα Διαγραφή σεναρίου Python

Το παρακάτω σενάριο είναι για λόγους αναφοράς.

import requests
import urllib3

morpheus_hostname    = "devmorpheus.morpheus.local"
verify_ssl           = False
access_token         = "8fa0b259-4cdf-7228-3b1e-cfc22b54fdc8"
plugin_name          = "morpheus-hashicorp-consul-plugin"
plugin_version       = "1.0.0"
plugin_file_name     = plugin_name + "-" + plugin_version + ".jar"
plugin_file_path     = "build/libs/"
plugin_relative_path = plugin_file_path + plugin_file_name
plugin_display_name  = "Consul Integration Plugin"
consul_server_url    = "http://consul.morpheus.local:8500"

# If ssl verification is disabled then suppress SSL warnings
if not verify_ssl:
    urllib3.disable_warnings()


# Find the ID of the existing plugin by name
listUrl = "https://" + morpheus_hostname + "/api/plugins?max=25&offset=0&sort=name&direction=asc&name=" + plugin_display_name

headers = {
    "accept": "application/json",
    "authorization": "Bearer " + access_token
}

response = requests.get(listUrl, headers=headers, verify=verify_ssl)
jsonPayload = json.loads(response.text)
pluginId = jsonPayload["plugins"][0]["id"]

# Delete the existing plugin
deleteUrl = "https://" + morpheus_hostname + "/api/plugins/" + str(pluginId)

response = requests.delete(deleteUrl, headers=headers, verify=verify_ssl)

print(response.text)

Αναφορά API: https://apidocs.morpheusdata.com/v5.4.12/reference/removeplugin

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

Γίνετε μέλος της κοινότητας Morpheus

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