Dziś inaugurujemy serię wpisów o ulubionym narzędziu DevOpsów pracujących z serwerami aplikacji z rodziny EuroAP. Mowa oczywiście o CLI – Command Line Interface. Mamy nadzieję, że cała seria utworzy kompendium na jego temat dla serwera aplikacji EuroAP w wersji 7.1.
Zanim jednak o nim, to malutki offtop, który doprecyzuje, co będzie przedmiotem naszych badań. EuroAP, bo o nim mowa, jest serwerem aplikacji zbudowanym na bazie kodu źródłowego Red Hat® JBoss® Enterprise Application Platform, który to z kolei jest rozwijany w oparciu o Wildfly. Obrazowo można przedstawić tę rodzinę jako parę bliźniąt: serwer aplikacji EuroAP i Red Hat® JBoss® EAP oraz ich starszego brata Widlfy. W konsekwencji wszystkie przedstawione komendy będą działać tak samo dla EuroAP, jak i dla Red Hat® JBoss® EAP, a znakomita ich większość także dla Wildfly.
Wróćmy do gwiazdy serii – CLI (Command Line Interface). Jest to potężne narzędzie, które umożliwia konfigurację dowolnego elementu EuroAP w sposób programowalny. Może działać w trybie interaktywnym lub też wsadowo przetwarzać skrypty. Dzięki niemu możemy zautomatyzować pracę z naszymi serwerami aplikacji. Super! W takim razie jak to uruchomić? Dokładnie tak samo, jak w każdym innym serwerze aplikacji z rodziny. Wystarczy bowiem odpalić odpowiedni skrypt „jboss-cli”. W naszym ulubionym systemie operacyjnym – EuroLinux – będzie to jboss-cli.sh.
/demo/EuroAP-7.1/bin > ./jboss-cli.sh You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands. [disconnected /] connect 127.0.0.1:9990 [[email protected]:9990 /]
CLI – pobawmy się wdrażaniem aplikacji
Skoro niesamowite narzędzie tkwi w naszych rękach, to co dalej? Wykonajmy operację, do której został stworzony serwer aplikacji i co na pewno prędzej czy później będziemy musieli zrobić – wdróżmy aplikację:
[st[email protected]:9990 /] deploy /demo/some_apps/helloworld.war
Skoro nie dostaliśmy informacji o błędzie, to znaczy, że wdrożenie się powiodło. Możemy to zweryfikować, przeglądając logi serwera (jak widać na potrzeby tego demo EuroAP działa w trybie standalone).
WFLYDR0001: Content added at location /demo/EuroAP-7.1/standalone/data/content/9a/db88578e58b4beebed2b1c410ed8d51bd41dba/content WFLYSRV0027: Starting deployment of "helloworld.war" (runtime-name: "helloworld.war") WFLYUT0021: Registered web context: '/helloworld' for server 'default-server' WFLYSRV0010: Deployed "helloworld.war" (runtime-name : "helloworld.war")
Albo przeglądając wszystkie wdrożone na serwerze aplikacje:
[[email protected]:9990 /] deployment-info NAME RUNTIME-NAME PERSISTENT ENABLED STATUS helloworld.war helloworld.war true true OK
Skoro to takie proste, to się tym nieco pobawmy ;) Wdróżmy aplikację, nadając jej własną, wystrzałową nazwę.
deploy /demo/some_apps/helloworld.war --name=moja_wystrzalowa_apka
Albo zmieńmy runtime-name wdrożonej już aplikacji:
[[email protected]:9990 /] deploy /demo/some_apps/helloworld.war --runtime-name=awesome_app 'helloworld.war' already exists in the deployment repository (use --force to replace the existing content in the repository).
Oj, coś poszło nie tak – szczęśliwie CLI od razu podpowiada, co się dzieje i jak to naprawić. Zatem posłuchajmy go:
deploy /demo/some_apps/helloworld.war --runtime-name=awesome_app --force
Zobaczmy efekt naszej zabawy:
[[email protected]:9990 /] deployment-info NAME RUNTIME-NAME PERSISTENT ENABLED STATUS helloworld.war awesome_app true true OK moja_wystrzalowa_apka moja_wystrzalowa_apka true true OK
To mamy dwie aplikacje, które robią to samo, więc może wyrzućmy jedną. Albo wszystkie od razu, bo kto bogatemu w CLI zabroni ;)
undeploy *
Komenda usuwania wszystkich aplikacji z serwera aplikacji chyba nie może być bardziej intuicyjna. Tylko jakoś tak pusto się zrobiło. Nawet nagłówków nie pokazuje...
[[email protected]:9990 /] deployment-info [[email protected]:9990 /]
Wrzućmy aplikację jeszcze raz. Możemy reużyć wpisane wcześniej polecenia – poruszając się między nimi strzałkami góra/dół albo używając skrótu Ctrl+R i wpisując część polecenia. Jak już je mamy to, zamiast usuwać tak zupełnie, wyłączmy „wystrzałową apkę” – zatrzymamy jej dane, zawartość we wnętrzu EuroAP. Nie będzie ona dostępna dla użytkowników.
[[email protected]:9990 /] undeploy moja_wystrzalowa_apka --keep-content [[email protected]:9990 /] deployment-info NAME RUNTIME-NAME PERSISTENT ENABLED STATUS helloworld.war awesome_app true true OK moja_wystrzalowa_apka moja_wystrzalowa_apka true false STOPPED
I włączmy:
[[email protected]:9990 /] deploy --name=moja_wystrzalowa_apka [[email protected]:9990 /] deployment-info NAME RUNTIME-NAME PERSISTENT ENABLED STATUS helloworld.war awesome_app true true OK moja_wystrzalowa_apka moja_wystrzalowa_apka true true OK
Na dziś to tyle. Mam nadzieję, że przekonaliście się, jakim przyjemnym narzędziem jest CLI i będziecie wyczekiwać kolejnych artykułów;)
Command Line Interface w Application Platform – kompendium cz. I. - ten materiał
Command Line Interface w Application Platform – kompendium cz. II.
Command Line Interface w Application Platform – kompendium cz. III.