Udostępnij za pośrednictwem


Szybki start: wdrażanie protokołu JBoss EAP w usłudze Azure Red Hat OpenShift

W tym artykule pokazano, jak szybko skonfigurować platformę JBoss Enterprise Application Platform (EAP) w usłudze Azure Red Hat OpenShift przy użyciu witryny Azure Portal.

W tym artykule użyto oferty witryny Azure Marketplace dla aplikacji JBoss EAP, aby przyspieszyć podróż do usługi Azure Red Hat OpenShift. Oferta automatycznie aprowizuje zasoby, w tym klaster usługi Azure Red Hat OpenShift z wbudowanym rejestrem Kontenerów OpenShift (OCR), operatorem JBoss EAP i opcjonalnie obrazem kontenera, w tym aplikacją JBoss EAP i aplikacją przy użyciu protokołu Source-to-Image (S2I). Aby wyświetlić ofertę, odwiedź witrynę Azure Portal. Jeśli wolisz ręczne wskazówki krok po kroku dotyczące uruchamiania protokołu JBoss EAP w usłudze Azure Red Hat OpenShift, które nie korzystają z automatyzacji włączonej przez ofertę, zobacz Wdrażanie aplikacji Java z rozwiązaniem Red Hat JBoss Enterprise Application Platform (JBoss EAP) w klastrze usługi Azure Red Hat OpenShift 4.

Jeśli chcesz przekazać opinię lub ściśle pracować nad scenariuszami migracji z zespołem inżynierów opracowującym rozwiązanie JBoss EAP na platformie Azure, wypełnij tę krótką ankietę dotyczącą migracji JBoss EAP i dołącz swoje informacje kontaktowe. Zespół menedżerów programów, architektów i inżynierów natychmiast skontaktuje się z Tobą w celu zainicjowania ścisłej współpracy.

Wymagania wstępne

Uwaga

Usługa Azure Red Hat OpenShift wymaga co najmniej 40 rdzeni do utworzenia i uruchomienia klastra OpenShift. Domyślny limit przydziału zasobów platformy Azure dla nowej subskrypcji platformy Azure nie spełnia tego wymagania. Aby zażądać zwiększenia limitu zasobów, zobacz Zwiększanie limitów przydziału procesorów wirtualnych rodziny maszyn wirtualnych. Pamiętaj, że subskrypcja bezpłatnej wersji próbnej nie kwalifikuje się do zwiększenia limitu przydziału. Przed zażądaniem zwiększenia limitu przydziału przeprowadź uaktualnienie do subskrypcji z płatnością zgodnie z rzeczywistym użyciem. Aby uzyskać więcej informacji, zobacz Uaktualnianie bezpłatnego konta platformy Azure lub konta startowego usługi Azure for Students.

Uzyskiwanie wpisu tajnego ściągania oprogramowania Red Hat

Oferta witryny Azure Marketplace używana w tym artykule wymaga wpisu tajnego ściągania oprogramowania Red Hat. W tej sekcji pokazano, jak uzyskać wpis tajny ściągania oprogramowania Red Hat dla usługi Azure Red Hat OpenShift. Aby dowiedzieć się, czym jest wpis tajny ściągnięcia oprogramowania Red Hat i dlaczego jest potrzebny, zobacz sekcję Pobieranie wpisu tajnego ściągnięcia red hat w artykule Samouczek: tworzenie klastra usługi Azure Red Hat OpenShift 4.

Aby uzyskać wpis tajny ściągania, wykonaj następujące czynności:

  1. Otwórz konsolę Chmury hybrydowej Red Hat OpenShift, a następnie zaloguj się do portalu menedżera klastra OpenShift przy użyciu konta Red Hat. Może być konieczne zaakceptowanie większej liczby warunków i zaktualizowanie konta, jak pokazano na poniższym zrzucie ekranu. Użyj tego samego hasła co podczas tworzenia konta.

    Zrzut ekranu witryny Red Hat Update Your Account (Aktualizowanie konta w systemie Red Hat).

  2. Po zalogowaniu wybierz pozycję OpenShift, a następnie pozycję Pobrane.

  3. Wybierz listę rozwijaną Wszystkie kategorie, a następnie wybierz pozycję Tokeny.

  4. W obszarze Ściąganie wpisu tajnego wybierz pozycję Kopiuj lub Pobierz , aby uzyskać wartość, jak pokazano na poniższym zrzucie ekranu.

    Zrzut ekranu przedstawiający portal konsoli Red Hat przedstawiający wpis tajny ściągania.

    Poniższa zawartość to przykład skopiowany z portalu konsoli Red Hat z kodami uwierzytelniania zastąpionymi ciągiem xxxx...xxx.

    {"auths":{"cloud.openshift.com":{"auth":"xxxx...xxx","email":"contoso-user@contoso.com"},"quay.io":{"auth":"xxx...xxx","email":"contoso-user@test.com"},"registry.connect.redhat.com":{"auth":"xxxx...xxx","email":"contoso-user@contoso.com"},"registry.redhat.io":{"auth":"xxxx...xxx","email":"contoso-user@contoso.com"}}}
    
  5. Zapisz wpis tajny w pliku, aby można było go użyć później.

Tworzenie konta usługi Red Hat Container Registry

W dalszej części tego artykułu pokazano, jak ręcznie wdrożyć aplikację w usłudze OpenShift przy użyciu funkcji Source-to-Image (S2I). Konto usługi Red Hat Container Registry jest niezbędne do ściągnięcia obrazu kontenera dla protokołu JBoss EAP, na którym można uruchomić aplikację. Jeśli masz gotowe do użycia konto usługi Red Hat Container Registry, pomiń tę sekcję i przejdź do następnej sekcji, w której wdrażasz ofertę.

Wykonaj poniższe kroki, aby utworzyć konto usługi Red Hat Container Registry i uzyskać jego nazwę użytkownika i hasło. Aby uzyskać więcej informacji, zobacz Tworzenie kont usługi rejestru w dokumentacji oprogramowania Red Hat.

  1. Użyj konta usługi Red Hat, aby zalogować się do aplikacji do zarządzania kontami usługi rejestru.
  2. Na stronie Konta usługi rejestru wybierz pozycję Nowe konto usługi.
  3. Podaj nazwę konta usługi. Nazwa jest poprzedzana stałym, losowym ciągiem.
    • Wprowadź opis.
    • Wybierz pozycję Utwórz.
  4. Wróć do kont usług.
  5. Wybierz utworzone konto usługi.
    • Zanotuj nazwę użytkownika, w tym ciąg wstępny (czyli XXXXXXX|username). Użyj tej nazwy użytkownika podczas logowania się do registry.redhat.iousługi .
    • Zanotuj hasło. Użyj tego hasła podczas logowania się do usługi registry.redhat.io.

Utworzono konto usługi Red Hat Container Registry.

Tworzenie jednostki usługi Microsoft Entra w witrynie Azure Portal

Oferta witryny Azure Marketplace używana w tym artykule wymaga jednostki usługi Microsoft Entra w celu wdrożenia klastra Usługi Azure Red Hat OpenShift. Oferta przypisuje jednostkę usługi z odpowiednimi uprawnieniami w czasie wdrażania, bez konieczności przypisywania roli. Jeśli masz jednostkę usługi gotową do użycia, pomiń tę sekcję i przejdź do następnej sekcji, w której utworzysz konto usługi Red Hat Container Registry.

Wykonaj poniższe kroki, aby wdrożyć jednostkę usługi i uzyskać identyfikator aplikacji (klienta) i wpis tajny z witryny Azure Portal. Aby uzyskać więcej informacji, zobacz Create and use a service principal to deploy an Azure Red Hat OpenShift cluster (Tworzenie i używanie jednostki usługi do wdrażania klastra Usługi Azure Red Hat OpenShift).

Uwaga

Aby zarejestrować aplikację w dzierżawie firmy Microsoft Entra, musisz mieć wystarczające uprawnienia. Jeśli wystąpi problem, sprawdź wymagane uprawnienia, aby upewnić się, że twoje konto może utworzyć tożsamość. Aby uzyskać więcej informacji, zobacz Rejestrowanie aplikacji Microsoft Entra i tworzenie jednostki usługi.

  1. Zaloguj się do konta platformy Azure za pośrednictwem witryny Azure Portal.

  2. Wybierz Microsoft Entra ID.

  3. Wybierz pozycję Rejestracje aplikacji.

  4. Wybierz opcjęNowa rejestracja.

  5. Nazwij aplikację — na przykład jboss-eap-on-aro-app. Wybierz obsługiwany typ konta, który określa, kto może korzystać z aplikacji. Po ustawieniu wartości wybierz pozycję Zarejestruj, jak pokazano na poniższym zrzucie ekranu. Aprowizowania aplikacji zajmuje kilka sekund. Przed kontynuowaniem poczekaj na ukończenie wdrożenia.

    Zrzut ekranu witryny Azure Portal przedstawiający stronę Rejestrowanie aplikacji.

  6. Zapisz identyfikator aplikacji (klienta) ze strony przeglądu, jak pokazano na poniższym zrzucie ekranu. Umieść wskaźnik na wartości, która zostanie zredagowana na zrzucie ekranu, i wybierz wyświetloną ikonę kopiowania. Etykietka narzędzia mówi Kopiuj do schowka. Zachowaj ostrożność, aby skopiować poprawną wartość, ponieważ inne wartości w tej sekcji mają również ikony kopiowania. Zapisz identyfikator aplikacji w pliku, aby można było go użyć później.

    Zrzut ekranu witryny Azure Portal przedstawiający stronę Przegląd z wyróżnionym identyfikatorem aplikacji (klienta).

  7. Utwórz nowy klucz tajny klienta, wykonując następujące kroki:

    1. Wybierz pozycję Certyfikaty i wpisy tajne.
    2. Wybierz pozycję Wpisy tajne klienta, a następnie Pozycję Nowy klucz tajny klienta.
    3. Podaj opis wpisu tajnego i czas trwania. Gdy wszystko będzie gotowe, wybierz pozycję Dodaj.
    4. Po dodaniu wpisu tajnego klienta zostanie wyświetlona wartość klucza tajnego klienta. Skopiuj tę wartość, ponieważ nie można jej pobrać później. Pamiętaj, aby skopiować wartość, a nie identyfikator wpisu tajnego.

Utworzono aplikację Firmy Microsoft Entra, jednostkę usługi i klucz tajny klienta.

Weryfikowanie jednostki usługi

Użyj następującego polecenia, aby zweryfikować jednostkę usługi:

az login \
    --service-principal \
    --username <service-principal-client-id> \
    --password <service-principal-client-secret> \
    --tenant <tenant-id>
az account show

Zastąp <service-principal-client-id>wartości , <service-principal-client-secret>i <tenant-id> wartościami uzyskanymi w poprzednich krokach. Jeśli widzisz informacje o koncie, jednostka usługi jest prawidłowa.

Wdrażanie protokołu JBoss EAP w usłudze Azure Red Hat OpenShift

Kroki opisane w tej sekcji umożliwiają wdrożenie protokołu JBoss EAP w usłudze Azure Red Hat OpenShift.

W poniższych krokach pokazano, jak znaleźć ofertę i wypełnić okienko Podstawy .

  1. Na pasku wyszukiwania w górnej części witryny Azure Portal wprowadź ciąg JBoss EAP. W wynikach wyszukiwania w sekcji Marketplace wybierz pozycję JBoss EAP w usłudze Azure Red Hat OpenShift, jak pokazano na poniższym zrzucie ekranu.

    Zrzut ekranu witryny Azure Portal przedstawiający aplikację JBoss EAP w usłudze Azure Red Hat OpenShift w wynikach wyszukiwania.

    Możesz również przejść bezpośrednio do oferty JBoss EAP w witrynie Azure Red Hat OpenShift w witrynie Azure Portal.

  2. Na stronie oferty wybierz pozycję Utwórz.

  3. W okienku Podstawowe upewnij się, że wartość wyświetlana w polu Subskrypcja jest taka sama, która ma role wymienione w sekcji wymagań wstępnych.

  4. Należy wdrożyć ofertę w pustej grupie zasobów. W polu Grupa zasobów wybierz pozycję Utwórz nową i wypełnij wartość dla grupy zasobów. Ponieważ grupy zasobów muszą być unikatowe w ramach subskrypcji, wybierz unikatową nazwę. Łatwym sposobem na używanie unikatowych nazw jest użycie kombinacji inicjałów, dzisiejszej daty i identyfikatora. Na przykład eaparo033123rg.

  5. W obszarze Szczegóły wystąpienia wybierz region wdrożenia. Aby uzyskać listę regionów świadczenia usługi Azure, w których działa usługa OpenShift, zobacz Regiony dla platformy Red Hat OpenShift 4.x na platformie Azure.

  6. Wybierz pozycję Dalej: ARO.

Poniższe kroki pokazują, jak wypełnić okienko ARO pokazane na poniższym zrzucie ekranu:

Zrzut ekranu witryny Azure Portal przedstawiający aplikację JBoss EAP w okienku Azure Red Hat OpenShift ARO.

  1. W obszarze Utwórz nowy klaster wybierz pozycję Tak.

  2. W obszarze Podaj informacje, aby utworzyć nowy klaster, w polu Klucz tajny ściągnięcia oprogramowania Red Hat wypełnij wpis tajny ściągania red hat uzyskany w sekcji Pobieranie wpisu tajnego ściągnięcia oprogramowania Red Hat. Użyj tej samej wartości dla opcji Potwierdź wpis tajny.

  3. Wypełnij pole Identyfikator klienta jednostki usługi za pomocą identyfikatora jednostki usługi (klienta) uzyskanego w sekcji Tworzenie jednostki usługi Microsoft Entra w witrynie Azure Portal.

  4. W polu Klucz tajny klienta jednostki usługi wprowadź wpis tajny aplikacji jednostki usługi uzyskany w sekcji Tworzenie jednostki usługi Microsoft Entra w witrynie Azure Portal . Użyj tej samej wartości dla opcji Potwierdź wpis tajny.

  5. Wybierz pozycję Dalej aplikacja EAP.

Poniższe kroki pokazują, jak wypełnić okienko Aplikacja protokołu EAP pokazane na poniższym zrzucie ekranu, a następnie rozpocząć wdrażanie.

Zrzut ekranu witryny Azure Portal przedstawiający aplikację JBoss EAP w okienku Aplikacji EAP usługi Azure Red Hat OpenShift.

  1. Pozostaw domyślną opcję Nie dla opcji Wdróż aplikację w usłudze OpenShift przy użyciu opcji Source-to-Image (S2I)?.

    Uwaga

    W dalszej części tego przewodnika Szybki start pokazano, jak ręcznie wdrożyć aplikację przy użyciu połączenia z bazą danych.

  2. Wybierz pozycję Dalej: Przeglądanie i tworzenie.

  3. Wybierz pozycję Przejrzyj i utwórz. Upewnij się, że w górnej części ekranu pojawi się zielony komunikat Weryfikacja przekazana pomyślnie. Jeśli komunikat nie zostanie wyświetlony, rozwiąż problemy z walidacją, a następnie ponownie wybierz pozycję Przejrzyj i utwórz .

  4. Wybierz pozycję Utwórz.

  5. Śledzenie postępu wdrażania na stronie Wdrażanie jest w toku .

W zależności od warunków sieciowych i innych działań w wybranym regionie wdrożenie może potrwać do 35 minut.

Czekasz, możesz skonfigurować bazę danych.

Konfigurowanie usługi Azure Database for MySQL — serwer elastyczny

W poniższych sekcjach pokazano, jak skonfigurować usługę Azure Database for MySQL — serwer elastyczny.

Ustawianie zmiennych środowiskowych w powłoce wiersza polecenia

Przykład jest aplikacją Java wspieraną przez bazę danych MySQL i jest wdrażana w klastrze OpenShift przy użyciu interfejsu Source-to-Image (S2I). Aby uzyskać więcej informacji na temat interfejsu S2I, zobacz dokumentację S2I.

Uwaga

Ponieważ tożsamość obciążenia platformy Azure nie jest jeszcze obsługiwana przez usługę Azure OpenShift, w tym artykule nadal jest używana nazwa użytkownika i hasło do uwierzytelniania bazy danych zamiast używania połączeń z bazą danych bez hasła.

Otwórz powłokę i ustaw następujące zmienne środowiskowe. Zastąp podstawień odpowiednio.

RG_NAME=<resource-group-name>
SERVER_NAME=<database-server-name>
DB_DATABASE_NAME=testdb
ADMIN_USERNAME=myadmin
ADMIN_PASSWORD=Secret123456
DB_USERNAME=testuser
DB_PASSWORD=Secret123456
PROJECT_NAME=eaparo-sample
CON_REG_SECRET_NAME=eaparo-sample-pull-secret
CON_REG_ACC_USER_NAME="<red-hat-container-registry-service-account-username>"
CON_REG_ACC_PWD="<red-hat-container-registry-service-account-password>"
APPLICATION_NAME=javaee-cafe
APP_REPLICAS=3

Zastąp symbole zastępcze następującymi wartościami, które są używane w pozostałej części artykułu:

  • <resource-group-name>: nazwa utworzonej wcześniej grupy zasobów — na przykład eaparo033123rg.
  • <database-server-name>: nazwa serwera MySQL, który powinien być unikatowy na platformie Azure — na przykład eaparo033123mysql.
  • ADMIN_PASSWORD: hasło administratora serwera bazy danych MySQL. Ten artykuł został przetestowany przy użyciu pokazanego hasła. Zapoznaj się z dokumentacją bazy danych, aby zapoznać się z regułami haseł.
  • <red-hat-container-registry-service-account-username> i <red-hat-container-registry-service-account-password>: nazwa użytkownika i hasło utworzonego wcześniej konta usługi Red Hat Container Registry.

Dobrym pomysłem jest zapisanie w pełni wypełnionych par nazwa/wartość w pliku tekstowym, jeśli powłoka kończy działanie przed wykonaniem poleceń. Dzięki temu możesz wkleić je do nowego wystąpienia powłoki i łatwo kontynuować.

Te pary nazw/wartości są zasadniczo "wpisami tajnymi". Aby uzyskać gotowy do produkcji sposób zabezpieczania usługi Azure Red Hat OpenShift, w tym zarządzania wpisami tajnymi, zobacz Security for the Azure Red Hat OpenShift landing zone accelerator (Zabezpieczenia dla akceleratora strefy docelowej usługi Azure Red Hat OpenShift).

Tworzenie i inicjowanie bazy danych

Następnie wykonaj następujące kroki, aby utworzyć usługę Azure Database for MySQL — serwer elastyczny i utworzyć użytkownika z uprawnieniami do odczytu/zapisu z/do określonej bazy danych.

  1. Użyj następującego polecenia, aby utworzyć usługę Azure Database for MySQL — serwer elastyczny:

    az mysql flexible-server create \
        --resource-group ${RG_NAME} \
        --name ${SERVER_NAME} \
        --database-name ${DB_DATABASE_NAME} \
        --public-access 0.0.0.0  \
        --admin-user ${ADMIN_USERNAME} \
        --admin-password ${ADMIN_PASSWORD} \
        --yes
    

    Wykonanie tego polecenia może potrwać co najmniej dziesięć minut. Po pomyślnym zakończeniu polecenia zobaczysz dane wyjściowe podobne do następującego przykładu:

    {
      "connectionString": "mysql testdb --host ejb010406adb.mysql.database.azure.com --user myadmin --password=Secret#123345",
      "databaseName": "testdb",
      "firewallName": "AllowAllAzureServicesAndResourcesWithinAzureIps_2023-4-6_21-21-3",
      "host": "ejb010406adb.mysql.database.azure.com",
      "id": "/subscriptions/redacted/resourceGroups/ejb010406a/providers/Microsoft.DBforMySQL/flexibleServers/ejb010406adb",
      "location": "East US",
      "password": "Secret#123345",
      "resourceGroup": "ejb010406a",
      "skuname": "Standard_B1ms",
      "username": "myadmin",
      "version": "5.7"
    }
    
  2. Użyj następujących poleceń, aby uzyskać hosta utworzonego serwera MySQL:

    DB_HOST=$(az mysql flexible-server show \
        --resource-group ${RG_NAME} \
        --name ${SERVER_NAME} \
        --query "fullyQualifiedDomainName" \
        --output tsv)
    echo $DB_HOST
    

    Zapisz parę nazwa/wartość w pliku tekstowym.

  3. Użyj następującego polecenia, aby utworzyć tymczasową regułę zapory, aby zezwolić na połączenie z serwerem MySQL z publicznego Internetu:

    az mysql flexible-server firewall-rule create \
        --resource-group ${RG_NAME} \
        --name ${SERVER_NAME} \
        --rule-name "AllowAllIPs" \
        --start-ip-address 0.0.0.0 \
        --end-ip-address 255.255.255.255
    
  4. Użyj następującego polecenia, aby utworzyć nowego użytkownika bazy danych z uprawnieniami do odczytu i zapisu określonej bazy danych. To polecenie jest przydatne do wysyłania bazy danych SQL bezpośrednio do bazy danych.

    mysql --host ${DB_HOST} --user ${ADMIN_USERNAME} --password=${ADMIN_PASSWORD} << EOF
    CREATE USER '${DB_USERNAME}'@'%' IDENTIFIED BY '${DB_PASSWORD}';
    GRANT ALL PRIVILEGES ON ${DB_DATABASE_NAME} . * TO '${DB_USERNAME}'@'%';
    FLUSH PRIVILEGES;
    EOF
    
  5. Użyj następującego polecenia, aby usunąć tymczasową regułę zapory:

    az mysql flexible-server firewall-rule delete \
        --resource-group ${RG_NAME} \
        --name ${SERVER_NAME}  \
        --rule-name "AllowAllIPs" \
        --yes
    

Masz teraz uruchomiony serwer bazy danych MySQL i wszystko będzie gotowe do nawiązania połączenia z aplikacją.

Weryfikowanie funkcjonalności wdrożenia

W krokach w tej sekcji pokazano, jak sprawdzić, czy wdrożenie zakończy się pomyślnie.

Jeśli nastąpi przejście z dala od strony Wdrożenie jest w toku , poniższe kroki pokazują, jak wrócić do tej strony. Jeśli nadal znajdujesz się na stronie z wyświetlonym komunikatem Wdrożenie zostało ukończone, możesz przejść do kroku 5.

  1. W rogu dowolnej strony witryny Azure Portal wybierz menu hamburgera, a następnie wybierz pozycję Grupy zasobów.

  2. W polu z tekstem Filtr dla dowolnego pola wprowadź kilka pierwszych znaków utworzonej wcześniej grupy zasobów. Jeśli wykonano zalecaną konwencję, wprowadź swoje inicjały, a następnie wybierz odpowiednią grupę zasobów.

  3. W okienku nawigacji w sekcji Ustawienia wybierz pozycję Wdrożenia. Zostanie wyświetlona uporządkowana lista wdrożeń w tej grupie zasobów z najnowszą.

  4. Przewiń do najstarszego wpisu na tej liście. Ten wpis odpowiada wdrożeniu rozpoczętym w poprzedniej sekcji. Wybierz najstarsze wdrożenie, jak pokazano na poniższym zrzucie ekranu.

    Zrzut ekranu witryny Azure Portal przedstawiający protokół JBoss EAP we wdrożeniach usługi Azure Red Hat OpenShift z wyróżnionym najstarszym wdrożeniem.

  5. W okienku nawigacji wybierz pozycję Dane wyjściowe. Ta lista zawiera wartości wyjściowe z wdrożenia, które zawierają kilka przydatnych informacji.

  6. Otwórz powłokę, wklej wartość z pola cmdToGetKubeadminCredentials i wykonaj ją. Zobaczysz konto administratora i poświadczenia logowania do portalu konsoli klastra OpenShift. W poniższym przykładzie pokazano konto administratora:

    az aro list-credentials --resource-group eaparo033123rg --name clusterf9e8b9
    

    To polecenie generuje dane wyjściowe podobne do następującego przykładu:

    {
      "kubeadminPassword": "xxxxx-xxxxx-xxxxx-xxxxx",
      "kubeadminUsername": "kubeadmin"
    }
    
  7. Wklej wartość z pola consoleUrl do przeglądarki internetowej połączonej z Internetem, a następnie naciśnij Enter. Wypełnij nazwę użytkownika i hasło administratora, a następnie wybierz pozycję Zaloguj. W konsoli administracyjnej usługi Azure Red Hat OpenShift wybierz pozycję Operatory zainstalowane operatory>, gdzie można znaleźć, że operator JBoss EAP został pomyślnie zainstalowany, jak pokazano na poniższym zrzucie ekranu.

    Zrzut ekranu przedstawiający portal konsoli klastra Red Hat OpenShift przedstawiający stronę Zainstalowane operatory.

Następnie wykonaj następujące kroki, aby nawiązać połączenie z klastrem OpenShift przy użyciu interfejsu wiersza polecenia platformy OpenShift:

  1. W powłoce użyj następujących poleceń, aby pobrać najnowszą wersję interfejsu wiersza polecenia platformy OpenShift 4 dla systemu GNU/Linux. Jeśli działa w systemie operacyjnym innym niż GNU/Linux, pobierz odpowiedni plik binarny dla tego systemu operacyjnego.

    cd ~
    wget https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest/openshift-client-linux.tar.gz
    
    mkdir openshift
    tar -zxvf openshift-client-linux.tar.gz -C openshift
    echo 'export PATH=$PATH:~/openshift' >> ~/.bashrc && source ~/.bashrc
    
  2. Wklej wartość z pola cmdToLoginWithKubeadmin do powłoki i wykonaj ją. Powinien zostać wyświetlony login successful komunikat i używany projekt. Poniższa zawartość to przykład polecenia służącego do nawiązywania połączenia z klastrem OpenShift przy użyciu interfejsu wiersza polecenia platformy OpenShift.

    oc login \
        $(az aro show \
            --resource-group ${RG_NAME} \
            --name aro-cluster \
            --query apiserverProfile.url \
            --output tsv) \
        -u $(az aro list-credentials \
            --resource-group ${RG_NAME} \
            --name aro-cluster \
            --query kubeadminUsername \
            --output tsv) \
        -p $(az aro list-credentials \
            --resource-group ${RG_NAME} \
            --name aro-cluster \
            --query kubeadminPassword \
            --output tsv)
    

    To polecenie generuje dane wyjściowe podobne do następującego przykładu:

    Login successful.
    
    You have access to 68 projects, the list has been suppressed. You can list all projects with 'oc projects'
    
    Using project "default".
    

Wdrażanie aplikacji JBoss EAP w klastrze OpenShift

W krokach w tej sekcji pokazano, jak wdrożyć aplikację w klastrze.

Wdrażanie aplikacji w klastrze

Aby wdrożyć aplikację w klastrze, wykonaj następujące kroki. Aplikacja jest hostowana w repozytorium GitHub rhel-jboss-templates/eap-coffee-app.

  1. W powłoce uruchom następujące polecenia. Polecenia tworzą projekt, stosują uprawnienia umożliwiające działanie S2I, obraz wpisu tajnego ściągania i łączenie wpisu tajnego z względnymi kontami usług w projekcie w celu włączenia ściągania obrazu. Zignoruj ostrzeżenie usługi Git dotyczące stanu "odłączony head".

    git clone https://github.com/Azure/rhel-jboss-templates.git
    cd rhel-jboss-templates
    git checkout 20240904
    cd ..
    oc new-project ${PROJECT_NAME}
    oc adm policy add-scc-to-user privileged -z default --namespace ${PROJECT_NAME}
    w0=-w0
    if [[ $OSTYPE == 'darwin'* ]]; then
      w0=
    fi
    
    CON_REG_ACC_USER_NAME_BASE64=$(echo ${CON_REG_ACC_USER_NAME} | base64 $w0)
    CON_REG_ACC_PWD_BASE64=$(echo ${CON_REG_ACC_PWD} | base64 $w0)
    

    Ponieważ w następnej sekcji jest używany format HEREDOC, najlepiej dołączyć go i wykonać we własnym fragcie kodu.

    cat <<EOF | oc apply -f -
    apiVersion: v1
    kind: Secret
    metadata:
      name: ${CON_REG_SECRET_NAME}
    type: Opaque
    data:
      username: ${CON_REG_ACC_USER_NAME_BASE64}
      password: ${CON_REG_ACC_PWD_BASE64}
    stringData:
      hostname: registry.redhat.io
    EOF
    

    Należy zobaczyć secret/eaparo-sample-pull-secret created , aby wskazać pomyślne utworzenie wpisu tajnego. Jeśli te dane wyjściowe nie są widoczne, przed kontynuowaniem rozwiąż problem i rozwiąż go. Na koniec połącz wpis tajny z domyślnym kontem usługi w celu pobrania obrazów kontenerów, aby klaster mógł je uruchomić.

    oc secrets link default ${CON_REG_SECRET_NAME} --for=pull
    oc secrets link builder ${CON_REG_SECRET_NAME} --for=pull
    
  2. Użyj następujących poleceń, aby ściągnąć strumień jboss-eap74-openjdk11-openshiftobrazu . Następnie uruchom proces źródła do obrazu i zaczekaj na jego zakończenie.

    oc apply -f https://raw.githubusercontent.com/jboss-container-images/jboss-eap-openshift-templates/eap74/eap74-openjdk11-image-stream.json
    oc new-build --name=${APPLICATION_NAME} --binary --image-stream=jboss-eap74-openjdk11-openshift:7.4.0 -e CUSTOM_INSTALL_DIRECTORIES=extensions
    oc start-build ${APPLICATION_NAME} --from-dir=rhel-jboss-templates/eap-coffee-app --follow
    

Pomyślne dane wyjściowe powinny kończyć się czymś podobnym do następującego przykładu:

Writing manifest to image destination
Storing signatures
Successfully pushed image-registry.openshift-image-registry.svc:5000/eaparo-sample/javaee-cafe@sha256:754587c33c03bf42ba4f3ce5a11526bbfc82aea94961ce1179a415c2bfa73449
Push successful

Jeśli nie widzisz podobnych danych wyjściowych, rozwiąż problem przed kontynuowaniem.

Tworzenie wpisu tajnego dla hasła bazy danych

Następnie wykonaj następujące kroki, aby utworzyć wpis tajny:

  1. Użyj następującego polecenia, aby utworzyć wpis tajny do przechowywania hasła bazy danych:

    oc create secret generic db-secret --from-literal=password=${DB_PASSWORD}
    
  2. Użyj następujących poleceń, aby wdrożyć i uruchomić trzy repliki konteneryzowanej aplikacji w klastrze:

    cat <<EOF | oc apply -f -
    apiVersion: wildfly.org/v1alpha1
    kind: WildFlyServer
    metadata:
      name: ${APPLICATION_NAME}
    spec:
      applicationImage: ${APPLICATION_NAME}:latest
      replicas: ${APP_REPLICAS}
      env:
        - name: DB_SERVICE_PREFIX_MAPPING
          value: TEST-MYSQL=DS1
        - name: TEST_MYSQL_SERVICE_HOST
          value: ${DB_HOST}
        - name: TEST_MYSQL_SERVICE_PORT
          value: '3306'
        - name: DS1_JNDI
          value: java:jboss/datasources/JavaEECafeDB
        - name: DS1_URL
          value: jdbc:mysql://${DB_HOST}:3306/${DB_DATABASE_NAME}
        - name: DS1_DRIVER
          value: mysql
        - name: DS1_DATABASE
          value: ${DB_DATABASE_NAME}
        - name: DS1_USERNAME
          value: ${DB_USERNAME}
        - name: DS1_PASSWORD
          valueFrom:
            secretKeyRef:
              name: db-secret
              key: password
      secrets:
        - db-secret
    EOF
    

    Jeśli polecenie zostało ukończone pomyślnie, powinien zostać wyświetlony komunikat wildflyserver.wildfly.org/javaee-cafe created. Jeśli te dane wyjściowe nie są widoczne, przed kontynuowaniem rozwiąż problem i rozwiąż go.

  3. Uruchom polecenie oc get pod -w | grep 1/1 , aby monitorować, czy wszystkie zasobniki aplikacji są uruchomione. Gdy zobaczysz dane wyjściowe podobne do poniższego przykładu, naciśnij Ctrl + C, aby zatrzymać monitorowanie:

    javaee-cafe-2         1/1     Running             0          31s
    javaee-cafe-1         1/1     Running             0          30s
    javaee-cafe-0         1/1     Running             0          30s
    

    Osiągnięcie odpowiedniego stanu może potrwać kilka minut. Możesz nawet zobaczyć STATUS wartości kolumn, w tym ErrImagePull i ImagePullBackOff przed Running nim.

  4. Uruchom następujące polecenie, aby zwrócić adres URL aplikacji. Możesz użyć tego adresu URL, aby uzyskać dostęp do wdrożonej przykładowej aplikacji. Skopiuj dane wyjściowe do schowka.

    echo http://$(oc get route ${APPLICATION_NAME}-route -o=jsonpath='{.spec.host}')/javaee-cafe
    
  5. Wklej dane wyjściowe do przeglądarki internetowej połączonej z Internetem, a następnie naciśnij Enter. Powinien zostać wyświetlony interfejs użytkownika aplikacji Java EE Cafe podobny do poniższego zrzutu ekranu:

    Zrzut ekranu przedstawiający przykładowy interfejs użytkownika aplikacji Java EE Cafe.

  6. Dodaj i usuń niektóre wiersze, aby sprawdzić, czy łączność z bazą danych działa prawidłowo.

Czyszczenie zasobów

Jeśli nie zamierzasz nadal używać klastra OpenShift, wróć do roboczej grupy zasobów. W górnej części strony w obszarze tekstowej Grupa zasobów wybierz grupę zasobów. Następnie wybierz pozycję Usuń grupę zasobów.

Następny krok

Aby uzyskać więcej informacji na temat wdrażania protokołu JBoss EAP na platformie Azure, zobacz Red Hat JBoss EAP na platformie Azure.