paint-brush
AEM багцуудад зориулсан DevOps арга: Үүсгэх, тохируулах болон бусад зүйлсийг автоматжуулахby@realgpp
Шинэ түүх

AEM багцуудад зориулсан DevOps арга: Үүсгэх, тохируулах болон бусад зүйлсийг автоматжуулах

by Giuseppe Baglio11m2025/02/16
Read on Terminal Reader

Хэтэрхий урт; Унших

`create-remote-aem-pkg.sh скрипт нь AEM-н Багц Менежер API-тай харилцан үйлчлэлийг автоматжуулж, багц үүсгэх, тохируулах, түгээх бүтэцтэй хандлагыг санал болгодог. Хөгжүүлэгчид болон администраторуудад зориулагдсан бөгөөд гарын авлагын ажлын урсгалыг тууштай, найдвартай байдлыг чухалчилдаг тушаалын мөрөнд тулгуурласан процессоор орлуулдаг.
featured image - AEM багцуудад зориулсан DevOps арга: Үүсгэх, тохируулах болон бусад зүйлсийг автоматжуулах
Giuseppe Baglio HackerNoon profile picture

Adobe Experience Manager (AEM) багцууд нь агуулгын удирдлагын үл мэдэгдэх баатрууд бөгөөд код, тохиргооноос эхлээд чухал контент хүртэлх бүх зүйлийг багтаасан хүчирхэг контейнер юм. Гэхдээ үүнийг хүлээн зөвшөөр: эдгээр багцуудыг гараар үүсгэх, тохируулах, татаж авах нь товшилтын уйтгартай бүжиг шиг санагдаж болно.


Хэрэв та хэд хэдэн товчлуур дарснаар энэ үйл явцыг автоматжуулж, тогтвортой байдал, хурд, найдвартай байдлыг хангаж, хүнд ачаа бага өргөдөг бол яах вэ?


Би танд AEM хөгжүүлэгчид болон админууд Багц Менежер API-тай хэрхэн ажилладаг тухай скриптийг эргүүлдэг (хөгжөөгүй!) Bash скриптийг үзүүлэх болно. Хэдхэн секундын дотор багц хийх, шүүлтүүрийг хурдан тохируулах, нөөцлөлтийг мэс заслын нарийвчлалтайгаар хийх талаар бодож үзээрэй - таны кофе ууж буй төгс температурт хөргөхөөс өмнө. ☕


Усанд орохоосоо өмнө товч тэмдэглэл : Энэ нийтлэл нь гүн гүнзгий шумбах, нарийн нарийвчлалтай, техникийн хувьд уучлалт гуйхгүй. Бид скриптийн логикийг задлан шинжилж, AEM API-ийн нарийн төвөгтэй байдлыг судалж, захын тохиолдлуудад алдааг олж засварлах болно. Код руу шууд орохыг хүсч буй хөгжүүлэгчдэд та нийтлэлийн доод хэсэгт очиж болно. Гэхдээ хэрэв та автоматжуулалтын ард хэрхэн, яагаад гэдгийг ойлгох гэж ирсэн бол оосортой бол - бид туулайн нүх рүү чиглэн явна. 🕳️

1. Скриптийн тойм

create-remote-aem-pkg.sh скрипт нь AEM-ийн багц менежер API-тай харилцан үйлчлэлийг автоматжуулж, багц үүсгэх, тохируулах, түгээх бүтэцтэй хандлагыг санал болгодог. Хөгжүүлэгчид болон администраторуудад зориулагдсан бөгөөд гарын авлагын ажлын урсгалыг тууштай, найдвартай байдлыг чухалчилдаг тушаалын мөрөнд тулгуурласан процессоор орлуулдаг.

1.1 Үндсэн функцууд

  • Багц баталгаажуулалт : Бүтээж эхлэхээс өмнө илүүдэл үүсэхээс сэргийлж байгаа багцуудыг шалгана.
  • Динамик шүүлтүүр тарилга : багцад оруулах агуулгын замыг (жишээ нь, /content/dam , /apps ) программчлан тодорхойлдог.
  • Барилгын автоматжуулалт : Багцын эмхэтгэлийг идэвхжүүлж, гаралтыг заасан лавлах руу татаж, файлын нэрэнд хувилбарын хяналт тавих цагийн тэмдэг хавсаргана.
  • Алдаатай ажиллах : HTTP хариулт, хавтасны зам, баталгаажуулалтыг баталгаажуулж, алдаа гарсан үед хариу үйлдэл үзүүлэх боломжтой.
  • Баталгаажуулалт : curl дамжуулан үндсэн¹ итгэмжлэлд суурилсан баталгаажуулалтыг дэмждэг.

1.2 Үндсэн ашиг тус

  • Үр ашиг : Багц үүсгэх, тохируулах, татаж авахад шаардлагатай гарын авлагын алхмуудыг багасгадаг.
  • Тогтвортой байдал : Багцын нэгдмэл бүтэц, орчны нэршлийг хангана.
  • Мөшгих чадвар : Үе шат бүрт (бүтээх, шүүх, бүтээх, татаж авах) нарийвчилсан бүртгэл хийх нь аудит болон алдааг олж засварлахад тусална.

1.3 Практик хэрэглээ

  • Төлөвлөсөн нөөцлөлтүүд : Чухал агуулгын замыг тогтмол архивлахын тулд cron ажлуудтай нэгтгэ.
  • Орчны синхрончлол : Байршуулах явцад AEM инстанцуудын хооронд тохиргоо эсвэл контентыг хуулбарлах.
  • Урьдчилан шинэчлэх агшин зуурын зургууд : Системийн шинэчлэлтүүдийг хэрэглэхээс өмнө /etc эсвэл /apps ын тогтвортой байдлыг авна уу.

1.4 Урьдчилсан нөхцөл

  • AEM инстант руу нэвтрэх (итгэмжлэл, сервер, порт).
  • Bash скрипт болон AEM-ийн багц менежерийн талаар үндсэн мэдлэгтэй.
  • AEM API-ээр багц үүсгэх, татаж авах зөвшөөрөл.

1.5 Хэрэглээний жишээ

 ./create-remote-aem-pkg.sh admin securepass123 localhost 4502 backup-group "Content Backup" /backups /content/dam /etc/clientlibs


Энэ тушаал нь /content/dam болон /etc/clientlibs зэрэг backup-group доор "Агуулгын нөөц" нэртэй багцыг үүсгэж, гаралтыг /backups санд хадгална.

2. Скриптийн задаргаа

create-remote-aem-pkg.sh скриптийг задлан үзэцгээе (та үүнийг нийтлэлийн доод хэсгээс олж болно), энэ нь AEM багцын менежментийг хэрхэн зохицуулдгийг ойлгох болно. Бид түүний бүтэц, үндсэн функцууд болон ажлын урсгалын логик дээр анхаарлаа төвлөрүүлэх бөгөөд энэ нь уг хэрэгслийг өөрчлөх эсвэл дибаг хийх хүсэлтэй хөгжүүлэгчдэд тохиромжтой.

2.1 Үндсэн функцууд

  • _log() : Аудитын мөрүүдийг тодорхой болгохын тулд мессежийг цагийн тэмдэгтээр угтдаг туслах функц.
 _log () { echo "[$(date +%Y.%m.%d-%H:%M:%S)] $1" }


Энэ нь яагаад чухал вэ : Үйлдэл бүрийг (жишээ нь, "Багц бүтээгдсэн") контексттэй нь бүртгэж, алдааг олж засварлах ажлыг хялбаршуулдаг.

  • check_last_exec() : Гарах код болон API хариултуудыг шалгах замаар өмнөх командуудын амжилтыг баталгаажуулдаг.
 check_last_exec () { # Checks $? (exit status) and $CURL_OUTPUT for errors if [ "$status" -ne 0 ] || [[ $output =~ .*success\":false* ]]; then _log "Error detected!"; exit 1; fi }

Энэ нь яагаад чухал вэ : Баталгаажуулалтын асуудал эсвэл хүчингүй зам зэрэг чухал алдаануудын гүйцэтгэлийг зогсоосноор чимээгүй бүтэлгүйтлээс сэргийлнэ.

2.2 Оролтын параметрүүд

Скрипт нь байрлалын долоон аргумент, дараа нь динамик шүүлтүүрийг хүлээн авдаг:

 USR="$1" # AEM username PWD="$2" # AEM password SVR="$3" # Server host (eg, localhost) PORT="$4" # Port (eg, 4502) PKG_GROUP="$5" # Package group (eg, "backups") PKG_NAME="$6" # Package name (eg, "dam-backup") BK_FOLDER="$7" # Backup directory (eg, "/backups") shift 7 # Remaining arguments become filters (eg, "/content/dam")


Байршлын аргументууд нь энгийн байдлыг хангадаг бол shift хувьсах шүүлтүүрийн замыг уян хатан зохицуулдаг.

2.3 Багцыг баталгаажуулах, үүсгэх

  • Нэрүүдийг ариутгах : URL-н асуудлаас зайлсхийхийн тулд PKG_NAME доторх зайг доогуур зураасаар солино.
 PKG_NAME=${PKG_NAME// /_}
  • Одоо байгаа багцуудыг шалгана уу : curl ашиглан багцуудыг AEM-ийн API-ээр жагсааж, илүүдэл үүсгэхээс сэргийлнэ.
 if [ $(curl ... | grep "$PKG_NAME.zip" | wc -l) -eq 1 ]; then _log "Package exists—skipping creation." else curl -X POST ... # Creates the package fi

2.4 Динамик шүүлтүүрийн тохиргоо

Оролтын замаас JSON шүүлтүүрийн массивыг бүтээдэг:

 FILTERS_PARAM="" for i in "${!FILTERS[@]}"; do FILTERS_PARAM+="{\"root\": \"${FILTERS[$i]}\", \"rules\": []}" # Adds commas between entries, but not after the last done


Жишээ гаралт :

[{"root": "/content/dam"}, {"root": "/apps"}]

Энэ JSON нь AEM-ийн /crx/packmgr/update.jsp төгсгөлийн цэгээр дамжуулан багцын тодорхойлолтод тарина.

2.5 Ажлын урсгалыг бүтээх, татаж авах

  • Багц бүтээх : AEM-ийн build командыг ашиглан эмхэтгэлийг идэвхжүүлнэ:

curl -X POST … -F "cmd=build"


Тайлбар : Скрипт нь үргэлжлүүлэхийн өмнө бүтээц дуустал хүлээнэ.

  • Татаж авах : curl ашиглан .zip файлыг татаж аваад цагийн тэмдэгтэй файлын нэрээр хадгална:
 BK_FILE="$PKG_NAME-$(date +%Y%m%d-%H%M%S).zip" curl -o "$BK_FOLDER/$BK_FILE" ...

3. Алдаа боловсруулах, аюулгүй байдлын тэмдэглэл, бүртгэл

create-remote-aem-pkg.sh гэх мэт хараа хяналтгүй скриптүүдийн хувьд алдаатай харьцах, бүртгэх нь маш чухал бөгөөд алдааг эрт илрүүлж, тодорхой бүртгэдэг. Энэ скрипт нь гэнэтийн асуудлаас хэрхэн хамгаалж, хэрэгжүүлэх боломжтой ойлголтуудыг өгдөг.

3.1 Мод бэлтгэх механизм

  • Хугацаа тэмдэглэгдсэн бүртгэл : _log функц нь мессеж бүрийг [YYYY.MM.DD-HH:MM:SS] гэсэн угтвартай болгож, дибаг хийх аудитын мөрийг үүсгэдэг:

_log "Starting backup process..." # Output: [2023.10.25-14:30:45] Starting backup process...


Яагаад чухал вэ : Цагийн тэмдэг нь скриптийн үйл ажиллагааг AEM серверийн бүртгэл эсвэл гадаад үйл явдлуудтай (жишээ нь, cron ажлын хуваарь) уялдуулахад тусалдаг.

  • Нарийвчилсан гаралт : Багц үүсгэх, шүүлтүүрийн шинэчлэлт хийх, татаж авах зэрэг чухал алхмуудыг ахиц дэвшлийг хянахын тулд шууд бүртгэдэг.

3.2 Алдаа баталгаажуулах ажлын урсгал

Нислэгийн өмнөх шалгалт :

  • Үргэлжлүүлэхийн өмнө нөөц хавтас ( BK_FOLDER ) байгаа эсэхийг баталгаажуулна:
 if [ ! -d "$BK_FOLDER" ]; then _log "Backup folder '$BK_FOLDER' does not exist!" && exit 1 fi
  • URL асуудлаас зайлсхийхийн тулд PKG_NAME ариутгана (жишээ нь, доогуур зураасаар солигдсон зай).


API хариултын баталгаажуулалт :

check_last_exec функц нь бүрхүүлээс гарах код ( $? ) болон AEM API хариултуудыг хоёуланг нь шалгадаг:

check_last_exec "Error message" "$CURL_OUTPUT" $CURL_STATUS

  • Гарах кодууд : Тэг биш утгууд (жишээ нь, curl сүлжээний алдаа) нь шууд гарах үйлдлийг өдөөдөг.


  • API алдаа : AEM гаралт дахь success\":false JSON хариулт эсвэл "HTTP ERROR" мөрүүдийг илрүүлдэг.


3.3 HTTP статусын баталгаажуулалт : Багцыг татаж авах үед скрипт нь 200 статусын кодыг шалгана:

 if [ "$(curl -w "%{http_code}" ...)" -eq "200" ]; then # Proceed if download succeeds else _log "Error downloading the package!" && exit 1 fi

3.4 Нийтлэг бүтэлгүйтлийн хувилбарууд

  • Хүчингүй итгэмжлэл: check_last_exec 401 Unauthorized хариултыг барьж, тодорхой алдааны мэдэгдлээр гарна.
  • Шүүлтүүрийн зам буруу: AEM API success:false , скрипт "Шүүлтүүр нэмэхэд алдаа" гэж бүртгэж, дуусгавар болно.
  • Диск дүүрсэн: BK_FILE бичиж чадсангүй, файлын хэмжээг -s тугаар шалгаж, гарахын өмнө анхааруулга өгнө.
  • AEM instance-д холбогдох боломжгүй: curl тэгээс өөр кодоор гарна, скрипт "Багцыг бүтээхэд алдаа" гэж бүртгэдэг.

3.5 Аюулгүй байдлын талаар анхаарах зүйлс

  • SSL гэрчилгээг тойрч гарах : Скрипт нь энгийн болгох үүднээс curl -k ашигладаг бөгөөд SSL баталгаажуулалтыг алгасдаг. Үйлдвэрлэлийн зөвлөмж : CA багцыг зааж өгөхийн тулд --cacert гэж солино.


  • Энгийн текст нууц үг : Итгэмжлэх жуух бичгүүдийг аргумент хэлбэрээр дамжуулдаг бөгөөд энэ нь процессын бүртгэлд гарч болзошгүй. Хөнгөвчлөх : Орчны хувьсагч эсвэл нууц хадгалах санг ашиглах (жишээ нь, $AEM_PASSWORD ).

3.6 Дибаг хийх зөвлөмжүүд

  • Нарийвчилсан гаралтыг идэвхжүүлэх : Гүйцэтгэсэн командуудыг хэвлэхийн тулд скриптийн эхэнд set -x түр нэмнэ үү.
  • API дуудлагыг гараар шалгах : Скриптээс гадуур чухал curl командуудыг ажиллуулж асуудлыг тусгаарлана
  • Бүртгэлийг шалгах : Скриптийн гаралтыг дараа нь дүн шинжилгээ хийхийн тулд файл руу дахин чиглүүлэх:

./create-remote-aem-pkg.sh ... >> /var/log/aem_backup.log 2>&1

4. Хэрэгслийг өөрийн ажлын урсгалд тохируулах

create-remote-aem-pkg.sh скрипт нь эхлэх цэг байхаар бүтээгдсэн—багийнхаа хэрэгцээнд нийцүүлэн өөрчлөх боломжтой суурь юм. Үйл ажиллагааг нь өргөтгөх эсвэл тодорхой хэрэглээний тохиолдлуудад дасан зохицохын тулд хэрэгжүүлэх удирдамжийн хамт нийтлэг тохиргоонуудыг доор харуулав.

4.1 Нөөц файлын нэрийн форматыг тохируулах

Өгөгдмөл файлын нэр нь цагийн тэмдэг ашигладаг ( $PKG_NAME-$(date +%Y%m%d-%H%M%S).zip ). Орчны нэр, төслийн ID эсвэл семантик хувилбарыг оруулахын тулд үүнийг өөрчил:

 # Example: Include environment (eg, "dev", "prod") BK_FILE="${PKG_NAME}-${ENV}-$(date +%Y%m%d).zip" # Example: Add Git commit SHA for traceability COMMIT_SHA=$(git rev-parse --short HEAD) BK_FILE="${PKG_NAME}-${COMMIT_SHA}.zip"

Зөвлөмж : Огноо/цагийн форматыг файлын нэрэнд хориглосон тэмдэгтүүдээс (жишээ нь, Windows дээр хоёр : ) оруулахгүй байхыг анхаарна уу.

4.2 Шүүлтүүрийг өргөтгөх эсвэл өөрчлөх

Скрипт нь динамик замыг шүүлтүүр болгон хүлээн зөвшөөрдөг боловч та мөн байнга ашиглагддаг замыг хатуу кодлох эсвэл хасах зүйл нэмж болно:

 # Hardcode essential paths (eg, "/var/audit") DEFAULT_FILTERS=("/content/dam" "/apps" "/var/audit") FILTERS=("${DEFAULT_FILTERS[@]}" "${@}") # Merge with command-line inputs # Add exclusion rules (requires AEM API support) FILTERS_PARAM+="{\"root\": \"${FILTERS[$i]}\", \"rules\": [{\"modifier\": \"exclude\", \"pattern\": \".*/test/*\"}]}"

4.3 Аюулгүй байдлыг сайжруулах


Энгийн текст нууц үгээс зайлсхий :

Итгэмжлэлийг оруулахын тулд орчны хувьсагч эсвэл нууц менежер ашиглана уу:

 # Fetch password from environment variable PWD="$AEM_PASSWORD" # Use AWS Secrets Manager (example) PWD=$(aws secretsmanager get-secret-value --secret-id aem/prod/password --query SecretString --output text)


SSL баталгаажуулалтыг хэрэгжүүлэх :
curl -k (найдваргүй) -г итгэмжлэгдсэн CA сертификатаар солино уу:

 curl --cacert /path/to/ca-bundle.crt -u "$USR":"$PWD" ...

4.4 Барилгын дараах үйлдлүүдийг нэмэх

Амжилттай татаж авсны дараа скриптийг сунгахын тулд доод процессыг идэвхжүүлнэ үү:

 # Example: Upload to cloud storage aws s3 cp "$BK_FOLDER/$BK_FILE" s3://my-backup-bucket/ # Example: Validate package integrity CHECKSUM=$(sha256sum "$BK_FOLDER/$BK_FILE" | cut -d ' ' -f 1) _log "SHA-256 checksum: $CHECKSUM" # Example: Clean up old backups (retain last 7 days) find "$BK_FOLDER" -name "*.zip" -mtime +7 -exec rm {} \;

4.5 Мэдэгдэлийн сэрэмжлүүлэг нэмэх

Амжилт, бүтэлгүйтлийн талаар Slack, имэйл эсвэл хяналтын хэрэгслээр багууддаа мэдэгдэх:

 # Post to Slack on failure curl -X POST -H 'Content-type: application/json' \ --data "{\"text\":\"🚨 AEM backup failed: $(hostname)\"}" \ https://hooks.slack.com/services/YOUR/WEBHOOK/URL # Send email via sendmail if [ $? -ne 0 ]; then echo "Subject: Backup Failed" | sendmail [email protected] fi

5. Дүгнэлт

AEM багцуудыг удирдах нь гар ажиллагаатай, алдаа гаргадаг ажил байх албагүй. create-remote-aem-pkg.sh скриптийн тусламжтайгаар та багц үүсгэх, шүүх, түгээх үйл явцыг хялбаршуулсан, давтагдах процесс болгон хувиргах боломжтой. Энэ хэрэгсэл нь зөвхөн цаг хугацаа хэмнээд зогсохгүй, таны AEM үйл ажиллагаанд тогтвортой байдал, найдвартай байдал, өргөтгөх чадварыг идэвхжүүлэх явдал юм.

Гол арга хэмжээ

  1. Автоматжуулалт ялалт : Гүйлгээний интерфэйсийн давтагдах харилцан үйлчлэлийг арилгаснаар скрипт нь хүний алдааг багасгаж, багууд илүү үнэ цэнэтэй ажлуудад анхаарлаа төвлөрүүлэх боломжийг олгодог.


  2. Уян хатан байдлын чухал ач холбогдолтой : Чухал агуулгыг нөөцлөх, орчныг синхрончлох эсвэл шинэчлэлт хийхэд бэлтгэхэд скрипт нь хамгийн бага тохируулгатай олон төрлийн хэрэглээний тохиолдлуудад дасан зохицдог.


  3. Тохиромжтой байдал нь гол зүйл юм : Бүртгэл, алдаа шалгах, аюулгүй байдлын талаар анхаарах зүйлс нь бүх зүйл хажуу тийшээ явсан ч скриптийг урьдчилан таамаглах боломжтой болгодог.


Гайхалтай хэрэгслүүд нь бодит ертөнцийн сорилтуудаас төрдөг. Энэ скрипт нь эхлэлийн цэг юм; Танай багийн хэрэгцээ өсөхийн хэрээр үүнийг бий болгох үндэс суурь гэж бодоорой. Та соло хөгжүүлэгч эсвэл том DevOps багийн нэг хэсэг эсэхээс үл хамааран үүнтэй төстэй автоматжуулалт нь кодонд хийсэн жижиг хөрөнгө оруулалт нь бүтээмж, сэтгэлийн амар амгаланд асар их өгөөж авчрах жишээг харуулж байна.


Дараагийн алхам хийхэд бэлэн үү?

  • 🛠️ Өөрчлөх : 6-р хэсгийг гарын авлага болгон ашиглан скриптийг тохируулна уу.
  • 🔍 Аудит : Автоматжуулалтын боломжуудыг олж авахын тулд одоо байгаа AEM ажлын урсгалуудаа шалгана уу.
  • 🤝 Хуваалцах : Багийнхаа зөвлөгөөг өгөх эсвэл хийсэн өөрчлөлтийнхөө талаар блог бичээрэй.


Дагасанд баярлалаа - одоо урагшлаад автоматжуул! 🚀

Хавсралт

Бүрэн код

 #!/bin/bash set -eo pipefail # The script will create a package thought the package manager api: # - The package is created, if not already present # - Package filters are populated accordingly to specified paths # - Package is builded # - Package is download to the specified folder _log () { echo "[$(date +%Y.%m.%d-%H:%M:%S)] $1" } check_last_exec () { local message="$1" local output="$2" local status=$3 if [ "$status" -ne 0 ]; then echo && echo "$message" && echo exit 1 fi if [[ $output =~ .*success\":false* ]] || [[ $output =~ .*"HTTP ERROR"* ]]; then _log "$message" exit 1 fi } USR="$1" PWD="$2" SVR="$3" PORT="$4" PKG_GROUP="$5" PKG_NAME="$6" BK_FOLDER="$7" shift 7 # The following paths will be included in the package FILTERS=($@) BK_FILE=$PKG_NAME"-"$(date +%Y%m%d-%H%M%S).zip _log "Starting backup process..." echo "AEM instance: '$SVR':'$PORT' AEM User: '$USR' Package group: $PKG_GROUP Package name: '$PKG_NAME' Destination folder: $BK_FOLDER Destination file: '$BK_FILE' Filter paths: " printf '\t%s\n\n' "${FILTERS[@]}" if [ ! -d "$BK_FOLDER" ]; then _log "Backup folder '$BK_FOLDER' does not exist!" && echo exit 1 fi PKG_NAME=${PKG_NAME// /_} check_last_exec "Error replacing white space chars from package name!" "" $? || exit 1 _log "Removed whitespaces from package name: '$PKG_NAME'" BK_FILE=$PKG_NAME.zip _log "Backup file: '$BK_FILE'" _log "Creating the package..." if [ $(curl -k -u "$USR":"$PWD" "$SVR:$PORT/crx/packmgr/service.jsp?cmd=ls" 2>/dev/null | grep "$PKG_NAME.zip" | wc -l) -eq 1 ]; then _log " Package '$PKG_GROUP/$PKG_NAME' is already present: skipping creation." else curl -k --silent -u "$USR":"$PWD" -X POST \ "$SVR:$PORT/crx/packmgr/service/.json/etc/packages/$PKG_GROUP/$PKG_NAME?cmd=create" \ -d packageName="$PKG_NAME" -d groupName="$PKG_GROUP" check_last_exec " Error creating the package!" "" $? _log " Package created" fi # create filters variable FILTERS_PARAM="" ARR_LEN="${#FILTERS[@]}" for i in "${!FILTERS[@]}"; do FILTERS_PARAM=$FILTERS_PARAM"{\"root\": \"${FILTERS[$i]}\", \"rules\": []}" T=$((i+1)) if [ $T -ne $ARR_LEN ]; then FILTERS_PARAM=$FILTERS_PARAM", " fi done # add filters _log "Adding filters to the package..." CURL_OUTPUT=$(curl -k --silent -u "$USR":"$PWD" -X POST "$SVR:$PORT/crx/packmgr/update.jsp" \ -F path=/etc/packages/"$PKG_GROUP"/"$PKG_NAME".zip -F packageName="$PKG_NAME" \ -F groupName="$PKG_GROUP" \ -F filter="[$FILTERS_PARAM]" \ -F "_charset_=UTF-8") CURL_STATUS=$? # Pass the status to the check_last_exec function check_last_exec "Error adding filters to the package!" "$CURL_OUTPUT" $CURL_STATUS _log " Package filters updated successfully." # build package _log "Building the package..." CURL_OUTPUT=$(curl -k -u "$USR":"$PWD" -X POST \ "$SVR:$PORT/crx/packmgr/service/script.html/etc/packages/$PKG_GROUP/$PKG_NAME.zip" \ -F "cmd=build") check_last_exec " Error building the package!" "$CURL_OUTPUT" $? _log " Package built." # download package _log "Downloading the package..." if [ "$(curl -w "%{http_code}" -o "$BK_FOLDER/$BK_FILE" -k --silent -u "$USR":"$PWD" "$SVR:$PORT/etc/packages/$PKG_GROUP/$PKG_NAME.zip")" -eq "200" ]; then if [ -f "$BK_FOLDER/$BK_FILE" ] && [ -s "$BK_FOLDER/$BK_FILE" ]; then _log " Package $BK_FILE downloaded in $BK_FOLDER." exit 0 fi fi _log " Error downloading the package!" exit 1


Лавлагаа

[¹] curl -k ашиглан SSL баталгаажуулалтыг алгасах нь тест хийхэд тохиромжтой, гэхдээ та үйлдвэрлэлд илүү бат бөх зүйлийг (жишээ нь --cacert ) хүсэх болно!


[²] AEM багц менежерийн албан ёсны баримт бичиг

L O A D I N G
. . . comments & more!

About Author

Giuseppe Baglio HackerNoon profile picture
Giuseppe Baglio@realgpp
Working as an AEM Solution Architect, I consider myself as a software craftsman.

TAG ҮҮ

ЭНЭ ӨГҮҮЛЛИЙГ ТОЛГОЙЛУУЛСАН...