edas-jenkins-plugin, Enterprise Distributed Application Service (EDAS) ile Jenkins'i entegre eder ve CI/CD işlem hattınızdan doğrudan Elastic Compute Service (ECS) kümelerine ve Container Service for Kubernetes (ACK) kümelerine sürekli dağıtım yapmanızı sağlar.
Üç farklı dağıtım yaklaşımı mevcuttur:
Freestyle project -- komut dosyası yazmadan Jenkins grafik arayüzü üzerinden dağıtımı yapılandırın.
Pipeline script -- yerleşik Snippet Generator kullanarak bir dağıtım adımı oluşturun ve bunu bir Jenkins Pipeline içine ekleyin.
Job DSL -- yeniden kullanılabilir dağıtım şablonlarını programatik olarak tanımlayın.
Ön koşullar
Başlamadan önce aşağıdakilere sahip olduğunuzdan emin olun:
Jenkins'e yüklenmiş olan Job DSL plug-in (yalnızca Job DSL dağıtımları için gereklidir)
EDAS etkinleştirilmiş bir Alibaba Cloud hesabı
Alibaba Cloud hesabınız için bir AccessKey pair
edas-jenkins-plugin yükleme
edas-jenkins-plugin.hpi dosyasını indirin.
Jenkins'te Manage Jenkins > Manage Plugins seçeneğine gidin.
Plugin Manager sayfasında Advanced sekmesini seçin.
Upload Plugin bölümünde Select file öğesine tıklayın, indirilen
.hpidosyasını seçin ve Upload öğesine tıklayın.Installing Plugins/Upgrades sayfasında kurulumun tamamlanmasını bekleyin.
EDAS kimlik bilgilerini yapılandırma
Eklentiyi yükledikten sonra Jenkins'in EDAS ile kimlik doğrulaması yapabilmesi için Alibaba Cloud kimlik bilgilerinizi ekleyin.
Jenkins'te Manage Jenkins > Configure System seçeneğine gidin.
-
Deploy to EDAS bölümüne kaydırın ve hesap bilgilerini yapılandırın. Add öğesine tıklayın, ardından bölge bilgilerini girmek için Advanced seçeneğine tıklayın.
Parameter Description EDAS credentials name Bu kimlik bilgisi kümesi için açıklayıcı bir ad, örneğin prod-edasveyastaging-edas.EDAS Access Key ID Alibaba Cloud hesabınızın AccessKey ID'si. Daha fazla bilgi için bkz. Create an AccessKey pair. EDAS Access Key Secret Alibaba Cloud hesabınızın AccessKey gizli anahtarı. EDAS Region Uygulamanızın dağıtıldığı bölge kimliği, örneğin cn-hangzhou.Endpoint (Yalnızca Apsara Stack) EDAS uç noktası. Bu değer için EDAS teknik desteği ile iletişime geçin. Alibaba Cloud için boş bırakın. Kimlik bilgisi yapılandırmasını kaydetmek için Add öğesine tıklayın. Daha fazla bölge veya hesap yapılandırması eklemek için tekrar Add öğesine tıklayın.
-
Bağlantıyı doğrulamak için Ping EDAS öğesine tıklayın.
successiletisi, kimlik bilgilerinin geçerli olduğunu onaylar.
Freestyle projesi ile dağıtım
Komut dosyası gerektirmeyen, grafik arayüz tabanlı dağıtımlar için freestyle projesi kullanın.
Jenkins ana sayfasında New Item öğesine tıklayın.
Bir proje adı girin, Freestyle project seçeneğini belirleyin ve OK öğesine tıklayın.
Post-build Actions bölümünde Add post-build actions öğesine tıklayın ve Deploy to EDAS seçeneğini belirleyin.
-
Deploy to EDAS bölümünde Add öğesine tıklayın ve bir dağıtım modu seçin:
Deployment mode Use case EDAS ECS Application Bir ECS kümesindeki mevcut bir uygulamayı güncelleyin. Bkz. ECS deployment parameters. Create EDAS ECS Application Bir ECS kümesinde yeni bir uygulama oluşturun ve dağıtın. Bkz. ECS creation parameters. EDAS K8s Application Bir Container Service for Kubernetes kümesindeki mevcut bir uygulamayı güncelleyin. Bkz. K8s deployment parameters. Create EDAS K8s Application Bir Container Service for Kubernetes kümesinde yeni bir uygulama oluşturun ve dağıtın. Bkz. K8s creation parameters. 
Save veya Apply öğesine tıklayın.
-
Sol gezinme bölmesinde dağıtmayı tetiklemek için Build Now öğesine tıklayın.

Derleme sonucunu doğrulama
Derleme tamamlandıktan sonra Build History bölümünde yeni bir giriş görünür. Dağıtım durumunu ve günlüklerini görüntülemek için bir derleme numarasına tıklayın.

Pipeline betiği ile dağıtım
Dağıtımı kod olarak tanımlamak için Jenkins Pipeline kullanın. Eklenti, sizin için dağıtım adımını üreten yerleşik Snippet Generator'ı destekler.
Pipeline betiğini oluşturma
Jenkins ana sayfasında New Item öğesine tıklayın.
Bir proje adı girin, Pipeline seçeneğini belirleyin ve OK öğesine tıklayın.
-
Pipeline bölümünde Snippet Generator'ı açmak için Pipeline Syntax öğesine tıklayın.
NotMevcut bir işlem hattı için proje listesinde işlem hattının adına tıklayın, ardından sol gezinme bölmesinde
Pipeline Syntax
öğesine tıklayın.
Sample Step açılır listesinden edasClient: Deploy into EDAS seçeneğini belirleyin.
Application Setup yanındaki Add öğesine tıklayın ve küme türünüze (ECS veya K8s) ve bir uygulamayı güncelleyip güncellemediğinize bağlı olarak bir dağıtım modu seçin.
Dağıtım parametrelerini yapılandırın. Ayrıntılar için bkz. Configure deployment parameters.
-
Generate Pipeline Script öğesine tıklayın ve oluşturulan betiği kopyalayın.

Betiği pipeline'a ekleme
Pipeline yapılandırma sayfasına dönün. Sol gezinme bölmesinde Back öğesine tıklayın, ardından Configure öğesine tıklayın.
-
Pipeline bölümünde oluşturulan betiği betik düzenleyicisine yapıştırın. Dağıtım adımı yer tutucusunu önceki adımda oluşturulan betikle değiştirin.
NotAşağıdaki şekilde vurgulanan alandaki içeriği önceki adımda oluşturulan betikle değiştirin.

Save veya Apply öğesine tıklayın.
Sol gezinme bölmesinde işlem hattını tetiklemek için Build Now öğesine tıklayın.
Derleme tamamlandıktan sonra dağıtım sonuçları için Build History bölümünü kontrol edin.
Job DSL ile dağıtım
Dağıtım işlerini kod şablonları olarak tanımlamak için Job DSL kullanın. Bu yaklaşım, birçok benzer dağıtım işini yönettiğinizde ve bunları programatik olarak oluşturmak istediğinizde kullanışlıdır.
Jenkins ana sayfasında New Item öğesine tıklayın.
Bir proje adı girin, Freestyle project seçeneğini belirleyin ve OK öğesine tıklayın.
-
Build bölümünde Add build step öğesine tıklayın ve Process Job DSLs seçeneğini belirleyin.

-
Use the provided DSL script seçeneğini belirleyin ve Job DSL betiğini DSL Script alanına girin. Aşağıdaki örnek bir dağıtım işi oluşturur:
job('edas') { // The name of the job to build publishers { // The type of the EDAS plug-in edasClient { // The client that calls the EDAS plug-in deployApplication( '', // namespace '', // credentialsString '', // group '', // appId '' // targetObject ) } } } Save veya Apply öğesine tıklayın.
Sol gezinme bölmesinde dağıtım işini oluşturmak için Build Now öğesine tıklayın.
Derleme tamamlandıktan sonra oluşturulan iş Jenkins ana sayfasında görünür. Uygulamanızı dağıtmak için oluşturulan işi çalıştırın.
Job DSL API referansı
Eklenti, Job DSL için aşağıdaki yöntemleri sunar. Her yöntemin yalnızca gerekli parametreleri içeren kısa bir formu ve tüm parametreleri içeren genişletilmiş bir formu vardır.
ECS küme yöntemleri
Bir ECS kümesine dağıtım (mevcut bir uygulamayı güncelleme):
// Compact form
void deployApplication(
String namespace, // EDAS namespace ID
String credentialsString, // Credential name
String group, // Deployment group
String appId, // EDAS application ID
String targetObject // Path to deployment artifact (WAR/JAR)
)
// Extended form
void deployApplication(
String namespace,
String credentialsString,
String group,
String appId,
String targetObject,
String versionLabelFormat, // Version label pattern
String versionDescriptionFormat, // Version description pattern
String batch, // Number of deployment batches
String batchWaitTime, // Wait time between batches (seconds)
String releaseType // Release type
)
Bir ECS kümesine oluşturma ve dağıtım (yeni bir uygulama oluşturma):
// Compact form
void insertApplication(
String namespace,
String credentialsString,
String applicationName, // Application name
String packageType, // WAR or JAR
String clusterId, // Target ECS cluster ID
String targetObject,
String ecuInfo // ECS instance IDs
)
// Extended form
void insertApplication(
String namespace,
String credentialsString,
String applicationName,
String packageType,
String clusterId,
String targetObject,
String ecuInfo,
String versionLabelFormat,
String versionDescriptionFormat,
String buildPackId, // Build pack ID for the runtime
String healthCheckUrl // Health check URL
)
Kubernetes küme yöntemleri
Bir Kubernetes kümesine dağıtım (mevcut bir uygulamayı güncelleme):
// Compact form
void deployK8sApplication(
String namespace,
String credentialsString,
String appId,
String targetObject,
Boolean image // true: deploy a container image; false: deploy a WAR/JAR
)
// Extended form
void deployK8sApplication(
String namespace,
String credentialsString,
String appId,
String targetObject,
Boolean image,
String edasContainerVersion, // EDAS container version
String webContainer, // Web container type (e.g., Apache Tomcat)
String jdk, // JDK version
String versionLabelFormat,
String envs, // Environment variables (JSON)
String startupCommand,
String args, // Startup arguments
String cpuLimit, // CPU limit (cores)
String memoryLimit, // Memory limit (MiB)
String cpuRequest, // CPU request (cores)
String memoryRequest, // Memory request (MiB)
String replicas, // Number of pod replicas
String postStart, // Post-start hook command
String preStop, // Pre-stop hook command
String readiness, // Readiness probe configuration
String liveness, // Liveness probe configuration
String updateStrategy // Update strategy (JSON)
)
Bir Kubernetes kümesine oluşturma ve dağıtım (yeni bir uygulama oluşturma):
// Compact form
void insertK8sApplication(
String namespace,
String credentialsString,
String applicationName,
String packageType,
String clusterId,
String targetObject,
String k8sNamespace, // Kubernetes namespace
String jdk
)
// Extended form
void insertK8sApplication(
String namespace,
String credentialsString,
String applicationName,
String packageType,
String clusterId,
String targetObject,
String k8sNamespace,
String jdk,
String descFormat, // Description format
String edasContainerVersion,
String webContainer,
String versionLabelFormat,
String envs,
String startupCommand,
String args,
String cpuLimit,
String memoryLimit,
String cpuRequest,
String memoryRequest,
String replicas,
String postStart,
String preStop,
String readiness,
String liveness
)
Sırada ne var
Configure deployment parameters -- dört dağıtım modunun tümü için ayrıntılı parametre açıklamaları