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.
- Jenkins: Instalace Jenkinse na virtuální počítač s Linuxem
- Účet GitHub: Pokud nemáte účet GitHub, vytvořte si před zahájením bezplatný účet .
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:
- Git
- JDK 8
- Maven 3.0 nebo vyšší
- Nainstalované Rozhraní příkazového řádku Azure, verze 2.0.67 nebo novější
Nainstalujte rozšíření Azure Spring Apps:
az extension add --name spring
Vytvořte skupinu prostředků, která bude obsahovat službu Azure Spring Apps:
az group create --location eastus --name <resource group name>
Zřízení instance Azure Spring Apps:
az spring create -n <service name> -g <resource group name>
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
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
Sestavení projektu:
cd piggymetrics mvn clean package -D skipTests
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>
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
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
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
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
Přihlaste se k serveru Jenkinse.
Vyberte Spravovat Jenkinse.
Vyberte Spravovat moduly plug-in.
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é.
Pokud chcete nainstalovat moduly plug-in, vyberte Stáhnout a po restartování nainstalujte.
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
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" }
Na řídicím panelu Jenkinse vyberte Přihlašovací údaje>Systém. Pak vyberte Global credentials (unrestricted) (Globální přihlašovací údaje (neomezené)).
Vyberte Přidat přihlašovací údaje.
Jako druh vyberte instanční objekt Microsoft Azure.
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.
Připojení k kontroleru Jenkinse přes SSH.
Nainstalovat Maven
sudo apt-get install maven
Zadáním příkazu
az version
ověř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.Přepněte na
jenkins
uživatele:sudo su jenkins
Nainstalujte rozšíření Spring:
az extension add --name spring
Vytvoření souboru Jenkinsfile
Ve vlastním úložišti –
https://github.com/your_github_id/piggymetrics
vytvořte v kořenovém adresáři soubor Jenkinsfile .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' } } }
Uložte a potvrďte změnu.
Vytvoření úlohy
Na řídicím panelu Jenkinse vyberte Nová položka.
Zadejte název , Deploy-PiggyMetrics pro úlohu a vyberte Kanál. Klikněte na OK.
Vyberte kartu Pipeline (Kanál).
V části Definition (Definice) vyberte Pipeline script from SCM (Skript kanálu z SCM).
V části SCM vyberte Git.
Zadejte adresu URL GitHubu pro vaše forkované úložiště:
https://github.com/<your GitHub id>/piggymetrics.git
.V případě specifikátoru větve (černá pro any) vyberte /Azure.
Jako cestu ke skriptu vyberte Jenkinsfile.
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.
V úložišti otevřete
index.html
soubor/gateway/src/main/resources/static/
.Vyhledejte
enter your login
a aktualizujte tento text naenter login ID
.<input class="frontforms" id="frontloginform" name="username" placeholder="enter login ID" type="text" autocomplete="off"/>
Uložte a potvrďte změnu.
Ú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.
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>