January 4, 2021
Estimated Post Reading Time ~

AEM Download, Install & Replicate Package

SYNOPSIS:
Following is the guide to download the AEM package from an Author instance and deploy and install the package on another instance using curl and PowerShell on windows machines and curl and bash on *nix machines.

TOOLS USED:
  • Powershell
  • cURL
  • Sublime Text
  • Windows 10
  • Mac OSX
  • Bash
  • Jenkins
  • iTERM
GUIDE:
Step-01: Jenkins – Project Name – Housekeeping


Step-02: Jenkins Parameter – Download PKG – Hostname


Step-03: Jenkins Parameter – Install PKG – Hostname


Step-04: Jenkins Parameter – Package Name


Step-05a: Jenkins – Build Step – Powershell Script – If Jenkins host is based of Windows
param
 [Parameter()][ValidateNotNullOrEmpty()][int]$AEMPORT = 4502, 
 [Parameter()][ValidateNotNullOrEmpty()][String]$CQ_USER = "admin",   [Parameter()][ValidateNotNullOrEmpty()][String]$HOSTNAMED = "$Env:D_Host",   [Parameter()][ValidateNotNullOrEmpty()][String]$CQ_PASSD = "admin",   [Parameter()][ValidateNotNullOrEmpty()][String]$HOSTNAMEI = "$Env:I_Host",   [Parameter()][ValidateNotNullOrEmpty()][String]$CQ_PASSI = "admin",   [Parameter()][ValidateNotNullOrEmpty()][String]$PKGNAME = "$Env:PKG_NAME",   [Parameter()][ValidateNotNullOrEmpty()][String]$PKGPATH = ".\${PKGNAME}",   [Parameter()][ValidateNotNullOrEmpty()][String]$CURLEXE = "C:\tools\curl761\bin\curl.exe", [Parameter()][ValidateNotNullOrEmpty()][String]$ICURL = "http://${HOSTNAMEI}:${AEMPORT}/crx/packmgr/service.jsp", [Parameter()][ValidateNotNullOrEmpty()][String]$DCURL = "http://${HOSTNAMED}:${AEMPORT}/etc/packages/aemgit/${PKGNAME}", [parameter()][ValidateNotNullOrEmpty()][String]$RCURL = "http://${HOSTNAMEI}:${AEMPORT}/crx/packmgr/service/script.html/etc/packages/aemdev/${PKGNAME}?cmd=replicate" ) 

 # Download Package 
 Write-Host " " 
 Write-Host -ForegroundColor Yellow ">>>> Downloading APPS Package" 
 cmd.exe /c $CURLEXE -u "${CQ_USER}:${CQ_PASSD}" "${DCURL}" --Host $PKGPATH 
 Write-Host " " 
 Write-Host -ForegroundColor Green ">>>> Package Downlaod Complete" 

 # Installing package 
 Write-Host " " 
 Write-Host -ForegroundColor Yellow ">>>> Uploading and installing Package" cmd.exe /c $CURLEXE -u "${CQ_USER}:${CQ_PASSI}" -F file=@"$PKGPATH" -F name="AEM_GIT_APP" -F force=true -F install=true "${ICURL}" | Out-Null 
 Write-Host " " 
 Write-Host -ForegroundColor Green ">>>> Installation Complete" 

 # Replicating package 
 Write-Host " " 
 Write-Host -ForegroundColor Yellow "Replicating Package" 
 cmd.exe /c $CURLEXE -u "${CQ_USER}:${CQ_PASSI}" -X POST $RCURL 
 Write-Host -ForegroundColor Green "Replication Complete" 
 Write-Host " " 

# Remove the downloaded package from workspace 
 Write-Host " " 
 Write-Host -ForegroundColor Yellow ">>>> Houseking Workspace" 
 Remove-Item -Path $PKGPATH 
 Write-Host " " 
 Write-Host -ForegroundColor Yellow ">>>> Done" 
Write-Host " "

Step-05b – Jenkins – Build Step – Bash Script – If Jenkins Host is based of *nix 
AEMPORT=4502 
CQ_USER=admin 
 HOSTNAMED=192.168.2.8 
 CQ_PASSD=admin 
 HOSTNAMEI=192.168.2.8 
 CQ_PASSI=admin 
 PKGNAME=aemgit.ui.apps-1.0-SNAPSHOT.zip 
 PKGPATH=./"${PKGNAME}" ICURL=http://${HOSTNAMEI}:${AEMPORT}/crx/packmgr/service.jsp DCURL=http://${HOSTNAMED}:${AEMPORT}/etc/packages/aemgit/${PKGNAME} 

RCURL="http://${HOSTNAMEI}:${AEMPORT}/crx/packmgr/service/script.html/etc/packages/aemdev/${PKGNAME}?cmd=replicate" 
 echo " " 
 echo ">>>> Downloading APPS Package" 
 curl -u ${CQ_USER}:${CQ_PASSD} ${DCURL} --output ${PKGPATH} 
 echo " " 
 echo ">>>> Package Downlaod Complete" 

 echo " " 
 echo ">>>> Uploading and installing Package" 
 curl -u ${CQ_USER}:${CQ_PASSI} -F "file=@${PKGPATH}" -F name='AEM_GIT_APP' 
-F force=true -F install=true ${ICURL} 
 echo " " 
 echo ">>>> Installation Complete" 

 echo " " 
 echo ">>>> Replicating package" 
 curl -u "${CQ_USER}:${CQ_PASSI}" -X POST $RCURL 
 echo " " 
 echo ">>>> Replication Complete" 
 echo " " 
 echo " " 
 echo ">>>> Houseking Workspace" rm -rf ${PKGPATH} 
 echo " " 
 echo ">>>> Done" 
 echo " "

Step-06: Final output


AEM Package – Installed – On Author Instance
Jenkins Console — Output


By aem4beginner

No comments:

Post a Comment

If you have any doubts or questions, please let us know.