Kurz: nasazení aplikací do jarního cloudu Azure pomocí Jenkinse a rozhraní příkazového řádku Azure

Azure jaře Cloud je plně spravovaný vývoj mikroslužeb s integrovanou správou zjišťování služeb a konfigurací. Služba usnadňuje nasazení mikroslužeb založených na jarních aplikacích do Azure. V tomto kurzu se dozvíte, jak můžete pomocí Azure CLI v Jenkinse automatizovat průběžnou integraci a doručování (CI/CD) pro jarní cloudy Azure.

V tomto kurzu dokončíte tyto úlohy:

  • Zřízení instance služby a spuštění aplikace v jazyce Java pružiny
  • Příprava serveru Jenkinse
  • Použití rozhraní příkazového řádku Azure v kanálu Jenkinse k sestavování a nasazování 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 v jazyce Java pružiny

Metriky Piggy používáme jako ukázkovou aplikaci služby Microsoft a postupuje se stejným postupem v rychlém startu: spuštění aplikace v jazyce Java pružiny pomocí rozhraní příkazového řádku Azure pro zřízení instance služby a nastavení aplikací. Pokud jste už prošli stejným procesem, můžete přejít k další části. V opačném případě jsou příkazy rozhraní příkazového řádku Azure CLI zahrnuté v následujících. Další informace najdete v tématu rychlý Start: spuštění aplikace pružiny v jazyce Java pomocí rozhraní příkazového řádku Azure CLI .

Váš místní počítač musí splňovat stejný požadavek jako server sestavení Jenkinse. Ujistěte se, že jsou nainstalované následující nástroje pro sestavování a nasazování aplikací mikroslužeb:

  1. Instalace rozšíření pro jarní cloud Azure:

    az extension add --name spring-cloud
    
  2. Vytvořte skupinu prostředků, která bude obsahovat vaši jarní cloudovou službu Azure:

    az group create --location eastus --name <resource group name>
    
  3. Zřízení instance Azure jaře cloudu:

    az spring-cloud create -n <service name> -g <resource group name>
    
  4. rozvětvení úložiště metrik Piggy na vlastní účet GitHub. V 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 < číslo id GitHub nahradili > správnou hodnotou.

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

    cd piggymetrics
    mvn clean package -D skipTests
    
  7. Vytvořte tři mikroslužby: Brána, auth-Servicea account-Service:

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

    az spring-cloud app deploy -n gateway -s <service name> -g <resource group name> --jar-path ./gateway/target/gateway.jar
    az spring-cloud app deploy -n account-service -s <service name> -g <resource group name> --jar-path ./account-service/target/account-service.jar
    az spring-cloud app deploy -n auth-service -s <service name> -g <resource group name> --jar-path ./auth-service/target/auth-service.jar
    
  9. Přiřadit veřejný koncový bod bráně:

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

    az spring-cloud app show --name gateway | grep url
    
  11. Pokud chcete spustit aplikaci PiggyMetrics, přejděte na adresu URL poskytnutou předchozím příkazem.

Příprava serveru Jenkinse

V této části připravíte Server Jenkinse pro spuštění sestavení, což je pro testování jemné. Z důvodu nebezpečnosti byste ale měli použít agenta virtuálního počítače Azure nebo Azure Container agenta k aktivaci agenta v Azure za účelem spuštění vašich sestavení.

Nainstalovat moduly plug-in

  1. Přihlaste se k serveru Jenkinse. Vyberte Spravovat Jenkinse Spravovat moduly plug-in.

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

    Pokud se tyto moduly plug-in nezobrazí v seznamu, podívejte se na kartu nainstalované a zjistěte, jestli jsou už nainstalované.

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

  4. Dokončete instalaci restartováním serveru Jenkinse.

Přidání přihlašovacích údajů instančního objektu do úložiště přihlašovacích údajů služby Azure 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 Azure App Service. Výstup bude vypadat nějak takto az ad sp create-for-rbac :

    {
        "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í údajeSystém. Pak vyberte Global credentials (unrestricted) (Globální přihlašovací údaje (neomezené)).

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

  4. jako typ vyberte Microsoft Azure instanční objekt .

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

    • ID předplatného: ID předplatného Azure
    • ID klienta: identifikátorAppID objektu služby
    • Tajný kód klienta: heslo objektu služby
    • ID tenanta: účet Microsoft ID tenanta.
    • Prostředí Azure: vyberte vhodnou hodnotu pro vaše prostředí. Použijte například Azure pro globální Azure
    • ID: nastaveno jako . Toto ID použijeme v pozdějším kroku tohoto článku.
    • Popis: Tato akce je volitelná, ale doporučuje se.

Instalace Maven a AZ CLI jaře-Cloud Extension

Vzorový kanál používá Maven k sestavení a AZ CLI pro nasazení do instance služby. Když se Jenkinse nainstaluje, vytvoří účet správce s názvem Jenkinse. Ujistěte se, že uživatel Jenkinse má oprávnění ke spuštění rozšíření jarního cloudu.

  1. Připojení k řadiči jenkinse přes SSH.

  2. Nainstalovat Maven

    sudo apt-get install maven
    
  3. Zadáním. Ověřte, že je rozhraní Azure CLI nainstalované az version . Pokud rozhraní příkazového řádku Azure není nainstalované, přečtěte si téma instalace Azure CLI.

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

    sudo su jenkins
    
  5. Přidejte rozšíření jarního cloudu :

    az extension add --name spring-cloud
    

Vytvoření Jenkinsfile

  1. ve svém vlastním úložišti ( https://github.com/< vaše GitHub id > /piggymetrics) vytvořte https://github.com/ v kořenovém adresáři.

  2. Aktualizujte soubor následujícím způsobem. Ujistěte se, že jste nahradili hodnoty názvu > skupiny prostředků a >. 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')]) {
              // login 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-cloud=<service name>'
              // Deploy applications
              sh 'az spring-cloud app deploy -n gateway --jar-path ./gateway/target/gateway.jar'
              sh 'az spring-cloud app deploy -n account-service --jar-path ./account-service/target/account-service.jar'
              sh 'az spring-cloud 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 klikněte na Nová položka.

  2. Zadejte název, Deploy-PiggyMetrics pro úlohu a vyberte kanál. Klikněte na tlačítko OK.

  3. Potom klikněte na 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 GitHub rozvětvené úložiště: < id vaší GitHub > /piggymetrics.git

  7. Ujistěte se, že specifikátor větve (černá pro ' Any ') je */Azure

  8. Zachovat cestu ke skriptům jako Jenkinsfile

  9. Klikněte na Uložit.

Ověří a spustí úlohu.

Před spuštěním úlohy budeme aktualizovat text v textovém poli přihlášení, aby se zadalo přihlašovací ID.

  1. Ve svém vlastním úložišti otevřete index.html v index.html

  2. Vyhledejte "zadejte své přihlašovací údaje" a aktualizujte na zadat přihlašovací ID.

    <input class="frontforms" id="frontloginform" name="username" placeholder="enter login ID" type="text" autocomplete="off"/>
    
  3. Potvrdit změny

  4. Spusťte úlohu v Jenkinse ručně. Na řídicím panelu Jenkinse klikněte na úlohu Deploy-PiggyMetrics a Sestavte ji nyní.

Po dokončení úlohy přejděte k veřejné IP adrese aplikace brány a ověřte, jestli je vaše aplikace aktualizovaná.

Aktualizované metriky Piggy

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