Kurz: Nasazení aplikací do Azure Spring Apps pomocí Jenkinse a Azure CLI

Poznámka:

Azure Spring Apps je nový název služby Azure Spring Cloud. Přestože má služba nový název, na některých místech uvidíte starý název, protože pracujeme na aktualizaci prostředků, jako jsou snímky obrazovky, videa a diagramy.

Azure Spring Apps je plně spravovaný vývoj mikroslužeb s integrovaným zjišťováním a správou konfigurace služeb. Služba usnadňuje nasazení aplikací mikroslužeb založených na Spring Boot do Azure. V tomto kurzu se dozvíte, jak pomocí Azure CLI v Jenkinse automatizovat kontinuální integraci a doručování (CI/CD) pro Azure Spring Apps.

V tomto kurzu dokončíte tyto úlohy:

  • Zřízení instance služby a spuštění aplikace Java Spring
  • Příprava serveru Jenkinse
  • Použití Azure CLI v kanálu Jenkinse k sestavení a nasazení aplikací mikroslužeb

Požadavky

  • Předplatné Azure: Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.

Zřízení instance služby a spuštění aplikace Java Spring

Jako ukázkovou aplikaci služby Microsoft používáme metriky Piggy a postupujeme stejným postupem v rychlém startu: Spusťte aplikaci Java Spring pomocí Azure CLI , abyste zřídili instanci služby a nastavili aplikace. Pokud jste už prošli stejným procesem, můžete přejít k další části. V opačném případě jsou zahrnuté následující příkazy Azure CLI. Další informace najdete v rychlém startu: Spuštění aplikace Java Spring pomocí Azure CLI .

Místní počítač musí splňovat stejné požadavky jako server sestavení Jenkinse. Ujistěte se, že jsou nainstalované následující součásti pro sestavení a nasazení aplikací mikroslužeb:

  1. Nainstalujte rozšíření Azure Spring Apps:

    az extension add --name spring
    
  2. Vytvořte skupinu prostředků, která bude obsahovat službu Azure Spring Apps:

    az group create --location eastus --name <resource group name>
    
  3. Zřízení instance Azure Spring Apps:

    az spring create -n <service name> -g <resource group name>
    
  4. Vytvoření forku úložiště Piggy Metrics na vlastní účet GitHubu Na místním počítači naklonujte úložiště v adresáři s názvem source-code:

    mkdir source-code
    git clone https://github.com/<your GitHub id>/piggymetrics
    
  5. Nastavte konfigurační server. Ujistěte se, že jste id> GitHubu nahradili <správnou hodnotou.

    az spring config-server git set -n <your-service-name> --uri https://github.com/<your GitHub id>/piggymetrics --label config
    
  6. Sestavení projektu:

    cd piggymetrics
    mvn clean package -D skipTests
    
  7. Vytvořte tři mikroslužby: bránu, službu ověřování a službu účtu:

    az spring app create --n gateway -s <service name> -g <resource group name>
    az spring app create --n auth-service -s <service name> -g <resource group name>
    az spring app create --n account-service -s <service name> -g <resource group name>
    
  8. Nasazení aplikací:

    az spring app deploy -n gateway -s <service name> -g <resource group name> --jar-path ./gateway/target/gateway.jar
    az spring app deploy -n account-service -s <service name> -g <resource group name> --jar-path ./account-service/target/account-service.jar
    az spring app deploy -n auth-service -s <service name> -g <resource group name> --jar-path ./auth-service/target/auth-service.jar
    
  9. Přiřazení veřejného koncového bodu k bráně:

    az spring app update -n gateway -s <service name> -g <resource group name> --is-public true
    
  10. Zadejte dotaz na aplikaci brány, abyste získali adresu URL, abyste mohli ověřit, že je aplikace spuštěná.

    az spring app show --name gateway | grep url
    
  11. Přejděte na adresu URL poskytnutou předchozím příkazem a spusťte aplikaci PiggyMetrics.

Příprava serveru Jenkinse

V této části připravíte server Jenkinse na spuštění sestavení, což je v pořádku pro testování. Z důvodu implikace zabezpečení byste ale ke spouštění sestavení měli použít agenta virtuálního počítače Azure nebo agenta Azure Container, který spustí agenta v Azure.

Instalace modulů plug-in

  1. Přihlaste se k serveru Jenkinse.

  2. Vyberte Spravovat Jenkinse.

  3. Vyberte Spravovat moduly plug-in.

  4. Na kartě K dispozici vyberte následující moduly plug-in:

    Pokud se tyto moduly plug-in nezobrazí v seznamu, zkontrolujte na kartě Nainstalované , jestli už jsou nainstalované.

  5. Pokud chcete nainstalovat moduly plug-in, vyberte Stáhnout a po restartování nainstalujte.

  6. Restartujte server Jenkinse a dokončete instalaci.

Přidání přihlašovacích údajů instančního objektu Azure v úložišti přihlašovacích údajů Jenkinse

  1. K nasazení do Azure potřebujete instanční objekt Azure. Další informace najdete v části Vytvoření instančního objektu v kurzu Nasazení do služby Aplikace Azure Service. Výstup výstupu az ad sp create-for-rbac vypadá přibližně takto:

    {
        "appId": "xxxxxx-xxx-xxxx-xxx-xxxxxxxxxxxx",
        "displayName": "xxxxxxxjenkinssp",
        "name": "http://xxxxxxxjenkinssp",
        "password": "xxxxxx-xxx-xxxx-xxx-xxxxxxxxxxxx",
        "tenant": "xxxxxx--xxx-xxxx-xxx-xxxxxxxxxxxx"
    }
    
  2. Na řídicím panelu Jenkinse vyberte Přihlašovací údaje>Systém. Pak vyberte Global credentials (unrestricted) (Globální přihlašovací údaje (neomezené)).

  3. Vyberte Přidat přihlašovací údaje.

  4. Jako druh vyberte instanční objekt Microsoft Azure.

  5. Zadejte hodnoty pro následující pole:

    • ID předplatného: ID předplatného Azure
    • ID klienta: Appid instančního objektu
    • Tajný klíč klienta: Heslo instančního objektu
    • ID tenanta: ID tenanta účtu Microsoft
    • Prostředí Azure: Vyberte odpovídající hodnotu pro vaše prostředí. Například použití Azure for Azure Global
    • ID: Nastavit jako azure_service_principal. Toto ID použijeme v pozdějším kroku tohoto článku.
    • Popis: Tato hodnota je nepovinná, ale doporučuje se z hlediska dokumentace nebo údržby.

Instalace rozšíření Maven a Azure CLI spring

Ukázkový kanál používá Maven k sestavení a Azure CLI k nasazení do instance služby. Po instalaci Jenkinse se vytvoří účet správce s názvem Jenkins. Ujistěte se, že má uživatel jenkins oprávnění ke spuštění rozšíření Spring.

  1. Připojení k kontroleru Jenkinse přes SSH.

  2. Nainstalovat Maven

    sudo apt-get install maven
    
  3. Zadáním příkazu az versionověřte, že je nainstalované Rozhraní příkazového řádku Azure CLI. Pokud azure CLI není nainstalované, přečtěte si téma Instalace Azure CLI.

  4. Přepněte na jenkins uživatele:

    sudo su jenkins
    
  5. Nainstalujte rozšíření Spring:

    az extension add --name spring
    

Vytvoření souboru Jenkinsfile

  1. Ve vlastním úložišti – https://github.com/your_github_id/piggymetrics vytvořte v kořenovém adresáři soubor Jenkinsfile .

  2. Aktualizujte soubor následujícím způsobem. Nezapomeňte nahradit hodnoty <názvu> skupiny prostředků a< názvu> služby. Pokud při přidání přihlašovacích údajů do Jenkinse použijete jinou hodnotu, nahraďte azure_service_principal správným ID.

        node {
          stage('init') {
            checkout scm
          }
          stage('build') {
            sh 'mvn clean package'
          }
          stage('deploy') {
            withCredentials([azureServicePrincipal('azure_service_principal')]) {
              // Log in to Azure
              sh '''
                az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET -t $AZURE_TENANT_ID
                az account set -s $AZURE_SUBSCRIPTION_ID
              '''  
              // Set default resource group name and service name. Replace <resource group name> and <service name> with the right values
              sh 'az config set defaults.group=<resource group name>'
              sh 'az config set defaults.spring=<service name>'
    
              // Deploy applications
              sh 'az spring app deploy -n gateway --jar-path ./gateway/target/gateway.jar'
              sh 'az spring app deploy -n account-service --jar-path ./account-service/target/account-service.jar'
              sh 'az spring app deploy -n auth-service --jar-path ./auth-service/target/auth-service.jar'
              sh 'az logout'
            }
          }
        }
    
  3. Uložte a potvrďte změnu.

Vytvoření úlohy

  1. Na řídicím panelu Jenkinse vyberte Nová položka.

  2. Zadejte název , Deploy-PiggyMetrics pro úlohu a vyberte Kanál. Klikněte na OK.

  3. Vyberte kartu Pipeline (Kanál).

  4. V části Definition (Definice) vyberte Pipeline script from SCM (Skript kanálu z SCM).

  5. V části SCM vyberte Git.

  6. Zadejte adresu URL GitHubu pro vaše forkované úložiště: https://github.com/&lt;your GitHub id&gt;/piggymetrics.git.

  7. V případě specifikátoru větve (černá pro any) vyberte /Azure.

  8. Jako cestu ke skriptu vyberte Jenkinsfile.

  9. Zvolte Uložit.

Ověření a spuštění úlohy

Před spuštěním úlohy upravte text ve vstupním poli pro přihlášení a zadejte přihlašovací ID.

  1. V úložišti otevřete index.html soubor /gateway/src/main/resources/static/.

  2. Vyhledejte enter your login a aktualizujte tento text na enter login ID.

    <input class="frontforms" id="frontloginform" name="username" placeholder="enter login ID" type="text" autocomplete="off"/>
    
  3. Uložte a potvrďte změnu.

  4. Úlohu spusťte v Jenkinse ručně. Na řídicím panelu Jenkinse vyberte úlohu Deploy-PiggyMetrics a pak vyberte Sestavit.

Po dokončení úlohy přejděte na veřejnou IP adresu gateway aplikace a ověřte, že byla vaše aplikace aktualizována.

Updated Piggy Metrics

Vyčištění prostředků

Pokud už je nepotřebujete, odstraňte prostředky vytvořené v tomto článku:

az group delete -y --no-wait -n <resource group name>

Další kroky