برنامه نویسی

پروژه AWS با استفاده از SHELL SCRIPTING برای DevOps

معرفی

در سناریوی دنیای واقعی DevOps، The ردیاب منابع AWS اسکریپت به طور گسترده ای برای ارائه یک نمای کلی از منابع AWS مورد استفاده در یک محیط استفاده می شود.

هدف آن کمک به سازمان ها برای نظارت و مدیریت موثر منابع AWS است. این اسکریپت از رابط خط فرمان AWS (CLI) برای واکشی اطلاعات در مورد سرویس های مختلف AWS، مانند سطل های S3، نمونه های EC2، توابع لامبدا و کاربران IAM.

این پروژه چه کاری انجام می دهد؟

با اجرای اسکریپت AWS Resource Tracker، کاربران می توانند به سرعت لیستی از سطل های S3، نمونه های EC2، توابع Lambda و کاربران IAM مرتبط با حساب AWS خود را دریافت کنند.

این اطلاعات می تواند برای اهداف مختلف از جمله حسابرسی، مدیریت موجودی، بهینه سازی منابع و ارزیابی امنیتی ارزشمند باشد.

پروژه را بسازید

نمونه EC2 ایجاد کنید

مرحله 1. برو به AWS حساب کاربری و وارد شوید، سپس جستجو کنید EC2 نمونه هایی در نوار جستجو یا می توانید روی دکمه خدمات که در گوشه سمت چپ بالای داشبورد شما قرار دارد کلیک کنید، از آنجا نیز می توانید همان را جستجو کنید.

سپس بر روی آن کلیک کنید راه اندازی نمونه دکمه.

گام 2. به آن یک نام به انتخاب شما، اوبونتو به عنوان یک تصویر ماشین، خود را انتخاب کنید جفت کلید یا در صورت نداشتن یکی ایجاد کنید. نوع نمونه را رها کنید t2.micro یعنی لایه آزاد به صورت یکسان است و دوباره روی آن کلیک کنید راه اندازی نمونه دکمه.

تصویر aws

حالا شما می توانید خود را ببینید نمونه، مثال بالا و در حال اجرا مثل این.

تصویر aws

مرحله 3. حالا روی نمونه کلیک کنید شناسه که اطلاعات دقیقی در مورد نمونه در حال اجرا به شما می دهد، در آنجا نسخه عمومی را کپی کنید آدرس آی پی.

تصویر aws

Instance را اجرا کنید

مرحله 4. اکنون ترمینال خود را باز کرده و دستور زیر را اجرا کنید.

ssh -i /Users/poonampawar/Downloads/my-key-pair.pem ubuntu@ip_add

ما باید به داخل دایرکتوری برویم که جفت کلید خود را در آن دانلود کرده اید و در مورد من در آن قرار دارد /Downloads پوشه

مسیر خود را بررسی کنید و بر اساس آن مسیری را مشخص کنید. و تعویض را فراموش نکنید ip_add با نسخه کپی شده شما این شما را به ماشین مجازی که در AWS ایجاد کرده ایم می برد.

تصویر aws

اسکریپت را ایجاد کنید

مرحله 5. اکنون یک فایل اسکریپت پوسته به نام ایجاد کنید aws_resource_tracker.sh و اسکریپت زیر را کپی و پیست کنید.

#########################
# Author: Your Name
# Date: 28/05/23
# Version: v1
#
# This script will report the AWS resource usage
########################

set -x

# AWS S3
# AWS EC2
# AWS Lambda
# AWS IAM Users

# list s3 buckets
echo "Print list of s3 buckets"
aws s3 ls

# list EC2 Instances
echo "Print list of ec2 instances"
aws ec2 describe-instances | jq '.Reservations[].Instances[].InstanceId'

# list lambda
echo "Print list of lambda functions"
aws lambda list-functions

# list IAM Users
echo "Print list of iam users"
aws iam list-users
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

تصویر aws

  • این یک قرارداد خوب است که همیشه جزئیات خود را ارائه دهید تا در صورت تمایل سایر توسعه دهندگان به عنوان مثال، ابرداده مشارکت کنند.

  • دستور set -x در اینجا به منظور اشکال زدایی اسکریپت داده شده است، این دستوری را که اجرا می کنیم چاپ می کند و سپس خروجی را چاپ می کند.

  • دستورات aws s3 ls، aws lambda list-functions و aws iam list-users اطلاعات عبارت داده شده را چاپ کنید.

دستور

aws ec2 describe instances | jq '.Reservations[].Instances[].InstanceId' تمام شناسه های نمونه موجود در شما را به شما می دهد aws که در JSON قالب

اسکریپت را تست کنید

مرحله 6. برای دیدن خروجی دستور زیر را اجرا کنید.

./aws_resource_tracker.sh

خروجی به این شکل خواهد بود.

تصویر o/p

CronJob را اعمال کنید

برای استفاده از cron job با اسکریپت خود، می توانید برنامه ریزی کنید تا در فواصل زمانی خاص با استفاده از نحو cron اجرا شود. در اینجا مثالی از نحوه تغییر اسکریپت خود برای استفاده از cron job آورده شده است:

  • یک ترمینال را باز کنید و دستور زیر را برای ویرایش آن اجرا کنید
    فایل crontab:
    crontab -e

  • در صورت درخواست، ویرایشگر متن دلخواه خود را انتخاب کنید.

تصویر o/p

  • برای برنامه ریزی اسکریپت خود یک خط جدید به فایل crontab اضافه کنید. به عنوان مثال، برای اجرای اسکریپت هر روز در ساعت 9 صبح، می توانید خط زیر را اضافه کنید:
    0 9 * * * /path/to/your/script.sh

مسیر را اصلاح کنید /path/to/your/script.sh به واقعی
مسیری که اسکریپت شما در آن قرار دارد.

توضیحات تصویر

  • فایل crontab را ذخیره کرده و از ویرایشگر متن خارج شوید.

  • عبارت cron فوق (0 9 * * *) زمان بندی را نشان می دهد: دقیقه (0)، ساعت (9)، هر روز از ماه، هر ماه، و هر روز از هفته. با استفاده از دستور cron می توانید برنامه را بر اساس نیازهای خود سفارشی کنید.

  • با افزودن این خط به فایل crontab، اسکریپت شما طبق زمان بندی تعریف شده به صورت خودکار اجرا می شود. خروجی اسکریپت به صورت پیش فرض به آدرس ایمیل شما ارسال می شود یا در صورت نیاز می توانید خروجی را به یک فایل هدایت کنید.

  • مطمئن شوید که اسکریپت قابل اجرا است (chmod +x /path/to/your/script.sh) و اینکه متغیرهای محیط لازم و تنظیمات AWS CLI به درستی تنظیم شده اند تا اسکریپت با موفقیت در محیط cron اجرا شود.

موارد استفاده

  • نظارت و حسابرسی: با اجرای دوره‌ای این اسکریپت با استفاده از cron jobs، می‌توانید منابع AWS خود را نظارت و ممیزی کنید. اطلاعاتی در مورد وضعیت و جزئیات منابع مختلف، مانند سطل های S3، نمونه های EC2، توابع Lambda و کاربران IAM ارائه می دهد.

  • موجودی منابع: اسکریپت به حفظ موجودی به روز منابع AWS شما کمک می کند. سطل های S3، نمونه های EC2، توابع لامبدا و کاربران IAM را فهرست می کند و به شما این امکان را می دهد که درک روشنی از منابع موجود در محیط خود داشته باشید.

  • عیب یابی: در صورت بروز هرگونه مشکل یا حادثه، می توان از این اسکریپت برای جمع آوری سریع اطلاعات در مورد منابع AWS مربوطه استفاده کرد. به عنوان مثال، اگر مشکلی با یک نمونه EC2 وجود دارد، می توانید اسکریپت را اجرا کنید تا شناسه نمونه و سایر جزئیات را برای بررسی بیشتر دریافت کنید.

  • اتوماسیون و گزارش دهی: این اسکریپت را می توان در یک خط لوله یا گردش کار خودکار ادغام کرد تا گزارش های منظمی در مورد استفاده از منابع AWS ایجاد کند. این اطلاعات می تواند برای ردیابی هزینه ها، استفاده از منابع و الزامات انطباق با ارزش باشد.

  • مقیاس پذیری و کارایی: در محیط های بزرگتر با منابع متعدد AWS، بازیابی دستی اطلاعات مربوط به هر منبع می تواند زمان بر و مستعد خطا باشد. با استفاده از این اسکریپت، می توانید فرآیند را خودکار کنید و جزئیات منابع را به شیوه ای سازگار و کارآمد بازیابی کنید.

به طور کلی، این اسکریپت فرآیند جمع آوری اطلاعات در مورد منابع AWS را ساده می کند، دید زیرساخت شما را افزایش می دهد و از مدیریت و نظارت موثر بر محیط DevOps شما پشتیبانی می کند.

لینک Github: https://github.com/Poonam1607/shell-scripting-projects

منبع: برای درک بهتر و یادگیری بصری می توانید این آموزش را بررسی کنید – https://youtu.be/gx5E47R9fGk


این پروژه صرفا بر اساس آموخته های من است. ممکن است هنگام اجرای تنظیمات شما خطایی رخ دهد. اگر مشکلی در آن پیدا کردید، در صورت تمایل با من تماس بگیرید.

ممنون 🖤!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا