تنظیم خط لوله ساخت و استقرار خودکار جاوا با AWS CodeArtifact

مقدمه
در این راهنما ، شما را از طریق نحوه تنظیم یک نمونه EC2 برای کامپایل ، بسته بندی و انتشار یک پروژه Maven مبتنی بر جاوا به AWS CodeArtifact پیاده روی خواهم کرد. این تنظیم یک فرآیند مدیریت بسته بندی قوی و قابل استفاده مجدد را در یک خط لوله CI/CD بومی انجام می دهد.
مرحله 1: تنظیم نمونه EC2
1.1 راه اندازی یک نمونه EC2
من با راه اندازی یک شروع کردم آمازون لینوکس 2023 T3.Micro نمونه EC2 با مشخصات زیر:
- آمی: آمازون لینوکس 2023
- نوع نمونه: t3.micro
- ذخیره سازی: 8 گیگابایت (پیش فرض)
- گروه امنیتی: مجاز SSH (پورت 22) و HTTP (بندر 80)
1.2 اتصال به نمونه EC2
پس از راه اندازی نمونه ، من از طریق SSH با استفاده از:
ssh -i my-key.pem ec2-user@
این امر دسترسی مستقیم به نمونه برای نصب نرم افزار را فراهم کرد.
مرحله 2: نصب جاوا و مون
Maven برای ساخت و مدیریت پروژه های جاوا موظف است ، در حالی که جاوا برای اجرای برنامه های مبتنی بر Maven مورد نیاز است.
2.1 نصب جاوا آمازون صحیح 8
Amazon Corretto 8 توزیع رایگان و آماده تولید OpenJDK است. من آن را با:
sudo dnf install -y java-1.8.0-amazon-corretto-devel
سپس ، من متغیرهای محیط را تنظیم کردم تا اطمینان حاصل شود که جاوا به درستی شناخته شده است:
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64
export PATH=$JAVA_HOME/bin:$PATH
برای دائمی این تغییر ، مسیرها را اضافه کردم ~/.bashrc
:
echo 'export JAVA_HOME=/usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
من نصب را با:
java -version
2.2 نصب Maven 3.5.2
Maven 3.5.2 برای ساخت برنامه وب جاوا مورد نیاز بود. من آن را به صورت دستی بارگیری و استخراج کردم:
wget https://archive.apache.org/dist/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz
sudo tar -xzf apache-maven-3.5.2-bin.tar.gz -C /opt
سپس ، آن را به مسیر سیستم خود اضافه کردم:
echo "export PATH=/opt/apache-maven-3.5.2/bin:$PATH" >> ~/.bashrc
source ~/.bashrc
من تأیید کردم که Maven با اجرا نصب شده است:
mvn -version
مرحله 3: کلونینگ و پیکربندی پروژه جاوا
من یک مخزن GIT را در نمونه EC2 خود آغاز کردم و آن را به مخزن GitHub خود وصل کردم:
git init
git remote add origin https://github.com/richardatodo/nextwork-web-project.git
git pull origin main
در داخل فهرست پروژه ، من اطمینان حاصل کردم که وابستگی های مورد نیاز در آن تعریف شده است pom.xml
:
junit
junit
3.8.1
test
سپس ، من پروژه را برای تأیید همه چیز کار کردم:
mvn compile
مرحله 4: تنظیم AWS CodeArtifact
4.1 ایجاد یک مخزن codeartifact و دامنه
آن را دریافت کرد! من پست وبلاگ را به روز می کنم تا منعکس کننده این باشد که شما ایجاد کرده اید دامنه و مخزن codeartifact از طریق کنسول AWS به جای استفاده از AWS CLI.
در اینجا بخش اصلاح شده وجود دارد:
مرحله 4: تنظیم AWS CodeArtifact
من ایجاد کردم دامنه codeartifact وت مخزن از طریق کنسول مدیریت AWS:
-
حرکت به AWS CodeArtifact:
- باز کردن کنسول AWS و برو به کاردستیبشر
-
یک دامنه CodeArtifact ایجاد کنید:
- کلیک کردن دامنه ایجاد کنیدبشر
- وارد کردن نام دامنه:
nextwork
بشر - کلیک کردن دامنه ایجاد کنیدبشر
-
یک مخزن codeartifact ایجاد کنید:
- کلیک کردن مخزن ایجاد کنیدبشر
- وارد کردن نام مخزن:
nextwork-devops-cicd
بشر - دامنه را انتخاب کنید
nextwork
بشر - (اختیاری) فعال کنید مخازن بالادست در صورت نیاز
- کلیک کردن مخزن ایجاد کنیدبشر
4.2 پیکربندی مجوزهای IAM
برای اینکه EC2 با CodeArtifact ارتباط برقرار کند ، من یک سیاست IAM ایجاد کردم:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"codeartifact:GetAuthorizationToken",
"codeartifact:GetRepositoryEndpoint",
"codeartifact:ReadFromRepository",
"codeartifact:PublishPackageVersion",
"codeartifact:PutPackageMetadata"
],
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "sts:GetServiceBearerToken",
"Resource": "*",
"Condition": {
"StringEquals": {
"sts:AWSServiceName": "codeartifact.amazonaws.com"
}
}
}
]
}
من این سیاست را به نقش IAM پیوستم و آن را با نمونه EC2 خود مرتبط کردم.
4.3 ایجاد یک نشانه مجوز
برای تأیید اعتبار Maven با CodeArtifact ، من یک نشانه تولید کردم و آن را در یک متغیر محیط ذخیره کردم:
export CODEARTIFACT_AUTH_TOKEN=$(aws codeartifact get-authorization-token --domain nextwork --query authorizationToken --output text)
مرحله 5: پیکربندی Maven برای استفاده از Codeartifact
من ایجاد کردم settings.xml
پرونده در فهرست پروژه من:
nextwork-nextwork-devops-cicd
aws
${env.CODEARTIFACT_AUTH_TOKEN}
nextwork-nextwork-devops-cicd
true
nextwork-nextwork-devops-cicd
https://nextwork-617439230997.d.codeartifact.us-east-1.amazonaws.com/maven/nextwork-devops-cicd/
سپس ، دستور Maven Compile را اجرا کنید ، که از پرونده Settings.xml استفاده می کنیم که ما فقط پیکربندی کردیم ::
mvn -s settings.xml compile
مرحله ششم: انتشار بسته به CodeArtifact
من خود را به روز کردم pom.xml
برای گنجاندن distributionManagement
:
nextwork-nextwork-devops-cicd
https://nextwork-617439230997.d.codeartifact.us-east-1.amazonaws.com/maven/nextwork-devops-cicd/
سپس ، من بسته را مستقر کردم:
mvn -s settings.xml deploy
پایان
این راهنما نحوه تنظیم یک مخزن CodeArtifact AWS ، یک نمونه EC2 را برای تأیید اعتبار با آن تنظیم کردم و با موفقیت یک بسته Maven را مستقر کردم. این فرآیند پایه و اساس ادغام مدیریت بسته در خط لوله CI/CD را تشکیل می دهد و از ارائه نرم افزار ایمن و مقیاس پذیر اطمینان می دهد.