TWORZENIE PROSTEGO PLUGINU DO VCLOUD DIRECTOR 10

Zdarza się, że w ramach naszego środowiska potrzebujemy spersonalizowanych rozwiązań. Często potrzebujemy funkcjonalności prostej, ale niedostępnej w upośledzonych produktach. Możemy tworzyć wirtualne datacenter, zarządzać siecią, maszynami wirtualnymi, storage, ale nie możemy dodać własnej strony np. z dokumentacją czy tutorialami i to jednym kliknięciem. Tak też jest w przypadku vCloud Director 10. Aby nasza strona pojawiła się w burger menu, czyli tam gdzie najczęściej klika użytkownik, musimy utworzyć plugin. Oczywiście tego typu plugin może robić znacznie więcej niż wyświetlać filmik z Youtuba, ale jak widzimy banalna sprawa, a tyle komplikacji.

Potrzebujemy kilka elementów, aby taki prosty plugin przygotować. Wymagane jest środowisko linux lub inne z zainstalowanymi pakietami npm, nodejs, git i yarp (poniżej przykład w systemie Debian 10). Wybrałem ten system ze względu na szybką instalację. Samo przygotowanie pluginu wykonałem w 6 krokach. No to zaczynajmy.

1. W tym kroku instalujemy  niezbędne pakiety. Oprócz git, który pobierze nam szablon, potrzebujemy samego npm do kompilacji oraz yarp i nodejs. Te dwa ostanie pakiety dostarczają nam dodatkowe pakiety wymagane do kompilacji. Poniżej instalacja pakietów w systemie Debian 10.

apt-get install npm nodejs yarp git 

2. Potrzebujemy szablonu, który jest udostępniony na github.com. Szablon jest niewielki, więc z pobraniem nie powinno być problemu.  

git clone -b plugin-seed-9.1 --single-branch https://github.com/vmware-samples/vcd-ext-samples.git

3. Po pobraniu szablonu zostanie utworzony katalog vcd-ext-samples. Zmiany wizualne dodatku wprowadzamy w plikach:

•	simple.component.html
•	simple.component.scss

znajdujące się w katalogu vcd-ext-samples/src/main/simple. Oprócz tych plików możemy dodać inne i je zagnieździć. Oczywiście nazwy plików możemy zmienić, ale musimy pamiętać o zmianach nazw w innych plikach. Wspierany jest html oraz zmienne, które np. będą wyświetlać aktualnie zalogowanego użytkownika vCD. Poniżej przykładowy plik:

<div>
  <p><i>Logged into {{tenant | async}} as {{username | async}}</i></p>
  <h1>{{"tos.title" | translate}}</h1>
  <p>{{"tos.1" | translate}}</p>
  <p>{{"tos.2" | translate}}</p>
  <img src="{{assetUrl}}/monkey.jpg" alt="Thoughtful Primate">
   <iframe src="https://18.197.198.214blog"></iframe>
</div>

W katalogu vcd-ext-samples/src/main/public znajdują się pozostałe elementy typu zdjęcia naszej małpki oraz tekst, jaki ma być na stronie. Jak widzimy możliwości mamy sporo.

Mamy tam też plik manifest.json. Plik ten pozwala autorowi wtyczki zdefiniować metadane dotyczące wtyczki, które będą identyfikować wtyczkę w panelu administratora vCloud Director. Poniżej przykład pliku wraz z opisem.

{
    "urn": "vmware:vcloud:plugin:seed",
    "name": "Inleo Blog",
    "containerVersion": "9.1.0",
    "version": "1.0.0",
    "scope": ["service-provider", "tenant"],
    "permissions": [],
    "description": "Przykładowy plugin",
    "vendor": "Inleo",
    "license": "Copyright (C) VMware 2017-2018.  All rights reserved.",
    "link": "http://18.197.198.214/blog",
    "module": "SimplePluginModule",
    "route": "plugin"
}
PoleOpis
urnUnikatowy identyfikator URN
nameNazwa pluginu
descriptionOpis pluginu
vendorProducent pluginu
licenseInformacje na temat licencji
linkURL do pomocy technicznej
containerVersionWersja vCD potrzebna do instalacji dodatku
scopeWskaźnik vCD, które portale mają wykorzystać tę wtyczkę (wartości: [„tenant” | „service-provider”])
moduleNazwa głównego eksportowanego modułu, który ma być dynamicznie ładowany przez vCD

4. Aby skompilować dodatek należy przejść do katalogu głównego np. vcd-ext-samples oraz wykonać polecenia:

npm ci – wykonuje instalacje zależności dla projektu
npm run build – kompiluje dodatek

Po poprawnym wykonaniu kompilacji powinien zostać utworzony katalog dist z plikami/katalogami:

  • assets
  • bundle.js
  • i18n.json
  • manifest.json
  • plugin.zip

5. Po skompilowaniu instalacja wydaje się być już tylko formalnością. Logujemy się jako administrator to portalu provider’a. Przechodzimy do Customize Portal 5.

Klikamy Upload

Po otwarciu kreatora klikamy Select Plugin File oraz wskazujemy wygenerowany plik plugin.zip z katalogu dist

Zostanie wyświetlone podsumowanie dodatku. Przechodzimy dalej przez naciśniecie NEXT

Wybieramy w jakich tenantach ma zostać opublikowany plugin

Przechodzimy dalej i kończymy działanie kreatora przyciskiem FINISH.

6. Testowanie działania

Po poprawnej instalacji dodatek powinien pojawić się w menu Customize Portal oraz w burger menu

Przechodząc do pluginu w burger menu sprawdzamy czy wszystko wyświetla nam się poprawnie.

Efektem końcowym jest ładnie zagnieżdżona strona w vCD

Jak widzimy mamy spore możliwości tworzenia takich dodatków oraz publikowania ich dla konkretnych tenantów. Dzięki temu możemy decydować kto ma dostęp do jakiejś zawartości, a do jakiej nie. Samo wykonanie takiego pluginu w podstawowej wersji nie jest skomplikowane, ale czy nie można było zaimplementować tego tak, aby zrobić to wszystko dwoma kliknięciami myszki?

Artykuł został opublikowany na łamach bloga evoila Poland.”

Posts created 16

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top